优化页面响应时间的方法:
动态页面静态化 (实质是生成静态html文件)
优化数据库
使用负载均衡
使用缓存
执行php文件的过程:语法分析,编译运行
执行html文件:直接运行
打开phpbuffer的方法:1.可以再php.ini里面打开output_buffering或者使用ob_start()。
生成静态页面主要用的两个函数
file_put_contents
ob_get_clean()
先将数据库内容获取到,然后引入模板,填充模板 ,生成静态文件
引入模板的require函数同样会触发buffer(类似于echo)
如何出发系统生成纯静态化页面
1.页面添加缓存时间(过期问题)
if(is_file('./index.shtml')&&(time()-filemtime('./index.shtml'))<300){
require_once('./index.shtml');
}else{
//重新生成一份静态页面
ob_start();
//引入模板文件
require_once('./templates/singwa.php');
//这里不能使用ob_get_clean()否则信息不回呈现出来了
file_put_contents('index.shtml',ob_get_contents());
}
2.手动触发方式:后台增加开始更新(手动触发的机制)
3.crontab定时扫描程序(crontab是linux的定时执行命令)
* * * * * command
分 时 日 月 周 命令
*/5**** php/data/static/index.php #每五分钟执行一次
局部动态化的实现 (。。醉了,写完没有保存,又要重写)
使用ajax实现(ajax客户端程序要写在singwa.php中)
$.ajax({
url:'http://state.com/api/ajax.php',
type:'get',
dataType:'json',
error:function(){},
success:function(result){
if(result.code==1){
var html='';
$.each(result.data,function(key,value)){
html+='<li><a href="/">'+value.title+'</a></li>';
});
$('#hot_html').html(html);
}
},
});
联表查询–ajax.php
$sql="select * from table1 as a join table2 as b on a.news_id=b.id order by a.count desc limit 3";
$result=mysql_query($sql,$connect);
/*
mysql_fetch_array() 是 mysql_fetch_row() 的扩展版本。除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。关联数组和数字数组的差别在于键名是数字还是有意义的键名
*/
while($row=mysql_fetch_assoc($result)){
$res[]=$row;
}
function show($code=0,$message="error",$data=array()){
$result=array(
'code'=>$code,
'message'=>$message,
'data'=>$data
)
echo json_encode($reesult);
}
return show(1,'success',$res);
伪静态–动态url地址转化为静态的url地址
1.通过$_SERVER[PATH_INFO]实现(nginx服务器默认不支持path_info要配置)
正则表达式分析url地址
/*
http://state.com/newsList.php?type=2&category_id=1
http://state.com/newsList.php/2/1.html
*/
if(preg_match('/^\/(\d+)\/(\d+).html/',$_SEVER[PATH_INFO],$arr)){
$type=$arr[1];
$category=$arr[2];
//去数据库查询,放入模板
}else{
//TODO跳404.或者返回首页
}
2.配置服务器的rewrite直接生成伪静态
apache:
1.虚拟域名配置
httpd.conf文件中开启相关模式
LoadModule rewrite_module modules/mod_rewrite.so
Include conf/extra/httpd-vhosts.conf
在httpd_vhosts.conf修改虚拟域名
修改本地hosts文件(里面是绑定的一些域名)(window8修改竟然没有权限)
2.伪静态配置
rewriteEngine
在httpd_vhosts.conf中做一些配置
看完一个视频,把重点总结到博客里面能记下很多东西。还是要坚持写博客