当前位置:文档之家› php页面静态化学习笔记

php页面静态化学习笔记

php页面静态化学习笔记
php页面静态化学习笔记

题外话:大流量技术:

1.服务器集群

2.mysql优化(设计合理的数据库表3nf,分表垂直分割水平分割,读写分离技术多个mysql同时工作,mysql配置优化,硬件升级)

3.缓存技术memched/redis。.大型网站提速提速:Mysql优化,页面静态化,memcached大型网站的定义:

1.pv值(page views):页面的访问量。当页面访问量很大的时候,带来了很多问题:

①流量变大,解决方案买带宽,优化程序,图片的大小不能多于多少K

②并发量变大,同时访问网站的人多了,解决方案,要对程序的结构进行修整->服务

器集群

传统架构:

优化结构:

整个的重点还是php程序,考验程序员的东西。

2.数据量很大:解决方法:

①表的设计合理

②分表技术(垂直分割和水平分割)、建立适当的索引、读写分离、Mysql配置优化(调

整最大并发量,定时对数据库碎片整理、碎片,实现方法:windows下用任务管理器,niux下用crontab),硬件升级

③页面静态化

④缓存技术(memcached)

页面静态化技术

原理图:

几个概念:

静态网址:如果我们访问的是静态页面,则把这个url称作静态网站,html网址

特点:

1.利于seo(search engine optimization)搜索引擎优化

2.访问速度快

3.防止sql注入漏洞

动态网址:在访问的时候可以传入参数,称为动态网址,php网址

特点:

1.不利于seo

2.访问速度慢

3.sql注入的可能

伪静态网址:希望达到这样的目的,

这样的话,我们把图片下端的称为伪静态网址。这样做的特点:

1.利于seo

2.防止了注入

但是它仍然要访问数据库,也就是说速度没有优化。页面静态化的分类:从方式来看:1.

真静态,2.伪静态从范围来看:1.全局静态,2.局部静态。

测试压力的工具ab.exe

需要进入控制台

ab.exe –n 访问的总次数–c 多少人访问url(并发量)

举例说明

ab.exe –n 10000 –c 100 http://localhost/phpstatic/test.php

当我们调整访问人数为1000的时候:

很悲剧的事情发生了,说明我们的apache服务器支撑不住了。解决方案,我们需要调整apache的最大并发量。MPM(多路处理模块,就是指明apache怎样处理并发):apache处理并发的方式。有三种方式

1.perfork 预处理进程方式:预先准备一些进程,等待请求

的到来,这样的方式消耗很大。

2.worker 工作模式:预先开启进程,当有请求的时候,进

程会开启线程,线程为请求服务。一个进程可以开启多个

线程

3.winnt模式windows下采用的:就是worker模式

简单的说是这样的:

如何设置apache最大并发数:

1.位置httpd.conf文件中,大约470多行。

# Server-pool management (MPM specific)

Include conf/extra/httpd-mpm.conf

2.确定apache的工作模式:

cmd下进入apache的bin目录,输入httpd.exe –l(小写的L);

我们主要看mpm_yyyyy ,如果这个yyyy是什么,就说明

是什么工作模式了。

3.去修改httpd-mpm.conf

调整150为1000

刚才的测试可以运行了4.重启apache

在linux下如何配置呢,

建议配置:

如果网站的pv值上到了百万:可以调节如下

每个都增加1000即可。

对比图:

搜索引擎的偏好:

如果一张图片希望被百度搜到,

”小狗”

在网站的前台,我们建议不要使用frame这个框架

给一个图片或者视图取名字,标题越短越精准会越好。页面静态化技术实现方式:

1.使用php自带的ob缓存

2.模板替换技术(正则表达式)

使用PHP自带的缓存机制实现页面静态化:

ob缓存机制:

echo "hello100";

header("content-type:text/html;charset=rtf-8");

echo "hello200";

?>

在php5.2这个版本,在php.ini有一个配置,output_bufferring,如下:

如果关闭,就会出现如下警告

ob缓存的原理:

打开ob缓存就可以解决

①配置php.ini,output_buffering=4096(字节)

②在程序中开启ob_start();开启ob缓存

注意:

如果ob缓存打开,那么echo就放在ob缓存里面,如果是header就放到程序缓存里面去。当页面读取完成,那么ob缓存的内容就会被刷新到程序缓存,一并发送给浏览器。

ob的几个重要函数:

ob_clean():清理ob缓存

ob_get_contents():读取ob缓存的数据

ob_end_clean():该函数是清空ob中的数据,并关闭ob 缓存

ob_end_flush();//把ob缓存的数据刷新到程序缓存,同时关闭ob缓存

ob_flush();//把ob缓存的数据刷新到程序缓存

flush();//把程序缓存的数据,强制刷新到浏览器

如下面演示:

但是运行结果没有我们想象的那样1秒显示一个数字,我们查看flush()函数发现了问题:

如果一定要有效果我们可以:

使用ob缓存机制完成一个简单的新闻管理系统:

我们实现全站静态化。

先按传统方式写完了代码,发现本机访问速度都相当的慢。

