-
-
很多大型网站,进去的时候看它很复杂的页面,但是加载也没有耗费多长时间,除了其它必要原因以外,我认为静态化也是其中必需考虑的技术之一。她先于用户获取资源或数据库数据进而通过静态化处理,生成静态页面,所有人都访问这一个静态页面,而静态化处理的页面本身的访问速度要较动态页面快很多倍,因此程序性能会有大大的提升。
静态化在页面上的体现为:访问速度加快,用户体验性明显提升;在后台体现为:访问脱离数据库,减轻了数据库访问压力。 PHP实现页面静态化的原理:如果静态文件不存在或者当前时间减去文件的最后修改时间大于缓存时间,数据从数据库中读取,然后在将数据生成静态文件,否则直接读取静态文件中的内容。 详细代码如下:- <?php
- $cacheTime = 600;
- $cacheDir = './html';
- if (is_dir($cacheDir)) mkdir($cacheDir);
- $cacheFile = $cacheDir.'/'.(int)$_GET['id'].'.html';
- if (!is_file($cacheFile) || time() - filemtime($cacheFile) > $cacheTime) {
- $conn = mysql_connect('localhost', 'root', 'root');
- mysql_select_db('yunps', $conn);
- mysql_query('SET NAMES gb2312');
- $sql = 'SELECT * FROM yu_article WHERE id = '.(int)$_GET['id'];
- $resourse = mysql_query($sql);
- $result = mysql_fetch_assoc($resourse);
- //这里只是简要生成输出,复杂点的可以将 ob 函数和 include 结合使用
- $content = '<html><head><title>'.$result['title'].'</title></head><body>'.$result['content'].'</body></html>';
- file_put_contents($cacheFile, $content, LOCK_EX);
- } else {
- $content = file_get_contents($cacheFile);
- }
- echo $content;
- ?>
-