优化页面的响应时间php
缘由:当访问一个网站的时候,页面加载的速度很是的慢,用户体验很差,用户流失css
解决方案:html
一、 动态页面静态化mysql
二、 优化数据库redis
三、 使用负载均衡sql
四、 使用缓存 redis和memcachemongodb
动态页面静态化数据库
若是页面不常常改动,并且用户访问量大,动态页面静态化就是一个很是有效的解决方案。 5分或者10分apache
实质:生成静态的html文件浏览器
好处:减小服务器脚本的运行时间
下降服务器的相应时间
PHP文件的执行顺序
语法解析-> 编译-> 运行
Html页面只须要直接运行
一、pv值(page views)网站浏览量:
概念:一个网站,全部的页面,在一天24小时内,被访问的总量,达到千万级别,或者几百万以上。
二、uv值(unique visitor)独立访客:
概念:一个网站,在一天24小时内,有多少个用户来访问咱们的网站。uv值几十万个,
三、独立 ip,
概念:一个网站,在一天24小时内,有多少个独立ip来访问咱们的网站。
若是要考虑公司的局域网,uv值略大于独立ip的。
一、高的并发量。
并发量:一个网站的,在同一个时间点(1秒内),有多少个用户正在请求同一个地址的网站。
二、大的流量(带宽)
带宽需求变大。
三、数据存储的问题。
当数据表里面的记录很是大,从容量来讲,达到 GT级别,要快速的查找到想要的数据。
网站的架构,采用分层设计,使用负载均衡和集群。
能够把一些css样式文件和js,一些背景图,合并成一个文件。
把一些更新不是很频繁的资源,好比css,js,图片,缓存到浏览器端,当浏览器请求同一资源时,直接从浏览器缓存里面取出。
最终目标:不查询数据库或少查询数据库,在查询数据库时,要快速的查询到数据。
(1)磁盘缓存(页面静态化技术)
(2)内存缓存
内存缓存技术:
memcache,redis,mongodb,mysql的memory存储引擎
把一个动态(操做数据库)的php页面,转换成一个静态的.html页面
实现步骤;
一个http请求,返回的数据分两部分,响应头部信息和响应主体。
(1)拿到响应主体数据内容。(ob缓冲)
(2)把响应主体数据内容,写入到html文件中,(file_put_contents)
(3)直接访问html文件。
ob缓存:output_buffering(输出缓存),用于缓存响应主体的数据内容。
如何开启:
第一种方式:在php.ini文件中,
第二种方式:在页面中使用ob_start()函数,来开启。
两种方式的区别是,ob_start()只在当前页面有效,
ob_start( );开启
ob_get_contetns();获取ob缓存里面的数据内容。
ob_clean();//清空ob缓存里面的数据,不关闭ob缓存。
ob_end_clean();//清空ob缓存里面的数据,并关闭ob缓存。
ob_flush();//把ob缓存里面的数据给刷新(移动,推送)到程序缓存,不关闭ob缓存。
ob_end_flush();//把ob缓存里面的数据给刷新(移动,推送)到程序缓存,并关闭ob缓存。
真静态:实实在在的生成一个html页面。
伪静态:从表面上看是访问的一个静态页面,实际上仍是访问的是动态页面。好比以下地址:
http://www.abc.com/news-music-id12_10.html
其实是访问:http://www.abc.com/news.php?type=music&id=12&page=10页面。
伪静态主要是利于seo的。
实现方式:
真静态实现方式:
第一种:使用ob缓存技术。
第二种:使用模板替换技术
伪静态的实现方式:使用apache的 rewrite机制(url重写机制)
哪些网站适合于真静态?
网站页面访问比较频繁的,更新不是很频繁,好比一些新闻类型的网站,不适合于要求实时更新的一些网站,好比股票类型的网站,