我们开始做优化:当第一人访问我们的页面时,我们就查询一次数据库,并生成一个静态页面。其他人来查询的时候,我们直接就将生成的静态页面的直接返回。

1.生成静态页面

2.加上逻辑,即可实现一定的优化:

第一个页面:

//列出新闻

//

header("content-type:text/html;charset=utf-8");

$conn=mysql_connect("localhost","root","root");

if(!$conn){

die ("连接失败".mysql_error());

}

mysql_select_db("newssystem",$conn);

mysql_query("set names utf8");

$sql="select * from news";

$res=mysql_query($sql);

echo "

新闻列表

";

echo "添加新闻


";

echo "

";

echo "

";

while($row=mysql_fetch_array($res)){

echo

'

';

}

mysql_free_result($res);

mysql_close($conn);

?>

第二个页面:

//传统做法接受id,查询数据库

$id=intval($_GET['id']);

//先判断该新闻对应的新闻的静态页面是否存在

$html_file="news-id".$id.".html";

if(file_exists($html_file)){

echo "静态页面";

echo file_get_contents($html_file);

exit;//这个exit特别重要,如果没有,静态化得效果就没了

}

$conn=mysql_connect("localhost","root","root");

if(!$conn){

die ("连接失败".mysql_error());

}

mysql_select_db("newssystem",$conn);

mysql_query("set names utf8");

$sql="select * from news where id=$id";

$res=mysql_query($sql,$conn);

if($row=mysql_fetch_assoc($res)){

ob_start();//启动ob缓存

header("content-type:text/html;charset=utf-8");

echo "";

//解决乱码

echo "

id标题查看详情修改新闻
'.$row[0].''.$row[1].'

href="showNews.php?id='.$row[0].'">产看详情

修改新闻
";

echo "

";

echo "

";

echo "

";

echo "

新闻详细内容
{$row['title']}
{$row['content']}
";

$ob_str=ob_get_contents();

//把$ob_str保存到一个静态页面

//取文件名是有很多规则的

file_put_contents("news-id".$id.".html",$ob_str);

}

?>

以上代码的缺点:

静态页面的内容一旦生成,那么它永远也不会变了。当数据库的数据更新的时候,我们的网页访问内容也没变。

解决方案:1.定时更新。我们让30秒同步一下数据库和我们的静态页面。

代码修改如下:

时间函数:filemtime($html_file),获取上次文件被修改的unix 时间。time()函数,获取当前时间函数。

上面的解决方案仍然会有时间延迟,随意我们采用第二套方案,这样做就没有时间延迟了

页面静态化的第二套技术:模板替换技术(正则表达式):

在添加新闻的时候就去生成静态页面:

原理图:

添加新闻的静态页面addNews.html

........

代码如下:

newList.php:稍多修改,让其直接跳转到我们在添加过程中生成的静态页面

newAction.php:

news.tpl:模板文件

作主页面静态化

通用的cms系统示意图。

现在我们来考虑全站静态化:

我们可以在添加新闻后就能使首页发生直接静态化呢

我们将管理的文件都保存到manage下面,用户只能看到前台主页和生成的静态的新闻详情页面。

需求,我们如果的确需要只要首页面的内容有变化就立马更新。

我们只需要加一句话:

在newsAction.php下面加一句话:

自己理解的图解:

以上就是我们所说的真静态,我们来分析一下真静态的优缺点:

有点:1访问速度块(不需php这个模块解析,不需查找数据库)。2利于seo。3防止sql注入

缺点:因为它要真正的生成大量的html文件,要占用一定的磁盘空间,如果我们将所有的html文件都放在一个文件夹下,比如我们把1亿个html放在一个文件夹下,那么这个速度会很慢的。我们的做法是:按照年月日创建文件夹,按照文件夹管理一定的数量的,这样检索速度会快一些的。safe_mode:apache的安全模式。就会不允许创建文件夹,徐和管理员沟通。

在一下情况不允许使用真静态:

1.实时性要求很高的网站和页面(股票,基金)

2.数据量大,同时查询一次后,以后就很少查询(国家学历

认证网,电信话费查询系统),就是生成的静态页面以后不被访问,那么我们生成这个html文件也就没有意义了3.不愿意被seo到这个网页。

伪静态技术:

实际开发中有需求:不希望使用真静态,但是又希望seo,可以考虑使用伪静态。

成为:

实现方式有两种:1.直接使用正则表达式;2.使用apache 自带的rewrite机制来完成。

正则表达式:

例子:

方案一:str分割

方案二:正则

详细讲解正则表达式:

演示:

运行结果:

正则表达式重要概念:

1. 值表达式:()括起来的

2. 捕获:抓取值表达式到内存中,暂存起来

3. 反向引用:\1,\n {x} 去引用捕获到得值表达式

如何将PHP动态网站转换成真正的静态网页

如何将PHP网页转化为纯静态网页 适用范围: 1.网站的页面或部分页面片段不需要频繁刷新动态数据的 2.极度依赖SEO的企业官网、推广页面等 技术要点: 1.PHP动态生成页面 2.PHP读取生成的页面内容 3.PHP将读取的页面内容存储为纯静态文件(如:.html) 4.对外部请求直接使用静态文件路径 优点: 1.利于SEO优化 2.降低服务器资源损耗 3.提高浏览器响应速度 代码程序: 1.动态页面原网页:http:localhost/Index.php PHP动态原页面 '):($i.' '); } ?> 2.PHP(changeToHtml.php)将含有PHP代码的http:localhost/Index.php页面转化/更新为index.html

