Home php教程 php手册 PHP页面静态化实现

PHP页面静态化实现

Jun 13, 2016 am 10:56 AM
php generally accomplish database hour now website Views conduct static page

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


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

 

姓名 地址 Email
".$userInfo['name']."".$userInfo['address']."".$userInfo['email']."
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

CakePHP Project Configuration CakePHP Project Configuration Sep 10, 2024 pm 05:25 PM

In this chapter, we will understand the Environment Variables, General Configuration, Database Configuration and Email Configuration in CakePHP.

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

CakePHP Date and Time CakePHP Date and Time Sep 10, 2024 pm 05:27 PM

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

CakePHP File upload CakePHP File upload Sep 10, 2024 pm 05:27 PM

To work on file upload we are going to use the form helper. Here, is an example for file upload.

CakePHP Routing CakePHP Routing Sep 10, 2024 pm 05:25 PM

In this chapter, we are going to learn the following topics related to routing ?

Discuss CakePHP Discuss CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

CakePHP Creating Validators CakePHP Creating Validators Sep 10, 2024 pm 05:26 PM

Validator can be created by adding the following two lines in the controller.

See all articles