河南科兴建设有限公司网站,门户网站建设投标书,4a广告公司排名,企业对企业的网站前言随着网站的内容的增多和用户访问量的增多#xff0c;网站加载会越来越慢#xff0c;受限于带宽和服务器同一时间的请求次数的限制#xff0c;#xff0c;我们往往需要在此时对我们的网站进行代码优化和服务器配置的优化。一、页面静态化概念静态化定义静态化就是指把原…前言随着网站的内容的增多和用户访问量的增多网站加载会越来越慢受限于带宽和服务器同一时间的请求次数的限制我们往往需要在此时对我们的网站进行代码优化和服务器配置的优化。一、页面静态化概念静态化定义静态化就是指把原本的动态生成的 html 页面变成静态内容保存起来当用户客户端请求的时候直接返回静态页面不用再经过服务渲染不用查询数据库可以大大减少服务器和数据库压力显著提升网站性能。静态页面最早的时候网站内容是通过在主机空间中放置大量的静态网页实现的。为了方便对这些分散在不同目录的静态网页的管理一般是通过FTP像frontpage/dreamweaver这样软件甚至直接提供了向主页空间以FTP方式直接访问文件的功能。以静态网页为主的网站最大的困难在于对网页的管理在这种框架里网页框架和网页中的内容混杂在一起很大程度地加大了内容管理的难度。为了减轻这种管理的成本发展出了一系列的技术在笔者的理解中甚至连css本身原本也是针对这种乱七八糟的网页维护而设计的目的就是把网页表达的框架和内容本身抽象分离出来。动态页面动态页面是通过执行asp,php,jsp,.net等程序生成客户端网页代码的网页。 动态页面通常可以通过网站后台管理系统对网站的内容进行更新管理。发布新闻发布公司产品交流互动博客网上调查等这都是动态网站的一些功能。也是我们常见的。 动态页面常见的扩展名有.asp .php .jsp .cgi.aspx 等。 注意动态页面的“动态”是网站与客户端用户互动的意思而非网页上有动画的就是动态页面。静态化分类从形式看纯静态和伪静态从范围看整体静态化和局部静态静态化优点和缺点优点适合 SEO有利于搜索引擎收录提升网站速度和稳定性网站更加安全HTML 页面避免 PHP 相关漏洞缺点生成静态页面多占用更多的存储空间增加网站开发成本和维护成本二、静态化实现认识 PHP Buffer在php中buffer其实就是缓冲区一个内存地址空间主要用于存储数据默认是开启状态大小默认4096在php.ini文件中由output_buffering配置只有当缓冲区满了或者 php 运行完毕才将数据输出去。php.ini 代码示例output_buffering on
#打开output缓冲默认打开的。缓冲流程# 详细了解输出过程大家可以自行查阅
1.打开了 php 输出缓存: echo,print - php output_buffring - server buffering - browser buffering - browser display
2.未打开 php 输出缓存: echo,print - server buffering - browser buffering - browser display原生PHP输出创建 index.php 文件本地配置虚拟域名www.test.vip。代码如下示例!DOCTYPE html
html lang
headmeta charsetutf-8title网页静态化/title
/head
body
h1排名/h1
ul?php for ($i 1; $i 5; $i) { ?liNo.?php echo $i; ?/li?php } ?
/ul
?php ?
/body
/html请求如下www.test.vip/index.php使用PHP文件读写功能生成静态页面代码如下示例?php
$data !DOCTYPE html
html lang
headmeta charsetutf-8title网页静态化/title
/head
body
h1排名/h1
ulliNo.1/liliNo.2/liliNo.3/liliNo.4/liliNo.5/li
/ul
/body
/html;$fp fopen(index.html, w);
if (!$fp) {echo System Error;exit();
}
fwrite($fp, $data);
fclose($fp);
echo 生成 index.html 成功;其中$data数据是解析好的前端代码若包含 PHP 原生代码是无法解析的那如何把动态的 PHP 语言静态化PHP OB 缓存机制生成静态页面代码如下示例?php
ob_start();
require_once(index.php); // 引入模版文件
$data ob_get_contents();
file_put_contents(index.html, $data); // 生成静态文件 index.html
ob_end_clean(); // 输出信息并清除缓存$fp fopen(index.html, w);
if (!$fp) {echo System Error;exit();
}fwrite($fp, $data);
fclose($fp);
echo 生成 index.html 成功;三、伪静态实现其他ob_start() // 打开输出控制缓冲,若 php.ini 已经开启那么这里会开启一个新的输出缓冲区;
ob_get_length() // 返回输出缓冲区的长度
ob_get_level() // 返回输出缓冲区的嵌套级别
ob_get_status() // 返回输出缓冲区的状态数组形式返回默认返回最顶层参数为true时返回所有
ob_get_contents() // 返回输出缓冲区的内容
ob_get_clean() // 以字符串格式返回当前输出缓冲区并关闭输出缓冲,等价于ob_get_contents和ob_end_clean);
ob_end_clean() // 清空擦除缓冲区并关闭输出缓冲
ob_get_flush() // 以字符串返回输出缓冲区内容并关闭缓冲
ob_end_flush() // 冲刷出送出输出缓冲区内容缓冲并关闭输出缓冲