PHP生成静态页面--实例

看到很多朋友在各个地方发帖问PHP生成静态文章系统的方法,以前曾做过这样一个系统,遂谈些看法,以供各位参考。好了,我们先回顾一些基本的概念。 一,PHP脚本与动态页面。 PHP脚本是一种服务器端脚本程序,可通过嵌入等方法与HTML文件混合,也可以类,函数封装等形式,以模板的方式对用户请求进行处理。无论以何种方式,它的基本原理是这样的。由客户端提出请求,请求某一页面----->WEB服务器引入指定相应脚本进行处理----->脚本被载入服务器----->由服务器指定的PHP解析器对脚本进行解析形成HTML 语言形式---->将解析后的HTML语句以包的方式传回给浏览器。由此不难看出,在页面发送到浏览器后,PHP就不存在了,已被转化解析为HTML语句。客户请求为一动态文件,事实上并没有真正的文件存在在那里,是PHP解析而成相对应的页面,然后发送回浏览器。这种页面处理方式被称为“动态页面”。 二,静态页面。 静态页面是指在服务器端确实存在的仅含HTML以及JS,CSS等客户端运行脚本的页面。它的处理方式是。由客户端提出请求,请求某一页面---->WEB服务器确认并载入某一页面---->WEB服务器将该页面以包的形式传递回浏览器。由这一过程,我们对比一下动态页面,即可方现。动态页面需由WEB服务器的PHP解析器进行解析,而且通常还需连接数据库,进行数据库存取操作,然后才能形成HTML语言信息包;而静态页面,无须解析,无须连接数据库,直接发送,可大大减轻服务器压力,提高服务器负载能力,大幅提供页面打开速度和网站整体打开速度。但其缺点是,不能动态地对请求进行处理,服务器上必须确实存在该文件。 三,模板及模板解析。 模板即尚未填充内容html文件。例如: temp.html { title} this is a { file} file's templets PHP处理: templetest.php

网站html静态化解决方案

网站html静态化解决方案 篇一:关于网页是否要静态化HTML的问题 关于网页是否要静态化HTML的问题 很多人提倡在网站设计时将页面静态化,难道页面静态化就没有什么缺点吗?有人问关于网页静态化的问题:很多人提倡在网站设计时将页面静态化,难道页面静态化就没有什么缺点吗?专家回答如下: 虽然页面静态化在一定程度上提高了页面访问速度和有利于搜索引擎优化以外,其实静态化带来的问题和后续成本也是不容忽视的:1、由于生成的文件数量较多,存储需要考虑文件、文件夹的数量问题和磁盘空间容量的问题,导致需要大量的服务器设备;2、程序将频繁地读写站点中较大区域内容,导致硬件损耗大、站点备份麻烦;3、页面维护的复杂性和大工作量,增加了更新维护难度和网站管理人员工作强度。 楼上说的有道理,不是每个网站都耗得起这个成本,如果你们公司的开发人员实力和时间都允许,那么可以实施你们的网站静态化,否则不提倡。 页面静态化有利用于蜘蛛的抓取,可以增加网页的权重. 楼上的楼上,不用担心,网页的静态化不会增加多少磁

盘容量,一个网页也就是几十K,现在硬盘很便宜.页面的维护不会有问题,网站后台还是采用动态的数据库管理,前台显示页面,可以生成静态的html 篇二:WEB网站架构分析HTML静态化 HTML静态化 1 介绍 其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。但是对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现,于是出现了我们常见的信息发布系统CMS,像我们常访问的各个门户站点的新闻频道,甚至他们的其他频道,都是通过信息发布系统来管理和实现的,信息发布系统可以实现最简单的信息录入自动生成静态页面,还能具备频道管理、权限管理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的。 除了门户和信息发布类型的网站,对于交互性要求很高的社区类型网站来说,尽可能的静态化也是提高性能的必要手段,将社区内的帖子、文章进行实时的静态化,有更新的时候再重新静态化也是大量使用的策略,像Mop的大杂烩

网站生成静态面的几种策略精编

网站生成静态面的几种 策略精编 Document number:WTT-LKK-GBB-08921-EIGG-22986

[转]网站生成静态页面的几种策略 2008-02-02 11:13 网站生成静态页面,及网站数据采集的攻、防原理和策略 目前很多人都开始注重动态页面生成HTML页了,但选择哪种生成HTML的方法和防采集却不防搜索引擎的问题却经常困扰大家。解决此问题则是本文产生的原因。 首先祥细说一下常用的几种生成HTML的方法: 生成HTML方法主要步骤只有两个: 一、获取要生成的html文件的内容 二、将获取的html文件内容保存为html文件 我在这里主要说明的只是第一步:如何获取要生成的html 文件的内容: 目前常用获取html文件的内容的方法有几下几种: 1、 str="内容" str=str&"内容数据库读取内容........." 这种方法与是在脚本内写要生成的html内容,不太方便预览生成页面的内容,无法可视化布局页面,更改html模板时会更加复杂。 用这种方法的人很多,但我感觉这种方法是最不方便的。

