在大型网站中,访问者看到的页面基本上是静态页面。为什么都要把页面静态化呢?把页面静态化,好处有很多。例如:访问速度快,更有利于搜索引擎收录等。目前主流的静态化主要有两种:一种是通过程序将动态页面抓取并保存为静态页面,这样的页面的实际存在于服务器的硬盘中,另外一种是通过WEB服务器的 URL Rewrite的方式,他的原理是通过web服务器内部模块按一定规则将外部的URL请求转化为内部的文件地址,一句话来说就是把外部请求的静态地址转化 为实际的动态页面地址,而静态页面实际是不存在的。这两种方法都达到了实现URL静态化的效果,但是也各有各自的特点。

 1、可以提高网站的打开速度
  实际上,真正能够提高网站访问速度的是纯静态生成,伪静态并不能提高网站访问速度。因为纯静态生成是真正意义上减少了数据库查询工作,而伪静态是没有减少数据库查询的。所以,能够提高网站访问速度的静态化方式一定是纯静态生成方式,而不是伪静态化方式。这两之间的区别需要分清楚。
  2、有利于搜索引擎抓取和索引
  网站静态化之后,网页地址中没有参数,所以有利于搜索引擎抓取、分析、索引,从而对增加网站被搜索引擎收录的网页数量有非常大的帮助,对关键字在搜索引擎上的自然排名也有一定的帮助。两种静态化方式都可以实现这样的效果,所以利于搜索引擎抓取和索引的静态化方式,上述两种方式都可以胜任。
  3、可以减轻服务器压力
  静态化之后的网页,在用户访问的时候,不需要再次查询数据库,所以对减轻网站服务器的压力非常有帮助。但是这里要注意,伪静态不能减轻服务器压力,反而提高了一点服务器的压力。因为伪静态并不是真正意义上的静态化网页,是通过在服务器上安装组件来实现显示开式上的静态化,所以在访问伪静态网页的时候,还是需要查询数据库。因为在服务器中多装了一个处理组件,所以对服务器来说,反而提高了一点压力。
  4、内容更新不能即时显示(仅纯静态)
  对网站数据进行修改的时候,在网页前端不能即时显示出来,需要对网页进行静态化之后,修改的才能显示出来。因为纯静态生成的网页,是不能自动查询数据库中的数据,所以对数据发生的变化不能即时响应,需要重新运行静态化生成程序,根据新修改的数据重新生成纯静态页面,如果页面比较少的时候,这都没有关系。如果当网站规模很大,这里所产生的额外工作量将会非常大。这里所指的缺点是针对纯静态生成而言,伪静态不存在这样的缺点。
  5、需要更大的服务器硬盘容量(仅纯静态)
  生成静态化网页之后,需要额外的服务器硬盘容量存放生生的静态化文件。这里所指的缺点是针对纯静态生成而言,伪静态不存在这样的缺点。

thinkphp纯静态页实现方法!

实现方法摘自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)

来源:http://blog.csdn.net/shuyeshangdemayi/article/details/53939859

网站静态化的实现以及纯伪静态优缺点相关推荐

  1. 网站静态化——前后端分离(下)

    我第一次听说nodejs技术大概是在2009年年末,不过我真正认真在网络上进一步了解nodejs还是在2010年年中,当时对nodejs的认识和我现在对nodejs的认识有着天壤的区别,开始想了解no ...

  2. 关于大型网站技术演进的思考--网站静态化处理

    转自: 夏天的森林blog:(系统设计与架构(47)) 一 在存储瓶颈的开篇我提到像hao123这样的导航网站只要它部署的web服务器数量足够,它可以承载超大 规模的并发访问量,如果是一个动态的网站, ...

  3. 关于大型网站技术演进的思考(十六)--网站静态化处理—前后端分离—下(8)

    出处:夏天的森林博客 我第一次听说nodejs技术大概是在2009年年末,不过我真正认真在网络上进一步了解nodejs还是在2010年年中,当时对nodejs的认识和我现在对nodejs的认识有着天壤 ...

  4. 关于大型网站技术演进的思考(九)--网站静态化处理--总述(1)

    在存储瓶颈的 开篇我提到像hao123这样的导航网站只要它部署的web服务器数量足够,它可以承载超大规模的并发访问量,如果是一个动态的网站,特别是使用到了数据 库的网站是很难做到通过增加web服务器数 ...

  5. 网站静态化处理—动静分离策略(3)

    前文里我讲到了网站静态化的关键点是动静分离,动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网 ...

  6. 网站静态化--谈谈网站静态化

    转摘自:http://www.cnblogs.com/yizhu2000/archive/2008/09/01/1281532.html 百科资料:http://baike.baidu.com/lin ...

  7. 网站静态化处理—缓存

      上篇我补充了下SSI的知识,SSI是一个十分常见的技术,记得多年前我看到很多门户网站页面的后缀是.shtml,那么这就说明很多门户网站都曾经使用过SSI技术,其实现在搜狐网站也还在用shtml,如 ...

  8. 网站静态化处理—缓存(4)

    上篇我补充了下SSI的知识,SSI是一个十分常见的技术,记得多年前我看到很多门户网站页面的后缀是.shtml,那么这就说明很多门户网站都曾经使用过SSI技术,其实现在搜狐网站也还在用shtml,如下图 ...

  9. 关于大型网站技术演进的思考(十五)--网站静态化处理—前后端分离—中(7)

    出处:夏天的森林博客 上篇里我讲到了一种前后端分离方案,这套方案放到服务端开发人员面前比放在web前端开发人员面前或许得到的掌声会更多,我想很多资深前端工程师看到这样的技术方案可能会有种说不出来的矛盾 ...

最新文章

  1. iphone x屏幕尺寸_苹果公布 iPhone 12/12 Pro 屏幕更换价格,网友:碎不起!
  2. ios android 内存不足,怎样解决手机内存不足?iOS系统可以试试这些方法
  3. 阿里云制造行业总经理胡鑫:中台技术如何支撑企业数字化转型
  4. UG集成显卡 显示成烂面
  5. python自带的统计函数_NumPy统计函数的实现方法
  6. 【软件工程】抽象泄漏
  7. 今天闲着没事弄个几个表情包
  8. ue4cmd怎么调用_虚幻引擎UE4-命令行使用的一些详细技巧
  9. 对服务与工厂感到困惑
  10. 不会真有人觉得聊天机器人难吧——开篇
  11. rocketMq消息重复消费问题
  12. 电脑实用的软件及工具
  13. Secondary NameNode:简单的介绍和理解
  14. Python123 练习1
  15. 【行业报告】:低碳智能ALL “IN” | 印刷包装数智化转型之路
  16. Increasing Triplet Subsequence
  17. 网易企业邮箱管理功能
  18. 实验吧CTF逆向题1000writeup
  19. python slice start比end小_Python入门
  20. Stack Overflow技术报告给开发者哪些启示

热门文章

  1. C 读写php,C语言读取文件所有内容
  2. 「C++」C++ Primer Plus 笔记:第二章 开始学习C++
  3. 05_专家的快速入门、加载MNIST数据集、数据集切分和混淆、定义类的方式构建模型、选择优化器和损失函数、训练模型和测试模型准确率
  4. android 多行 对齐方式,android – 按钮与多行文字下沉对齐线,如何解决?
  5. 排序算法的时间复杂度_算法的时间复杂度
  6. java中public_java中public class与class的区别详解
  7. java returnAddres_JavaClient 查询ES-(重要)
  8. 设备驱动模型之device-driver
  9. loadRunner12试用
  10. 重学前端-js的类型问题