欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

PHP页面静态化实现

程序员文章站 2024-01-18 18:09:46
...
现在的网站一般都需要与数据库进行打交道,访问量较大时会对数据库造成很大的压力。将一些动态页面执行的结果进行缓存,当下次进行访问时,直接访问缓存可以减少对数据库的压力。同时也可以加快服务器的响应速度。缓存的结果可以存放到外存上,也可以存在内存中。在下一次访问该页面时直接从外存(内存)中直接读取上次的结果。


[php]

//首先查看缓存文件
if(file_exists("static.html")){
//缓存时间为3分钟
if(time()-filemtime("static.html") //将静态文件内容返回给客户端
$start_time = microtime();
echo "我是从静态文件中读取的数据:"."
";
echo file_get_contents("static.html");
$end_time = microtime();
echo "静态文件使用时间:".($end_time-$start_time);
exit;
}
}
//如果是首次访问,或者是上次缓存的时间超过3分钟,则从数据库中读取数据
$host = "127.0.0.1";
$user = "root";
$password = "123456";
//记录开始时间
$start_time = microtime();
mysql_connect($host,$user,$password);
mysql_select_db("mydb");
mysql_query("set names utf8");

$sql = "SELECT name,address,email FROM users";
$resource = mysql_query($sql);
echo "我是从数据库中读取的数据:
";
ob_start();//打开输出缓冲
echo "

";
//输出取得的信息
while($userInfo = mysql_fetch_assoc($resource)){
echo "";
echo "";
echo "";
echo "";
echo "";
}
$end_time=microtime();
$str=ob_get_contents();//获取缓冲区的内容
ob_end_flush();
echo "从数据库读数据的时间:".($end_time-$start_time);
file_put_contents("static.html",$str);
?>


//首先查看缓存文件
if(file_exists("static.html")){
//缓存时间为3分钟
if(time()-filemtime("static.html") //将静态文件内容返回给客户端
$start_time = microtime();
echo "我是从静态文件中读取的数据:"."
";
echo file_get_contents("static.html");
$end_time = microtime();
echo "静态文件使用时间:".($end_time-$start_time);
exit;
}
}
//如果是首次访问,或者是上次缓存的时间超过3分钟,则从数据库中读取数据
$host = "127.0.0.1";
$user = "root";
$password = "123456";
//记录开始时间
$start_time = microtime();
mysql_connect($host,$user,$password);
mysql_select_db("mydb");
mysql_query("set names utf8");

$sql = "SELECT name,address,email FROM users";
$resource = mysql_query($sql);
echo "我是从数据库中读取的数据:
";
ob_start();//打开输出缓冲
echo "

姓名 地址 Email
".$userInfo['name']."".$userInfo['address']."".$userInfo['email']."
";
//输出取得的信息
while($userInfo = mysql_fetch_assoc($resource)){
echo "";
echo "";
echo "";
echo "";
echo "";
}
$end_time=microtime();
$str=ob_get_contents();//获取缓冲区的内容
ob_end_flush();
echo "从数据库读数据的时间:".($end_time-$start_time);
file_put_contents("static.html",$str);
?>
users表中有三条记录,使用的是apache服务。测试结果如下:

从数据库中读数据其平均执行时间为:0.0008041s左右

直接读缓存文件期平均执行时间为:0.0000475

数据库中的记录只有三条,SQL也是简单的单表查询,当表的中记录很多时,或者是多表查询其执行的时间将会更长。缓存虽然能够减少访问数据库的次数,加速响应时间,但缓存并不适合所有的页面。有些页面可能每次访问时其页面的显示的内容就会发生变化,这样的页面显然不能使用缓存。对于那些变化很少的页面才比较适合使用缓存。

PHP页面静态化实现

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • PHP页面静态化实现
  • 专题推荐

    作者信息
    PHP页面静态化实现

    认证0级讲师

    推荐视频教程
  • PHP页面静态化实现javascript初级视频教程
  • PHP页面静态化实现jquery 基础视频教程
  • 视频教程分类
    姓名 地址 Email
    ".$userInfo['name']."".$userInfo['address']."".$userInfo['email']."