2、 制作单独的HTML模板页,动态的内容用特定的字符作为标记(如:有人用$title$标记为网页标题),用或者将其模板内容载入,然后再用替换方法把原先定好的标记替换为动态内容(如:Replace(载入的模板内 容,"$title$",rs("title" ) ) )。 3、 用XMLHTTP或serverXMLHTTP获取动态页所显示的HTML内容, 我常用的生成html文件的实例: 'weburl是要获取的动态页地址 'getHTTPPage(weburl)是获取动态页内容的函数 weburl="")&""‘指定动态页地址 body=getHTTPPage(weburl)'用函数取到动态页地址的内容 此方法最大的好处就是不用费力气专门去写静态的模板页面,只是将原来就有的动态页面转换为HTML静态页面,但生成速度不是太快。 我常用的生成HTML的方法就是第3种:用XMLHTTP获取动态页生成的HTML内容,再用或者保存成html文件。 第二步是生成文件的方法: ASP里常用的有用生成文件和生成文件两种 1、

JSP生成静态页面

jsp生成静态页面 转自:https://www.doczj.com/doc/7619006570.html,/space/?233 生成静态页面技术解决方案系列(一) 2006-10-26 相信很多人都希望自己的页面越快越好,最好是能静态的,提高客户访问速度。也便于搜索引擎搜索。所以,就希望我们的动态读取数据库的页面,尽可能的生成静态页面。一下系列文章,介绍一下个人的解决方案。 本系列将介绍个人的一种方法,在不改变原来jsp 文件的基础上,只需 要加入少量的代码,就让你的新闻发布系统,很容易就完全变成静态的页面。 本文假设你是用java开发的web动态页面。 第一步,加入servlet.代码如下。 public class ToHtml extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String url = ""; String name = ""; ServletContext sc = getServletContext(); String file_name = request.getParameter("file_name");// 你要访问的jsp 文件名,如index,不包括扩展名 // 则你访问这个servlet时加参数.如 http://localhost/test/toHtml?file_name=index url = "/" + file_name + ".jsf";// 你要生成的页面的文件名。我的扩展名为jsf . name = ConfConstants.CONTEXT_PATH+"\\"+ file_name + ".htm";// 这是生成的html文件名,如index.htm.文件名字与源文件名相同。扩展名为htm //ConfConstants.CONTEXT_PATH为你的应用的上下文路径。

wordpress 全站生成静态html页面插件

wordpress 全站生成静态html页面插件 wordpress 全站生成静态html页面插件 只要被浏览页面就会自动生成一个html页面 文件名可以自己设,网上找的,分享下, 说明: **** 概述**** cos-html-cache 将会大大地提高你wordpress的运行效率和载入速度。该插件会在页面第一次载入的时候产生和url对应的真正的html文件作为缓存,后面的运行将会直接载入该html从而大大的提高了页面的效率。当页面内容发生变化时将会自动更新对应的页面,更新缓存的触发事件有:修改文章、删除文章、评论成功提交,同时这些事件也将会更新与之相邻的文章。 cos-html-cache2.0和之前的版本相比大大的提高了速度,改进了缓存的机制,使之更加科学 **** 安装**** 1. 下载插件,解压缩,你将会看到一个文件夹cos-html-cache,请确认文件夹里面没有二级目录,然后将其放置到插件目录下,插件目录通常是 `wp-content/plugins/`; 2. 在后台对应的插件管理页激活该插件; 3 在网站的根目录下创建一个文件 "index.bak",并将属性设置成0666 4 安装完成; **** 卸载插件 **** 1. 进入后台 admin->设置->cos-html-cache; 2. 点击按钮删除所有的html缓存文件(请一定要删除);

3. 删除首页根目录下的index.html(如果存在); 4. 进入插件管理界面,禁用该插件; 5. 卸载完成,若还有相关的html文件,请手动删除之。 **** FAQ **** 1. 我后缀名是.htm不是.html的可以用么? 后缀名是html或者html均可,其他方式不可以 2. 如果我的永久连接是目录形式的可以用么? 不可以,插件将会在目录下生成index.html文件。 3. 缓存的静态HTML文件在哪里? 放在你URL链接对应的地方,比如你页面的地址是https://www.doczj.com/doc/7619006570.html,/dir1/dir2/2.ht ml那么静态文件就在 dir1/dir2 目录下 4. 为什么后台没有批量更新了? 请看最前面的说明,2.0的机制发生变化,已经不需要这个功能了! 5. 如果我的永久连接不合理怎么办?放心修改就是,不用担心链接失效问题,我自己都修改过几次。 6. 静态化后不支持pingback,如何处理? 在你的模板文件夹下的header.php文件中,加上这样的pingback meta:” />,加在css调用之前,当调用静态文件的时候,htaccess和这个meta会帮你处理ping back的! 7. 如何确定静态化成功? FTP查看有没有html文件生成,或者看看当前页面的源代码的最后面是否有这样的代码: 8. 生成了index.html为什么访问的还是index.php 服务器配置文件访问优先级的问题,本插件无能为力,请修改服务器配置,如果你的服务器支持自定义htaccess,请在htaccess中增加DirectoryIndex index.html index.htm in dex.php index.cgi。 9. 无法生成cache,如何处理? 页无法生成是因为你的网站根目录不让写入文件,你可以自行建立index.html,设置属性为

