首页 > 代码库 > 页面静态化

页面静态化

影响网站访问速度:带宽/数据库


连接池,php中没有连接池概念


1.页面静态化,核心即把动态网页转为静态网页,从而减少对数据库操作的次数。

2.缓存技术(memcached)

3.服务器集群(a.硬件 b.软件架构)

4.数据库优化(a.表结构(符合3NF)b.添加适当索引(1.1主键索引 1.2普通索引 1.3唯一索引 1.4全文索引(使用技术:sphinx))c.读写分离 d.分表(垂直分割/水平分割))


页面静态化技术

几个重要的概念

1、静态网址

举例:http://localhost/test.html

访问页面是静态页面时,输入的url就是一个静态网址

好处:利于seo搜索引擎优化;防止sql注入攻击;不操作数据库,所以效率高

2、动态网址

举例:http://localhost/test.php?age=90

特点:可以接受用户的数据

http://localhost/news.php?lang=cn&class=1&id=2

动态网址,不利于SEO,因为搜索引擎认为,动态网页的内容一般都会和数据库相关,搜索引擎放弃抓取。

3、伪静态网址

为了利于SEO,同时为了防止注入攻击,往往会把动态网站改写成静态网址,称之为伪静态

举例:http://localhost/news.php?lang=cn&class=1&id=2 => http://localhost/news-cn-sport-id2.html 

(这个网址就是伪静态),但伪静态不是真正的静态页面,只是形式上的,访问它,仍然会访问数据库。



页面静态化的分类

1. 从形式上分为 真静态和伪静态

2. 从范围看: 整体静态化,和局部静态


一个结论:网站能支撑的在线人数大致是支撑并发人数的10倍左右


怎样的Html文件,会符号 SEO 的喜好

1.url不要超过255

2.静态页面不要带参数,造成重复抓取

3.meta数据尽量完善

<meta name=keywords  content=关键字 />

<meta name=description content=页面的简单介绍/>

4.<img src=http://www.mamicode.com/小明.png alt=小明/> 

5. 页面不在建议使用 框架 frame/frameset/iframe 不建议在前端页面使用 

页面静态化有两种 1. 真静态 2. 伪静态

真静态有两种方法

  1. 使用PHP中的ob缓存机制来实现页面静态化

  2. 使用模板技术来实现页面静态化


OB缓存是什么?怎么用?

1. 快速入门 

注意PHP5.3 这个版本,ob默认是打开的.

PHP5.2 这会报告waring

我们可以通过 php.ini 中可以配置是否启用 ob


初步的认识:

我们可以认为,在apache的服务器端,有两个缓存,ob缓存(程序员自己可以控制),程序缓存(这个一定存在)

当有一段代码<?php echo "abc";?>如果有echo,当启用ob缓存,echo的数据优先放进ob缓存,没有,则直接放进程序缓存。

如果只有程序缓存,要注意,http协议规定,header前不能有echo语句,即不能有任何输出


ob的相关函数.

 

 

说明的代码:

ob3.php

<?php

 

 

//这里我们可以再找个页面把ob缓存打开

//开启ob缓存

ob_start();

echo "hello,wrold!";

header("content-type: text/html;charset=utf-8");

 

echo "你好!";

 

//ob内容缓存清空,但是ob缓存还在

//ob_clean();

//ob内容缓存清空,同时关闭ob缓存

//ob_end_clean();

//ob缓存的内容,刷新到程序缓存,同时关闭ob缓存

//ob_end_flush();

//ob缓存的内容,刷新到程序缓存,不关闭ob缓存

ob_flush();


echo "笑傲江湖";

 

//获取ob缓存内容

$con=ob_get_contents();

 

//需要把日志,写入文件. echo print_r var_dump ,写文件 ,下断点.

file_put_contents("d://hsp.log",$con);


 

现在我们再说最后一个函数 flush()

该函数是把 程序缓存的内容,强制刷新到 浏览器

这里有一个知识点:

当我们请求一个PHP页面时,该页面会发出几次请求,和各部分的代码在哪里

 






页面静态化