全站静态生成html的问题讨论收集

全站HTML缓存(这个可能有点中国特色),其实算起来节省的只是服务器的资源,而对服务器有效联网带宽的消耗还是一样的。目前国内大部分虚拟主机已经开始不限制并发连接数,而是用计算单位时间内流量,就可以看出来全站html与否,不是问题的关键。 出于加快页面显示速度的初衷,可以考虑gzip,在CI的config里有设置选项。 还有,就是在程序开发的过程中,尽量多用数组,尽量减少数据库读取的次数,尽量使用缓存(XML方式),再有CI有比较可行的缓存解决方案,也可以参考一下。 ci的缓存是模仿JAVA编译机原理,有点类似zend optimizer。只有在访问后,才可以生成缓存。 如果和模块调用缓存比较的话。CI的缓存机制,可以说成是被动缓存。 实际上CI默认的缓存机制,在某种意义上说,只要你使用,它就是一种静态HTML,而且它的优势是,cache on demand。就是被动缓存。它的更新是时间戳间隔,而不是站长手动更新。 至于用不用Cache这是个争论性问题,没有答案,需要根据实际项目来。 (1) HTML应该是利用view方法第三个参数,返回HTML并写入文件的,在开发过程中注意URL的管理就好了。 1、HTML比PHP的文件缓存快很多,因为PHP有一个解释的过程。 2、现在搜索引擎看重的不是后缀是域名权重。 3、伪静态对WEB服务器的压力会进一步增大。 reverse: 纯html和php到底谁快,这个可不是绝对的。 再有,伪静态是会占用一点点的系统资源,但也仅仅是一点点。而且这一点点,又被apache/nginx分担了一部分(因为.htaccess)。 纯html与否,纯粹看个人喜好,而不是系统需要(个人观点)。 reply: php 和 html 有相同的前置处理过程,html无需加载任何解释器,直接输出代码给浏览器。 请问,什么情况下 php 比 html 快? 在大量并发下累计的伪静态资源占用,还是可观的。 html与否应该是取决于系统需要的。 reverse: 我只问楼上一个问题。 无论是纯html,还是php的解释执行,最终是在用户的浏览器解释执行。那么,我的问题是,客户端的解释动作,是在接收全部的html标记(php解释 执行后,也是html标记)后再在页面上显示,还是边接收,边解释。你把这个问题搞清楚,再谈纯html和php是不是就是绝对的。 还有,在服务器层面,数据库读取和PHP解释执行的资源消耗和纯HTML时服务器的I/O消耗,楼上有过精准的测试比较?还是人云亦云?如果有测试比较,你的测试环境和测试数据不妨贴出来。 再有,纯html有很多弊病,如果你的站点更新量不大,服务器硬盘随便用,而且不介意频繁的根据时间戳更新静态页,那就是另当别论了。 静态化并不是什么值得推崇和追求的方式(个人观点)。 还有,我本人最近也总被问到静态化的问题。 我罗列了一下,一些静态化的初衷,居然是降低数据库的调用次数。 其实,降低数据库的访问次数,方法有很多,这个可以在google上一搜一大把,并不是只有静态化才能解决。 还有一些目的是搜索引擎友好,这种需求大多是看了很多SEO方面的资料而发的。我的观点是,一个站点是否经常被蜘蛛光顾,记录,原因不在是不是静态化,而 是站点的内容是不是会让很多人访问。你静态化再完美,每天的IP和PV数量根本达不到搜索引擎的要求,你还会指望蜘蛛光顾么? 还有,就是纯粹的“拉风”需求了。 综合以上三点,所以我说静态化的html,纯粹是看个人喜好了。 再罗嗦一句。 经常也有人用网易、新浪等门户html静态化问我。 我只能说,这种观点是把html“神化”了。门户的静态化html,是不得已而为之,因为他们的数据要保持的时限通常在5年以上。 就说这么多吧,其他的就是个人理解、技术能力和见仁见智的问题了。 reply: 不说谁搞清楚和搞不清楚的问题。 客户端、I/O,这些可以了解成HTML和PHP的共性,至于谁懂谁不懂,就不争论了。 但PHP比HTML多的问题在哪里呢: PHP解释器,从<?php 开始,服务器就要做额外处理,每一个PHP变量,每一次实例化对象,每个IF的过程,这些在高并发下,服务器压力并不低。 […]