用户
 找回密码
 入住 CI 中国社区
搜索
楼主: dongfang521
收起左侧

[视图] 关于CI如何实现全站静态生成html?

  [复制链接]
发表于 2011-6-13 16:36:50 | 显示全部楼层
baloyou 发表于 2011-6-7 16:00
HTML应该是利用view方法第三个参数,返回HTML并写入文件的,在开发过程中注意URL的管理就好了。

1、HTML比 ...

纯html和php到底谁快,这个可不是绝对的。
再有,伪静态是会占用一点点的系统资源,但也仅仅是一点点。而且这一点点,又被apache/nginx分担了一部分(因为.htaccess)。
纯html与否,纯粹看个人喜好,而不是系统需要(个人观点)。
发表于 2011-6-13 17:24:38 | 显示全部楼层
spt119 发表于 2011-6-13 16:36
纯html和php到底谁快,这个可不是绝对的。
再有,伪静态是会占用一点点的系统资源,但也仅仅是一点点。而 ...

php 和 html 有相同的前置处理过程,html无需加载任何解释器,直接输出代码给浏览器。
请问,什么情况下 php 比 html 快?

在大量并发下累计的伪静态资源占用,还是可观的。

html与否应该是取决于系统需要的。
发表于 2011-6-14 08:20:46 | 显示全部楼层
本帖最后由 spt119 于 2011-6-14 08:32 编辑
baloyou 发表于 2011-6-13 17:24
php 和 html 有相同的前置处理过程,html无需加载任何解释器,直接输出代码给浏览器。
请问,什么情况下  ...

我只问楼上一个问题。
无论是纯html,还是php的解释执行,最终是在用户的浏览器解释执行。那么,我的问题是,客户端的解释动作,是在接收全部的html标记(php解释执行后,也是html标记)后再在页面上显示,还是边接收,边解释。你把这个问题搞清楚,再谈纯html和php是不是就是绝对的。
还有,在服务器层面,数据库读取和PHP解释执行的资源消耗和纯HTML时服务器的I/O消耗,楼上有过精准的测试比较?还是人云亦云?如果有测试比较,你的测试环境和测试数据不妨贴出来。
再有,纯html有很多弊病,如果你的站点更新量不大,服务器硬盘随便用,而且不介意频繁的根据时间戳更新静态页,那就是另当别论了。
静态化并不是什么值得推崇和追求的方式(个人观点)。
发表于 2011-6-14 08:25:32 | 显示全部楼层
还有,我本人最近也总被问到静态化的问题。
我罗列了一下,一些静态化的初衷,居然是降低数据库的调用次数。
其实,降低数据库的访问次数,方法有很多,这个可以在google上一搜一大把,并不是只有静态化才能解决。
还有一些目的是搜索引擎友好,这种需求大多是看了很多SEO方面的资料而发的。我的观点是,一个站点是否经常被蜘蛛光顾,记录,原因不在是不是静态化,而是站点的内容是不是会让很多人访问。你静态化再完美,每天的IP和PV数量根本达不到搜索引擎的要求,你还会指望蜘蛛光顾么?
还有,就是纯粹的“拉风”需求了。
综合以上三点,所以我说静态化的html,纯粹是看个人喜好了。
发表于 2011-6-14 08:40:09 | 显示全部楼层
再罗嗦一句。
经常也有人用网易、新浪等门户html静态化问我。
我只能说,这种观点是把html“神化”了。门户的静态化html,是不得已而为之,因为他们的数据要保持的时限通常在5年以上。
就说这么多吧,其他的就是个人理解、技术能力和见仁见智的问题了。
发表于 2011-6-17 13:20:13 | 显示全部楼层
spt119 发表于 2011-6-14 08:20
我只问楼上一个问题。
无论是纯html,还是php的解释执行,最终是在用户的浏览器解释执行。那么,我的问题 ...

不说谁搞清楚和搞不清楚的问题。
客户端、I/O,这些可以了解成HTML和PHP的共性,至于谁懂谁不懂,就不争论了。

但PHP比HTML多的问题在哪里呢:
PHP解释器,从<?php 开始,服务器就要做额外处理,每一个PHP变量,每一次实例化对象,每个IF的过程,这些在高并发下,服务器压力并不低。

再者伪静态为服务器造成的额外压力,主要在于正则匹配。

同意你说早些年静态化要解决的主要问题之一是数据库瓶颈,这也是现在K-V数据库的意义所在。
只是不能忽略PHP解释器带来的压力,尤其是在后台程序员良莠不齐的情况下。

163 SINA等大量静态化页面,就是符合历史需求,也是在认证 “是否静态化,由项目或环境决定,而不是爱好决定”
发表于 2011-6-17 20:21:52 | 显示全部楼层
这个问题确实值得争论一下。
web服务器在内存中解释php并向客户端传递html有压力,从硬盘中读取存在的html并传递给客户端就没有压力?建议楼上再看看大一的计算机基础和CPU的指令集。英特尔的灵动CPU能不能编程是不是必须得买个上网本看看才能知道?
网易、新浪的静态化是不得已而为之,如果楼上搞过分布式+垂直式以及跨地区、跨线路的数据库系统就能明白,这已经与直接输出html或解释php无关了。当然,在CI的论坛里讨论这些问题有些无聊。
对于一般应用,我说的一般应用是web服务器和数据库服务器在一个计算机或在一个网段内,静态化与否纯粹是个人喜好。用一个或几十、几百并发量所得出的所谓测试数据,真的没意义。
发表于 2011-6-17 20:22:03 | 显示全部楼层
这个问题确实值得争论一下。
web服务器在内存中解释php并向客户端传递html有压力,从硬盘中读取存在的html并传递给客户端就没有压力?建议楼上再看看大一的计算机基础和CPU的指令集。英特尔的灵动CPU能不能编程是不是必须得买个上网本看看才能知道?
网易、新浪的静态化是不得已而为之,如果楼上搞过分布式+垂直式以及跨地区、跨线路的数据库系统就能明白,这已经与直接输出html或解释php无关了。当然,在CI的论坛里讨论这些问题有些无聊。
对于一般应用,我说的一般应用是web服务器和数据库服务器在一个计算机或在一个网段内,静态化与否纯粹是个人喜好。用一个或几十、几百并发量所得出的所谓测试数据,真的没意义。
发表于 2011-6-17 20:23:20 | 显示全部楼层
如果仅仅是因为降低数据库的读取次数,可以参看我前两天发的一个帖子。xml缓存数据库。
发表于 2012-1-12 11:19:25 | 显示全部楼层
先说清楚是要生成 静态HTML(静态) 还是只要 URL 中有 HTML后缀(伪静态),前者有些麻烦,后者嘛,配置一下就成。

本版积分规则