教你制作静态网页的方法

教你制作静态网页的方法 一、网页设计基础 1、熟悉Dreamweaver 8的工作环境 2、创建新站点 创建本地站点:站点----管理站点----新建----站点(前三步也可直接从“新建站点”进入下面的设置向导对话框)----跟随向导设置直至完成 3、网页文件的基本操作 a、创建、打开和保存网页文件 创建:文件----新建----创建 打开:文件---打开----选择欲打开的文件 或者在右边的文件浮动面版中选择打开 保存:文件---保存或另存为 b. 设置网页的页面属性 修改---页面属性---然后设置(标题、背景、背景图像、文本等) c. 设置网页对象的颜色 网页对象,如页面背景、文字、链接都经常需要设置颜色。 可在各自对应的属性面版中设置。 d. 网页文本的输入和属性设置 文本可键入、导入、粘帖 文字可设置字体、大小、颜色、格式等。 键入空格的方法:1、汉字输入法设置为全角方式,按空格键即可输入。2、属性面版格式中:预先格式化的 换行:ENTER、SHIFT+ENTER 实例练习: 1、输入以下文字 书签夹在诗集里, 落叶夹在深秋里。 喜悦夹在生活里, 追求夹在人生里。 2、第一次设置格式为“无”,字体为“华文行楷”,字体颜色为“红色”,字号为“5号”,添加项目符号。然后保存、预览。 3、第二次设置格式为“标题一”,字体为“楷体”,字体颜色为“蓝色”,字号为“5号”,添加项

