转:php页面静态化之真静态
2013-12-10 17:37
302 查看
之前的缓存和现在所说的页面静态化都是为网站提速的,如果是访问量小的小型网站可能不需要但是如果网站规模或访问量很大,那么页面静态化和缓存就会体现出各自的价值了下面先来了解下页面静态化的分类
页面静态化的分类:
1,按照形式:
1)真静态
2)伪静态
2,按照范围:
1)局部静态话(jquery,ajax)
2)全部静态化
页面静态化可以为网站提速还能进行seo优化,因为搜索引擎偏向抓取静态页面,针对不同的搜索引擎seo的标准可能不同。下面提供一个百度搜索引擎优化的链接
http://baiduseoguide.com/
这次给大家分享的是页面真静态技术,本次将以一个简单的新闻管理系统为例子介绍真静态技术的使用,项目使用mvc架构来弄
一.真静态的理解
真静态就是把我们先前访问的jsp,php,aspx变为html,保留先前的页面效果和业务逻辑,减轻服务器的压力、让网站被良好的收录。但是真静态也有缺点那就是过多的静态页面占用了服务器空间,维护不是很方便。
二 开始静态化新闻管理系统
1.通过列表页面以最快速度查看单条数据的详细信息(如通过新闻列表查看某一条新闻的详细内容)
如果没有静态化的前提下,我们的做法可能是通过点击列表页面的标题传一个ID过去,之后查询出单条数据之后显示在一个页面上,这样我们每次点击链接都会去访问一次数据库,这样服务器的压力必然变大,可取的做法是每次添加数据都生成对应的详细页面
(1)简单的后台管理页面
[html] view plaincopy
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>后台管理</title>
</head>
<body>
<h3><a href="addNews.php">添加新闻</a></h3>
<h3><a href="../controller/NewsAction.php?opper=updatecache">更新列表页</a></h3>
</body>
</html>
(2)添加新闻的操作
[php] view plaincopy
if("add"==$opper){
$news=new NewsManagerImpl();
$title=$_POST["title"];
$content=$_POST["content"];
$result=$news->addNews($title, $content);
if($result>0){
//生成静态html(用于查询单条数据)
$fp=fopen("../static/news-id-".$result.".html", "w");
$ftpl=fopen("../tpl/newsDetail.tpl", "r");
while(!feof($ftpl)){
$row=fgets($ftpl);
//替换相应的位置
$row=str_replace("{title}", $title, $row);
$row=str_replace("{content}", $content, $row);
fwrite($fp, $row);
}
fclose($ftpl);
fclose($fp);
header("Location:../manage/success.html");
}
exit();
}
下面来看看newsDetail.tpl这个模板文件
[html] view plaincopy
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>新闻列表</title>
<style type="text/css">
*{
font-size:12px;
}
</style>
</head>
<body>
<br></br>
<table width="725" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse" bordercolor="#6699CC" >
<tr bgcolor="#6699cc">
<th scope="col">新闻标题</th>
<th scope="col">新闻内容</th>
</tr>
<tr align='center' height='25px'>
<td scope="col">{title}</td>
<td scope="col">{content}</td>
</tr>
</table>
</body>
</html>
2.静态化列表页
这一部分的工作其实很简单,就看你能不能想的上去,像修改、删除我们可以按照原来的做法,该怎么弄就怎么弄,只需要定期更新静态化后的列表页就可以了,更新的频率按照自身需要即可。
下面是我的做法:
[php] view plaincopy
if("updatecache"==$opper){
$rowInfo="";
$listInfo="";
$news=new NewsManagerImpl();
$all=$news->getAllNews();
for ($i = 0; $i < count($all); $i++) {
$row=$all[$i];
//拼接列表信息
$listInfo.="<tr align='center' height='25px'>";
$listInfo.="<td>{$row['id']}</td>";
$listInfo.="<td>{$row['title']}</td>";
$listInfo.="<td><a href='../static/news-id-{$row['id']}.html'>查看</a></td>";
//$listInfo.="<td><a href='../controller/NewsAction.php?opper=delete&id={$row['id']}'>删除</a></td>";
//$listInfo.="<td><a href='../controller/NewsAction.php?opper=toupdatepage&id={$row['id']}'>修改</a></td>";
$listInfo.= "</tr>";
}
//列表页静态化
$listTpl=fopen("../tpl/newsList.tpl", "r");
while(!feof($listTpl)){
$rowInfo.=fgets($listTpl);
}
$all=str_replace("{newsContent}", $listInfo , $rowInfo);
$staticListFp=fopen("../static/newsList.html", "w");
fwrite($staticListFp, $all);
fclose($listTpl);
fclose($staticListFp);
header("Location:../manage/success.html");
}
是不是就只是一个重新读一下数据的简单操作呢,最后给大家拉几个效果图省的说我在这瞎写
后台的话一般不用考虑静态化,因为后台是给自己看的,只要性能不是很差静态化意义不大。
原文来自于:/article/2263593.html
页面静态化的分类:
1,按照形式:
1)真静态
2)伪静态
2,按照范围:
1)局部静态话(jquery,ajax)
2)全部静态化
页面静态化可以为网站提速还能进行seo优化,因为搜索引擎偏向抓取静态页面,针对不同的搜索引擎seo的标准可能不同。下面提供一个百度搜索引擎优化的链接
http://baiduseoguide.com/
这次给大家分享的是页面真静态技术,本次将以一个简单的新闻管理系统为例子介绍真静态技术的使用,项目使用mvc架构来弄
一.真静态的理解
真静态就是把我们先前访问的jsp,php,aspx变为html,保留先前的页面效果和业务逻辑,减轻服务器的压力、让网站被良好的收录。但是真静态也有缺点那就是过多的静态页面占用了服务器空间,维护不是很方便。
二 开始静态化新闻管理系统
1.通过列表页面以最快速度查看单条数据的详细信息(如通过新闻列表查看某一条新闻的详细内容)
如果没有静态化的前提下,我们的做法可能是通过点击列表页面的标题传一个ID过去,之后查询出单条数据之后显示在一个页面上,这样我们每次点击链接都会去访问一次数据库,这样服务器的压力必然变大,可取的做法是每次添加数据都生成对应的详细页面
(1)简单的后台管理页面
[html] view plaincopy
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>后台管理</title>
</head>
<body>
<h3><a href="addNews.php">添加新闻</a></h3>
<h3><a href="../controller/NewsAction.php?opper=updatecache">更新列表页</a></h3>
</body>
</html>
(2)添加新闻的操作
[php] view plaincopy
if("add"==$opper){
$news=new NewsManagerImpl();
$title=$_POST["title"];
$content=$_POST["content"];
$result=$news->addNews($title, $content);
if($result>0){
//生成静态html(用于查询单条数据)
$fp=fopen("../static/news-id-".$result.".html", "w");
$ftpl=fopen("../tpl/newsDetail.tpl", "r");
while(!feof($ftpl)){
$row=fgets($ftpl);
//替换相应的位置
$row=str_replace("{title}", $title, $row);
$row=str_replace("{content}", $content, $row);
fwrite($fp, $row);
}
fclose($ftpl);
fclose($fp);
header("Location:../manage/success.html");
}
exit();
}
下面来看看newsDetail.tpl这个模板文件
[html] view plaincopy
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>新闻列表</title>
<style type="text/css">
*{
font-size:12px;
}
</style>
</head>
<body>
<br></br>
<table width="725" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse" bordercolor="#6699CC" >
<tr bgcolor="#6699cc">
<th scope="col">新闻标题</th>
<th scope="col">新闻内容</th>
</tr>
<tr align='center' height='25px'>
<td scope="col">{title}</td>
<td scope="col">{content}</td>
</tr>
</table>
</body>
</html>
2.静态化列表页
这一部分的工作其实很简单,就看你能不能想的上去,像修改、删除我们可以按照原来的做法,该怎么弄就怎么弄,只需要定期更新静态化后的列表页就可以了,更新的频率按照自身需要即可。
下面是我的做法:
[php] view plaincopy
if("updatecache"==$opper){
$rowInfo="";
$listInfo="";
$news=new NewsManagerImpl();
$all=$news->getAllNews();
for ($i = 0; $i < count($all); $i++) {
$row=$all[$i];
//拼接列表信息
$listInfo.="<tr align='center' height='25px'>";
$listInfo.="<td>{$row['id']}</td>";
$listInfo.="<td>{$row['title']}</td>";
$listInfo.="<td><a href='../static/news-id-{$row['id']}.html'>查看</a></td>";
//$listInfo.="<td><a href='../controller/NewsAction.php?opper=delete&id={$row['id']}'>删除</a></td>";
//$listInfo.="<td><a href='../controller/NewsAction.php?opper=toupdatepage&id={$row['id']}'>修改</a></td>";
$listInfo.= "</tr>";
}
//列表页静态化
$listTpl=fopen("../tpl/newsList.tpl", "r");
while(!feof($listTpl)){
$rowInfo.=fgets($listTpl);
}
$all=str_replace("{newsContent}", $listInfo , $rowInfo);
$staticListFp=fopen("../static/newsList.html", "w");
fwrite($staticListFp, $all);
fclose($listTpl);
fclose($staticListFp);
header("Location:../manage/success.html");
}
是不是就只是一个重新读一下数据的简单操作呢,最后给大家拉几个效果图省的说我在这瞎写
后台的话一般不用考虑静态化,因为后台是给自己看的,只要性能不是很差静态化意义不大。
原文来自于:/article/2263593.html
相关文章推荐
- php页面静态化之真静态
- 使PHP页面静态化技术,php动态页面转html静态页面
- php页面静态化—动态页面和静态页面
- 使PHP页面静态化技术,php动态页面转html静态页面
- php页面静态化【真静态】
- php实现页面静态化(纯静态&&伪静态)
- [PHP]PHP页面静态化:真静态的两种方案
- php页面静态化
- 详解php实现页面静态化原理
- 静态资源压缩以及页面静态化
- PHP实现页面静态化(简单版)
- PHP静态化技术之真静态
- PHP的页面静态化简介
- php生成静态html页面的简单实现
- php页面静态化笔记
- php页面静态化技术;学习笔记
- php 页面静态化
- php动态网页实现页面静态化 通过在初次被访问时生成html文件保存起来,下次该PHP程序被访问时就直接找到以前被访问过的html页面
- PHP生成HTML静态页面实例代码
- 传智陈力 PHP培训.第二版PHP视频教程.陈力.大型门户网站核心技术-页面静态化.页面静态化教程简介