高效的PHP静态文件生成思路,求指点
当我们在创作一个产品的时候,我们对用户去如何排列标签来构建模板是不可预期的,可能这样,可能那样,单纯的生成编译文件然后使用ob_start缓冲输出实在不属于一种明智的做法,在我看来,存在以下俩个弊端:
1、将整个网页缓冲输出意味着要进行整个网页的内容输出存储
2、每个页面的数据库查询都会浪费资源,尽管数据库有缓存(虚拟主机环境呢,缓存可不够)
3、为了内容保险,每次只能生成一个页面(欧阳在做人才网就是这样做的)
既然存在弊端,那么缓冲输出未必是一个好的办法,也许上面的方法可能是最省事的。。。但是对于产品来说,显然是大大的麻烦,最大的原因,就是使用者的水平不可预期,如果生成过慢,我想,使用者可能会投奔他处,这个时候,一个急速生成静态网页的方法就显得尤为重要了。
一个网页的内容页,除外一篇文章的标题、文章内容与其它的网页不同以外,其余全部都是相同的,这个时候,替换就出现在我的脑中,为什么我不将除外这些auto内容以外的东西将静态化呢。然后只是对auto内容进行一个替换即可,这样每次生成内容数据库连接次数和查询次数都可以最小化,我设置可以将这次要生成的一百条数据的数据先全部读取出来。
从模板到最终,我设定四层缓存:
第一层:将所有的标签循环解析出来的编译文件根据循环单独保存
第二层:将原来的标签循环替换为<cache>识别码</cache>后保存
第三层:将单独的编译全部都生成一遍实际的静态内容(不包括随页面而动的编译部分)
第四层:将非auto内容直接用静态内容替换掉,使之保存为最大化编译状态
当使用者生成静态的时候,根据cache识别码获取到编译内容生成静态内容直接替换,这样静态文件就可以生成了
当使用者使用动态模式的时候,直接读取最大化编译状态,然后将auto编译替换进去显示即可
这里问题来了,缓存更新问题,所以我又想了一下,可不可以cache保存到一个文件里面,不要第四层了,展示内容就像堆积木一样,更新缓存只要把那块删除就可以或者替换新的内容进去,以实现局部更新或全部更新
求教
1、将整个网页缓冲输出意味着要进行整个网页的内容输出存储
2、每个页面的数据库查询都会浪费资源,尽管数据库有缓存(虚拟主机环境呢,缓存可不够)
3、为了内容保险,每次只能生成一个页面(欧阳在做人才网就是这样做的)
既然存在弊端,那么缓冲输出未必是一个好的办法,也许上面的方法可能是最省事的。。。但是对于产品来说,显然是大大的麻烦,最大的原因,就是使用者的水平不可预期,如果生成过慢,我想,使用者可能会投奔他处,这个时候,一个急速生成静态网页的方法就显得尤为重要了。
一个网页的内容页,除外一篇文章的标题、文章内容与其它的网页不同以外,其余全部都是相同的,这个时候,替换就出现在我的脑中,为什么我不将除外这些auto内容以外的东西将静态化呢。然后只是对auto内容进行一个替换即可,这样每次生成内容数据库连接次数和查询次数都可以最小化,我设置可以将这次要生成的一百条数据的数据先全部读取出来。
从模板到最终,我设定四层缓存:
第一层:将所有的标签循环解析出来的编译文件根据循环单独保存
第二层:将原来的标签循环替换为<cache>识别码</cache>后保存
第三层:将单独的编译全部都生成一遍实际的静态内容(不包括随页面而动的编译部分)
第四层:将非auto内容直接用静态内容替换掉,使之保存为最大化编译状态
当使用者生成静态的时候,根据cache识别码获取到编译内容生成静态内容直接替换,这样静态文件就可以生成了
当使用者使用动态模式的时候,直接读取最大化编译状态,然后将auto编译替换进去显示即可
这里问题来了,缓存更新问题,所以我又想了一下,可不可以cache保存到一个文件里面,不要第四层了,展示内容就像堆积木一样,更新缓存只要把那块删除就可以或者替换新的内容进去,以实现局部更新或全部更新
求教
...全文
相关推荐
php 生成静态文件
用于生成静态的html、静态缓存文件的类,下载下来直接可以运行,我现在用的是生成缓存,会自动根据url的不同或者参数的不同生成的缓存文件,希望这个小程序能给大家带来方便。。。
php生成静态文件 php生成html文件
php生成静态文件 php生成html文件 使用ob技术
PHP静态文件生成类库
简介: PHP静态文件生成类
php生成静态文件的多种方法分享
第一种:将php动态页面内容生成静态复制代码 代码如下: ob_start();#开启服务器缓存 include_once ‘Index.php’; $ctx=ob_get_contents();#获取缓存 ob_end_clean();#清空缓存 $fh=fopen(“index.html”,”w+”); fwrite($fh,$ctx);#写入html,生成html fclose($fh); /* 1、Flush:刷新缓冲区的内容,输出。 函数格式:flush() 说明:这个函数经常使用,效率很高。 2、ob_start :打开输出缓冲区 函数格式:void ob_start(void)
php静态文件生成类实例
PHP静态文件生成类,以实例形式演示了PHP生成静态文件的方法,并封装成类文件便于使用,是非常实用的技巧


基础编程
