趁着将新的shopex下载到笔记上的时间,赶快写下下面的文字,最近实在太忙了。
在利用读取输出缓冲区重写静态化插件遇到了以下的问题:
- php版本的问题,不同的php版本在处理register_shutdown函数的时候对缓存区的处理不一样,主要体现在4.0之前和之后,现在的php版本绝大数都在4.0之后,因此这个问题不算什么大问题;
- 另外一个问题是,如果当前用户是blog作者,那么留言本显示的将不会有用户信息输入框,这个时候的缓冲区输出的结果将是作者当前的状态,如果这个时候作者回复留言或者发表文章,写出来的缓存的评论的地方将显示的是作者的登录的状态。如果要解决这个问题:1.写缓存之间将作者的登录会话强制删除,如果这样做,作者没做一个动作就被强制退出了登录。2.修改comments.php文件,而大多数人不愿意这样做。
所以目前的解决办法是:1.寻求其他的方案防止comments记录用户状态;不改写当前cos-html-cache的办法,而且用其他方法来提高效率,目前我已经发现了一个比较优秀的库,可以更快的获取url内容。
目前的cos-html-cache影响效率的原因已经找到,注意这里的效率仅仅是后台建立html的效率,对于访客不存在效率的影响,从BH的cpu higload的记录里面可以看出来主要是数据库的查询,我代码里面存在mysql嵌套查询,并且在查询的过程中还进行了socksopen的操作从而导致mysql等待而消耗CPU。
改进方案:
- mysql单独查询,将变量保存在内存中;
- 取消mysql的嵌套查询;
- 利用成熟的class来获取html文件,取消目前的http socks open
所以目前两个选择,缓存区方式和改进方式,等有空了再做选择,稳定之后发布的版本将是2.0,另外一个数据库缓存的插件也在考虑中,基于强大的PEAR库,这个插件是给那些不想真正生成html文件而又想加快速度的朋友准备的。
该日志未加标签
希望加上直接按分类创建目录生成html的功能,现在我主要是通过sCategory Permalink这个插件实现的