网站静态化的实现以及纯伪静态优缺点
2016-12-30 10:14
369 查看
在大型网站中,访问者看到的页面基本上是静态页面。为什么都要把页面静态化呢?把页面静态化,好处有很多。例如:访问速度快,更有利于搜索引擎收录等。目前主流的静态化主要有两种:一种是通过程序将动态页面抓取并保存为静态页面,这样的页面的实际存在于服务器的硬盘中,另外一种是通过WEB服务器的 URL Rewrite的方式,他的原理是通过web服务器内部模块按一定规则将外部的URL请求转化为内部的文件地址,一句话来说就是把外部请求的静态地址转化
为实际的动态页面地址,而静态页面实际是不存在的。这两种方法都达到了实现URL静态化的效果,但是也各有各自的特点。
1、可以提高网站的打开速度
实际上,真正能够提高网站访问速度的是纯静态生成,伪静态并不能提高网站访问速度。因为纯静态生成是真正意义上减少了数据库查询工作,而伪静态是没有减少数据库查询的。所以,能够提高网站访问速度的静态化方式一定是纯静态生成方式,而不是伪静态化方式。这两之间的区别需要分清楚。
2、有利于搜索引擎抓取和索引
网站静态化之后,网页地址中没有参数,所以有利于搜索引擎抓取、分析、索引,从而对增加网站被搜索引擎收录的网页数量有非常大的帮助,对关键字在搜索引擎上的自然排名也有一定的帮助。两种静态化方式都可以实现这样的效果,所以利于搜索引擎抓取和索引的静态化方式,上述两种方式都可以胜任。
3、可以减轻服务器压力
静态化之后的网页,在用户访问的时候,不需要再次查询数据库,所以对减轻网站服务器的压力非常有帮助。但是这里要注意,伪静态不能减轻服务器压力,反而提高了一点服务器的压力。因为伪静态并不是真正意义上的静态化网页,是通过在服务器上安装组件来实现显示开式上的静态化,所以在访问伪静态网页的时候,还是需要查询数据库。因为在服务器中多装了一个处理组件,所以对服务器来说,反而提高了一点压力。
4、内容更新不能即时显示(仅纯静态)
对网站数据进行修改的时候,在网页前端不能即时显示出来,需要对网页进行静态化之后,修改的才能显示出来。因为纯静态生成的网页,是不能自动查询数据库中的数据,所以对数据发生的变化不能即时响应,需要重新运行静态化生成程序,根据新修改的数据重新生成纯静态页面,如果页面比较少的时候,这都没有关系。如果当网站规模很大,这里所产生的额外工作量将会非常大。这里所指的缺点是针对纯静态生成而言,伪静态不存在这样的缺点。
5、需要更大的服务器硬盘容量(仅纯静态)
生成静态化网页之后,需要额外的服务器硬盘容量存放生生的静态化文件。这里所指的缺点是针对纯静态生成而言,伪静态不存在这样的缺点。
实现方法摘自http://www.cnblogs.com/kingfly/p/3469363.html
1:在根目录下的全局index.php中加下面这行:
define('HTML_PATH', './htm');//生成静态页面的文件位置
2:在项目的配置文件config.php中加下面这行:
'HTML_FILE_SUFFIX' => '.html',// 默认静态文件后缀
3:在需要生成静态页的action里加入下面显红的代码
public function view()
{
$wheres = "id = $_GET[id]";
$news = $this->news->where($wheres)->find();
$this->assign("news", $news);
$this->buildHtml('1', HTML_PATH . '/news/', 'view', 'utf8');
$this->display();
}
buildHtml方法
参数1:生成的静态页名称
参数2:静态页保存的目录
参数3:生成静态页的方法名
参数4:静态页编码(是utf8,不是utf-8)
为实际的动态页面地址,而静态页面实际是不存在的。这两种方法都达到了实现URL静态化的效果,但是也各有各自的特点。
1、可以提高网站的打开速度
实际上,真正能够提高网站访问速度的是纯静态生成,伪静态并不能提高网站访问速度。因为纯静态生成是真正意义上减少了数据库查询工作,而伪静态是没有减少数据库查询的。所以,能够提高网站访问速度的静态化方式一定是纯静态生成方式,而不是伪静态化方式。这两之间的区别需要分清楚。
2、有利于搜索引擎抓取和索引
网站静态化之后,网页地址中没有参数,所以有利于搜索引擎抓取、分析、索引,从而对增加网站被搜索引擎收录的网页数量有非常大的帮助,对关键字在搜索引擎上的自然排名也有一定的帮助。两种静态化方式都可以实现这样的效果,所以利于搜索引擎抓取和索引的静态化方式,上述两种方式都可以胜任。
3、可以减轻服务器压力
静态化之后的网页,在用户访问的时候,不需要再次查询数据库,所以对减轻网站服务器的压力非常有帮助。但是这里要注意,伪静态不能减轻服务器压力,反而提高了一点服务器的压力。因为伪静态并不是真正意义上的静态化网页,是通过在服务器上安装组件来实现显示开式上的静态化,所以在访问伪静态网页的时候,还是需要查询数据库。因为在服务器中多装了一个处理组件,所以对服务器来说,反而提高了一点压力。
4、内容更新不能即时显示(仅纯静态)
对网站数据进行修改的时候,在网页前端不能即时显示出来,需要对网页进行静态化之后,修改的才能显示出来。因为纯静态生成的网页,是不能自动查询数据库中的数据,所以对数据发生的变化不能即时响应,需要重新运行静态化生成程序,根据新修改的数据重新生成纯静态页面,如果页面比较少的时候,这都没有关系。如果当网站规模很大,这里所产生的额外工作量将会非常大。这里所指的缺点是针对纯静态生成而言,伪静态不存在这样的缺点。
5、需要更大的服务器硬盘容量(仅纯静态)
生成静态化网页之后,需要额外的服务器硬盘容量存放生生的静态化文件。这里所指的缺点是针对纯静态生成而言,伪静态不存在这样的缺点。
thinkphp纯静态页实现方法!
实现方法摘自http://www.cnblogs.com/kingfly/p/3469363.html1:在根目录下的全局index.php中加下面这行:
define('HTML_PATH', './htm');//生成静态页面的文件位置
2:在项目的配置文件config.php中加下面这行:
'HTML_FILE_SUFFIX' => '.html',// 默认静态文件后缀
3:在需要生成静态页的action里加入下面显红的代码
public function view()
{
$wheres = "id = $_GET[id]";
$news = $this->news->where($wheres)->find();
$this->assign("news", $news);
$this->buildHtml('1', HTML_PATH . '/news/', 'view', 'utf8');
$this->display();
}
buildHtml方法
参数1:生成的静态页名称
参数2:静态页保存的目录
参数3:生成静态页的方法名
参数4:静态页编码(是utf8,不是utf-8)
相关文章推荐
- 网站静态化的实现以及纯伪静态优缺点
- 面向搜索引擎的内容管理系统(CMS)设计——利用Squid反相代理缓存实现网站内容静态发布
- 如何实现 网站在线人数以及历史访问人数的统计
- 网站实现伪静态
- asp.net 网站纯静态化设计及其实现
- Freemarker网站静态化的实现
- 面向搜索引擎的内容管理系统(CMS)设计——利用Squid反相代理缓存实现网站内容静态发布
- cocos2d-x 实现静态进度条,文字滚动,以及介绍动态进度条CCProgressTimer
- 个人电子商务网站建设之——整站静态化实现的选择、设计与实现(二):静态页面的实现方式;
- 在linux5平台上快速搭建apache网站以及实现个人主页的访问!!
- Freemarker网站静态化的实现
- 如何实现网站在线人数以及历史访问人数的统计
- 转自:imyourgod Freemarker网站静态化的实现
- Freemarker网站静态化的实现
- ASP.NET使用IHttpModule实现网站静态缓存
- 专题:如何实现 网站在线人数以及历史访问人数的统计
- Umbraco网站制作(八) 实现伪静态
- Freemarker网站静态化的实现
- 静态内容负载均衡的具体实现-续《几百元搞定大型网站》
- 网站伪静态技术(网页伪静态化)