英文版网站建设方案,wordpress子目录无法访问后台,建设一个网站费用,成都网站seo收费标准一、什么是动态语言静态化
将现有PHP等动态语言的逻辑代码生成为静态html文件,用户访问动态脚本重定向到静态html的过程
注 : 对实时性要求不高的页面才适合去做动态语言静态化 二、为什么要静态化
1. 动态脚本通常会做逻辑计算和数据查询,访问量越大,服务器压力越大
2. 访…一、什么是动态语言静态化
将现有PHP等动态语言的逻辑代码生成为静态html文件,用户访问动态脚本重定向到静态html的过程
注 : 对实时性要求不高的页面才适合去做动态语言静态化 二、为什么要静态化
1. 动态脚本通常会做逻辑计算和数据查询,访问量越大,服务器压力越大
2. 访问量大时可能会造成CPU负载过高,数据库服务器压力过大
3. 静态化可以降低逻辑处理压力,降低数据库服务器查询压力 三、静态化的实现方式
第一种:使用模板引擎
( 1 ) 可以使用smarty的缓存机制生成静态html缓存文件
$smarty-cache_dir $ROOT./cache; //缓存目录
$smarty-caching true;//是否开启缓存
$smarty-cache_lifetime 3600;//缓存时间
$smarty-display(string template [, string cache_id [,string compile_id]]);
备注:cache_id 缓存id; compile_id 编译文件id
(2) 清除smarty缓存
$smarty-clear_all_cache();//清除所有缓存
$smarty-clear_cache(file.html); //清除指定的缓存
$smarty-clear_cache(article.html,$art_id); //清除该模板下的指定缓存号的缓存 第二种: 利用ob系列的函数做静态化缓存 (推荐)
(1) 相关函数
ob_start();//打开输出控制缓冲
ob_get_contents();//返回输出缓冲区内容
ob_clean();//清空输出缓冲区
ob_end_flush();//冲刷出(送出)输出缓冲区内容并关闭缓冲
(2) 示例:
?php
$cache_name md5(__FILE__)..html;//定义之后生成缓存文件的文件名$cache_lifetime 3600;//定义过期时间为1小时//限制条件,条件符合,就加载缓存文件
if(filemtime(__FILE__) filemtime($cache_name) file_exists($cache_name) filectime($cache_name) $cache_lifetime time())
{include $cache_name;//如果在缓存之后没有进行过修改,并且文件存在,并且没有过期,我们就加载文件,并且下面内容不再访问var_dump(filemtime());//测试时用的,看修改文件时,是否还能够读取缓存文件exit;
}ob_start(); //开启缓存?这部分是我们要缓存的内容?php$content ob_get_contents(); //获取缓存区的内容ob_end_flush();//关闭缓存区$handle fopen($cache_name,w);//将文件以写的方式打开fwrite($handle,$content);//将我们获取到的缓存内容$content写入我们定义好的缓存文件fclose($handle); //关闭打开的文件资源?现在访问浏览器 与此同时,还生成了一个缓存文件,内容和从php文件中获取到的是一样的 现在,我们没有修改文件,再刷新浏览器,会出现我们在if语句中输出的filemtime,这证明if满足,已经在读取缓存文件了 现在,我们再修改一下文件,在文字后面加了一个,如果浏览器显示这个,并且不输出文件的修改时间,就证明读取的不是缓存文件 浏览器显示: 浏览器显示结果带 , 证明文件修改之后,就重新读取文件,然后再刷新 结果证明: 因为文件没有再被修改,所以又读取缓存文件了 代码源码下载: http://download.csdn.net/download/m_nanle_xiaobudiu/10242029