目符号,对齐方式为“居中”。然后保存、预览。 比较两次设置的效果。 e. 网页图片的插入和属性设置 插入图片,在对话框中选择图片。(最好在建立站点时将欲用的图片素材复制到本地站点目录中) 插入图像占位符,在图片准备好后再加入图片。加入方法:1、双击图像占位符;2、点“属性面版”中的“指向文件”,拖到右边文件中要插入的文件处。 在图像属性面版中设置 f. 插入层 方法: 1、点击插入面版中的“描绘层”;2、在网页编辑器窗口中按住鼠标左键拖画出定位用的层; 3、可以随意移动层的位置; 4、可在层中插入图像、文字等。 g. *插入表格,用表格定位 方法: 1、先用鼠标点至欲插入表格的位置; 2、点插入面版中的“表格”—“插入表格”; 3、确定行数、列数后确定即将表格插入到选定位置了; 4、可在表格中任何单元格里插入图像、文字等。 h. 建立超链接 方法: 1、选中要建立超链接的文字或图像; 2、点右键“创建链接”打开的窗口或在属性的链接栏里,填入链接的目标。(如:本网站另一个网页,或外部网页如https://www.doczj.com/doc/7619006570.html,,或电子邮件如:mailto:zdhwangji@https://www.doczj.com/doc/7619006570.html,) 3、在页面属性里修改链接的属性:修改--页面属性(链接、活动链接、访问过链接) 二、制作实例1

【IT专家】如何动态生成HTML页面

本文由我司收集整编,推荐下载,如有疑问,请与我司联系 如何动态生成HTML页面 我想知道一些新闻网站,如新浪,他们的新闻网页生成的都是html,我知道如何动态生成HTML页面,我想知道大概的一些原理。你可以写一些在后台运行的程序,比如一些用DELPHI写的DLL,在你要访问的链接里传送参数,在后台自动生成HTML代码,发送到客户端!!!当然如果你用的是JSP开发,也可以用JAVA写一些JAVABEAN或者是SERVLET,要实现的功能和DLL差不多! 新浪由于访问量极大,肯定不会每次访问都用服务器程序动态生成页面,不然服务器早就跑死了。他们会在网页内容创建或者更新时自动生成静态HTML页面,以后的浏览全部引向静态页面。其实CSDN也是同样的策略:论坛的帖子并不是动态生成的,而是已经生成好的静态页面(XML格式)。只有当有人回复时,才会调用服务器程序,重新生成静态页面。例如我要做一个信息发布的系统,后台管理系统把信息加到数据库当中,然后同时生成html文件储存在服务器上。我这样认为对吗?但是还有问题,如果我要把信息列表出来(例如主页要列表信息的题目,还有链接),那么是否还是要读数据库?还有一个问题,当我做搜查的时候,例如我要实现搜查信息的时候,我还是要通过数据库搜查吧?你知道一个论坛(例如CSDN)的浏览次数与发帖次数之比是多少吗?大概是10:1。也就是说,生成静态页面将减少90%的服务器程序运行次数。如果网站的每日页流量是1000万,这个比例就意味着一台小型机。没用处?你告诉我什么有用处?tokafeleung(梁继宗):一种常见的做法就是像你所说的这样。将信息列表和搜索实际上是同一个操作:根据某种条件得到一系列文章(最近做CMS,习惯说“文章”这个词,请多谅解)。如果文章正文普遍比较大,可以根据需要建索引字段,能够极大地提高搜索速度。在一个普通的CMS 中,最大的开销是读/写文章正文时的数据流。由于CMS的读/写次数之比更大(常常达到100:1甚至更大),因此实际上最大的开销就是读取文章正文的动作。如果有索引字段,搜索动作是不需要读取文章正文的。生成静态HTML文件之后,普通的(无修改的)浏览动作也不需要从数据库读取文章正文。一般情况下,这样就可以达到性能要求了。楼上所说的搜查,是建立一个索引表,将文章正文的关键字加入

静态网页制作

静态网页制作 一、网页设计基础 1、熟悉Dreamweaver 8的工作环境 2、创建新站点 创建本地站点:站点----管理站点----新建----站点(前三步也可直接从“新建站点”进入下面的设置向导对话框)----跟随向导设置直至完成 3、网页文件的基本操作 a、创建、打开和保存网页文件 创建:文件----新建----创建 打开:文件---打开----选择欲打开的文件 或者在右边的文件浮动面版中选择打开 保存:文件---保存或另存为 b. 设置网页的页面属性 修改---页面属性---然后设置(标题、背景、背景图像、文本等) c. 设置网页对象的颜色 网页对象,如页面背景、文字、链接都经常需要设置颜色。 可在各自对应的属性面版中设置。 d. 网页文本的输入和属性设置 文本可键入、导入、粘帖 文字可设置字体、大小、颜色、格式等。 键入空格的方法:1、汉字输入法设置为全角方式,按空格键即可输入。2、属性面版格式中:预先格式化的 换行:ENTER、SHIFT+ENTER 实例练习: 1、输入以下文字 书签夹在诗集里, 落叶夹在深秋里。 喜悦夹在生活里, 追求夹在人生里。 2、第一次设置格式为“无”,字体为“华文行楷”,字体颜色为“红色”,字号为“5号”,添加项目符号。然后保存、预览。

3、第二次设置格式为“标题一”,字体为“楷体”,字体颜色为“蓝色”,字号为“5号”,添加项目符号,对齐方式为“居中”。然后保存、预览。 比较两次设置的效果。 e. 网页图片的插入和属性设置 插入图片,在对话框中选择图片。(最好在建立站点时将欲用的图片素材复制到本地站点目录中) 插入图像占位符,在图片准备好后再加入图片。加入方法:1、双击图像占位符;2、点“属性面版”中的“指向文件”,拖到右边文件中要插入的文件处。 在图像属性面版中设置 f. 插入层 方法: 1、点击插入面版中的“描绘层”;2、在网页编辑器窗口中按住鼠标左键拖画出定位用的层; 3、可以随意移动层的位置; 4、可在层中插入图像、文字等。 g. *插入表格,用表格定位 方法: 1、先用鼠标点至欲插入表格的位置; 2、点插入面版中的“表格”—“插入表格”; 3、确定行数、列数后确定即将表格插入到选定位置了; 4、可在表格中任何单元格里插入图像、文字等。 h. 建立超链接 方法: 1、选中要建立超链接的文字或图像; 2、点右键“创建链接”打开的窗口或在属性的链接栏里,填入链接的目标。(如:本网站另一个网页,或外部网页如https://www.doczj.com/doc/7619006570.html,,或电子邮件如:mailto:zdhwangji@https://www.doczj.com/doc/7619006570.html,) 3、在页面属性里修改链接的属性:修改--页面属性(链接、活动链接、访问过链接)

JSP生成静态HTML页面的几种方法

JSP生成静态HTML页面的几种方法 2008年04月12日星期六 09:26 一、从数据库中取相应数据并替换掉模板中的对应标签,下面是一个简单的示例 1.buildhtml.jsp <%@ page contentType="text/html; charset=gb2312" import="java.util.*,java.io.*"%> <% try{ String title="This is Title"; String content="This is Content Area"; String editer="LaoMao"; String filePath = ""; filePath = request.getRealPath("/")+"test/template.htm"; //out.print(filePath+"
"); String templateContent=""; FileInputStream fileinputstream = new FileInputStream(filePath);//读取模块文件 int lenght = fileinputstream.available(); byte bytes[] = new byte[lenght]; fileinputstream.read(bytes); fileinputstream.close(); templateContent = new String(bytes); //out.print(templateContent); templateContent=templateContent.replaceAll("###title###",title); templateContent=templateContent.replaceAll("###content###",content); templateContent=templateContent.replaceAll("###author###",editer);// 替换掉模块中相应的地方 //out.print(templateContent); // 根据时间得文件名 Calendar calendar = Calendar.getInstance(); String fileame = String.valueOf(calendar.getTimeInMillis()) +".html"; fileame = request.getRealPath("/")+fileame;//生成的html文件保存路径FileOutputStream fileoutputstream = new FileOutputStream(fileame);// 建立文件输出流 byte tag_bytes[] = templateContent.getBytes(); fileoutputstream.write(tag_bytes); fileoutputstream.close(); } catch(Exception e){ out.print(e.toString()); } %>

页面静态化解决方案

页面静态化解决方案 1.方案一:利用使用HTML模版页面,来实现静态化数据 ◆编辑录入文章,通过页面管理执行数据操作保存数据到数据库。也可以通过获取数 据进行数据更新。 ◆发布文章:通过页面生成器,从数据库读取数据和从模版库读取模版生成相应得静 态页面HTML。 ◆读取整个栏目文件数量,重构索引文件和分页文件。 ◆结构图如下: 2. 方案二:用XSL和XML的方式来实现静态的HTML或SHTML 原理:用XSL来实现文章和内容的模版,用XML来存储数据,生成静态的HTML或SHTML。 ◆编辑通过后台系统录入数据到数据库。 ◆数据库通过自己的机制把数据生成XML文件,也可以编程来实现XML文件的生 成(可以全部生成XML文件也可以部分生成XML文件,如果全部生成会产生大 量的XML文件。)。 ◆然后由XSL文件和XML文件生成HTML文件,如果添加新的数据功能,XSL模 版必定要修改,这样修改后需要重新生成HTML文件。 ◆编辑如果一更新数据,同时更新过的数据会通过一定的机制重新生成XML文件。 这样根据更新过的XML文件需要重新生成HTML文件。 ◆XSL转HTML是比较耗CPU的,如果访问量比较大,可以考虑用.net remoting把XSL

转HTML放到另外的服务器上处理。 3. 方案三:前台用XML和XSL直接展示。 ◆编辑通过后台系统录入数据到数据库。 ◆数据库通过自己的机制把数据生成XML文件,也可以编程来实现XML文件的生 成。(可以全部生成XML文件也可以部分生成XML文件,如果全部生成会产生大 量的数XML文件。) ◆然后由XSL文件和XML直接在前台展示,这样的速度会比纯动态访问数据库快 一些,同时减轻频繁访问数据库的次数,同时还能减轻服务器的压力,因为XSL 和XML文件是下载到客户端通过浏览器解析执行的,所以说速度肯定没有纯 HTML快。并且还有一部分浏览器不能解析XML文件。 ◆更新数据后只更新XML文件,不用再去生成HTML文件。 4. 方案四:生成SHTML文件 ◆原理:生成方式和利用HTML模版生成HTML文件类似,只不过在SHTML中可 以引入“服务器端包含”。 ◆SHTML是使用SSI(Server Side Include)的HTML文件扩展名。它可以用include file 的方式,把若干个文件包含进来。例如(可以拆分为a.html和b.html),然后用c.shtml 把这两个文件包含进来,那在更新的时候只需要更新a.html,而b.html不需要更新,这样可以减少大量的制作工作。因此使页面更新容易(特别是批量更新)。如果是 其中一个包含文件更新了,只更新这个包含文件,这样页面不会大量更新,减少服 务器的消耗。

php生成html静态页面类

PHP生成HTML静态页面类 {title} {text} $sc=new template(); //$sc=new template($tmp,$filename,$arr); (本来这里直接用构造函数来实现的,考虑到会有很多的生成静态页的进程,还是改为函数调用,本处保留备用,在类中template()替换成templateHtml()即可实现) $tmp="../template/temp.php"; //模板页 $filename="test.html"; //生成页 $foot="../foot.html"; //包含的底文件,头文件同理 $arr=array(); $arr["{title}"]="新标题"; $arr["{text}"]="新内容"; $arr["{foot}"]=$sc->readHtml($foot);

$sc->templateHtml($tmp,$filename,$arr); */ class template { var $temp; //读取的模板页文件名(包含路径) var $html; //要生成的html文件名(包含路径) var $err; //错误编号 var $test; //数据流 var $arr; //要替换的数组模式(键名->模板标签 , 键值->替换内容) function template() { $this->temp=""; $this->html=""; $this->err=0; $this->test="";

关于.net生成静态页面的方法总结

1)做一个比较好的模板temp1.html,并在模板中写好题目,内容,作者以及发布日期的标记,如果还有其他列表的话也要写好其他列表的标记,如题目可以用标记:$Title$,内容可以用$cont$,发布日期$PubDate,最新发布新闻列表$DtNewest$; 2)设计数据库,可以设置两张表,一张表存放模板,一张用于存放发布新闻的内容 如模板表:TempTable :ID ,classid,TempPath(存放模板的路径); 新闻表:NesTable: ID,ClassID,title,cont,Filepath(发布后存放静态页面的路 径),pubdate,author,status; 3)添加新闻时,现在记录添加到新闻表中,然后再根据栏目的ID找到该栏目的模板,把模板中的内容读取到一个字符串变量中,并用新闻表中的字段替换模板中的相应标记,然后调用c#中的读写文件的类,写到一个静态文件中如:News.HTml,写成功后再更新数据中静态文件路径filepath; 这样一个静态文件就写好了 另外本人也从网络上搜集了一些资料,供大家参考(关于新闻内容分页的情况下次叙述) 一、类似的模板 模板页Text.html代码 $ShowArticle$ $title$
$author$
$content$
二、C#生成静态页类代码|支持列表生成代码 using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security;

静态页面和动态页面

4.2 静态页面和动态页面 4.2.1 静态页面 在互联网发展的开始阶段,人们通过浏览器浏览的页面一般都是HTML静态页面,也即Web页面只包括单纯的HTML标记文本内容,浏览器也只能显示呆板的文字或图像等信息。用户使用客户机端的Web浏览器,访问Internet上各个Web站点,在每一个站点上都有一个主页(Home Page)作为进入某个Web站点的入口。每一Web页中都可以含有信息及超文本链接,超文本链接可以让用户链接到另一Web站点或是其他的Web页。从服务器端来看,每一个Web站点由一台主机、Web服务器及许多Web页所组成,以一个主页为首,其他的Web页为支点,形成一个树状的结构,每一个Web页都是以HTML的格式编写的。Web服务器使用HTTP超文本传输协议,将HTML文档从Web服务器传输到用户的Web 浏览器上,就可以在用户的屏幕上显示出特定设计风格的Web页。 但很快,这种静态页面满足不了用户的浏览需求。用户除了浏览相关信息外,还需要在浏览器浏览的页面中进行交互操作,以便让浏览器能处理用户的请求。在这种需求下,1995年后的浏览器发展成为支持Web页中加入Javascript 或Vbscript脚本代码的网页,以便创建内容和表现力更加丰富的HTML页面,可以让用户实现浏览器中的动态交互操作。但此时的网页仍然是静态网页,它不需要Web服务器做任何工作,Web服务器将网页传送到客户端后,由浏览器解释执行带有脚本语言的网页。但这种静态网页已经让用户感觉到网页的多姿多彩,已具有某种程度上的动态特性,而这种动态特性是基于客户端浏览器的。 随着互联网技术的不断发展以及网上信息呈几何级数的增加,人们逐渐发现手工编写包含所有信息和内容的页面对人力和物力都是一种极大的浪费,而且几乎变得难以实现。此外,采用静态页面方式建立起来的站点只能简单地根据用户的请求传送现有页面,而无法实现各种动态的交互功能。具体来说,静态页面在以下几个方面都存在明显的不足: (1)无法支持后台数据库。随着网上信息量的增加,以及企业和个人希望通过网络发布产品和信息的需求的增强,人们越来越需要一种能够通过简单的Web页面访问服务端后台数据库的方式。这是静态页面所远远不能实现的。 (2)无法有效地对站点信息进行及时的更新。用户如果需要对传统静态页面的内容和信息进行更新或修改的话,只能够采用逐一更改每个页面的方式。在互联网发展初期网上信息较少的时代,这种做法还是可以接受的。但现在即便是个人站点也包含着各种各样的丰富内容,因此如何及时、有效地更新页面信息已成为一个亟待解决的问题。 (3)无法实现动态显示效果。所有的静态页面都是事先编写好的,是一成不变的,因此访问同一页面的用户看到的都将只是相同的内容,静态页面无法根据不同的用户做不同的页面显示。 静态页面的上述不足之处,促使Web技术进入了发展的第二阶段即动态网页的应用。 4.2.2 动态页面 为了克服静态页面的不足,人们将传统的编程技术与Web技术相结合,从而形成新的网页开发技术,就是通过在传统的静态页面中加入各种程序和逻辑控制,实现浏览器客户端和Web服务器的动态信息交互。人们将这种使用网络编程技术创建的页面称为动态页面。

ASP生成静态页面的6种方法

ASP生成静态网页的多种方法 使用FSO生成 <% '使用FSO生成 Set fs = CreateObject("Scripting.FileSystemObject") NewFile=Server.MapPath("ud03/fso.htm") '新建一文件fso.htm,若该文件已存在,则覆盖它 Set a = fs.CreateTextFile(NewFile, True) Response.Write"新文件已建立!" a.close File=Server.MapPath("ud03/fso.htm") Set txt=fs.OpenTextFile(File,8,True) '打开成可以在结尾写入数据的文件 data1="这句话是使用WriteLine方法写入的。!
" txt.WriteLine data1 data2="这句话是使用Write方法写入的。
" txt.Write data2 txt.Close %> 使用XMLHTTP生成 <% '使用XMLHTTP生成 Set xml = Server.CreateObject("Microsoft.XMLHTTP") '把下面的地址替换成你的首页的文件地址,一定要用http://开头的绝对路径,不能写相对路径xml.Open "GET", "https://www.doczj.com/doc/7619006570.html,/ud03/", False xml.Send BodyText=xml.ResponseBody BodyText=BytesToBstr(BodyText,"gb2312") Set xml = Nothing Dim fso, MyFile Set fso = CreateObject("Scripting.FileSystemObject") Set MyFile= fso.CreateTextFile(server.MapPath("ud03.htm"), True) '生成的html的文件名MyFile.WriteLine(BodyText) MyFile.Close '使用Adodb.Stream处理二进制数据 Function BytesToBstr(strBody,CodeBase) dim objStream set objStream = Server.CreateObject("Adodb.Stream") objStream.Type = 1 objStream.Mode =3 objStream.Open objStream.Write strBody

相关主题
文本预览
相关文档 最新文档