花了几天功夫,把我的博客静态化了一下。
最开始的时候想把所有的页面静态化来着,后来想通了,只把日志静态化就得了
其实通过分析代码,PJBlog的压力,主要是 article.asp?id=xxx 和default.asp 或 default.asp?cateid=xxx
也就是日志显示和首页或者分类显示的时候,而后者,文章越多,效率越低
所以我的静态化也主要是从这两个方面来做
首先是日志的静态化,
我看论坛上之前提供的一些方法,是用xmlhttp的方式来做的,这个在我的服务器上无法实现(因为服务器没有指定dns服务器)
所以还是分析了下PJblog的页面模型,使用了标记化的模板来进行处理
这个实现起来倒也方便,但是关联的回复(回复时的验证码显示,回复后更新静态页面),侧边栏,访问次数这几个倒花了不少功夫
其次是首页和分类的静态化
考虑到每次新发布文章、删除都要进行分页调整比较麻烦,所以我还是从分页的方法上进行了优化,我觉得这种方法大家可以参考
虽然不是静态化,但是基本达到了无论日志多少,基本保持分页的匀速。
现在的SQL语句是Select xx1,xx2,xx3 from table,因为取了摘要和内容字段,所以如果日志越多,取出的内容越多,对服务器的资源消耗也越大
我的思路是这样的,将分页和显示分开
首先Select log_id from xxx,只取log_id字段,这样即使有1000篇日志,取出来的数据占用的资源也是很小的
以这部分内容为分页的基础,分页的时候,取到该页面上需要显示的id,如 100,101,102,103,104
然后再从数据库中取出这几条进行显示就可以了
Select xx1,xx2,xx3 from table where log_id in(100,101,102,103,104)
这样不管怎么切,每次只取几条,这从很大程度上节约了服务器资源,当然,很明显的,这样也增加了一次数据库链接操作
因为我的博客访问量较小,一天也就70IP左右,所以压力也没那么明显,改了以后效果也不明显,呵呵
有兴趣的可以看下效果,
http://www.atdream.com,我的静态页面是跨出blog目录的
当然,还存在一些问题,不过不影响正常使用,等有时间慢慢改~~
特别说明一下,因为我的程序之前已经改动太多,包括数据库结构,已经找不到哪跟哪了,
所以也不能提供修改过的代码了,而且本来改的文件就多,估计没几位能耐心真正去改的。
相信大家看之前的戒聊提供的方案的时候也体会到了,虽然思路不同,但是改的地方一样不少
在这里提供一个思路,希望对正在做静态化的朋友有些用吧
不过通过这次修改,发现PJblog的静态化,其实也不那么复杂,呵呵,还是希望舜子能早日开发出官方版本吧
[
本帖最后由 cnbeta 于 2008-4-27 23:30 编辑 ]