网站优化—页面静态化技术

数据库检索的问题

主要是为了减少数据库的操作,让MySQL能够提供更强大的服务

?

  1. 使用缓存技术

    1. 磁盘缓存:就是将用户请求数据库的数据,保存到磁盘文件形成一个静态的HTML文本,下次用户的访问的时候,直接返回该HTML文本。
    2. 内存缓存:将MySQL的数据取出之后,保存到内存(memcache,不算一个NOSQL数据库,但是是一个缓存系统)之中,下次直接从内存中返回。(效率非常高)

    注意:只要不使用sql语句作为查询条件的数据库(仓库)就叫做NOSQL数据库

  2. 优化MySQL

    1. 设计:存储引擎的选择,字段类型
    2. 自身:索引 和 自身的缓存
    3. 架构:读写分离技术
    4. 经验:分析小案例

    页面静态化技术

    将动态请求的数据保存为静态的HTML文本,供访问用户下次直接返回。

    ?

    静态化技术分类:

    形式上:

  3. 真静态:将数据真正的缓存为静态的HTML文本,在效率上有很大的优势。
  4. 伪静态:是将动态的URL地址转换为静态的URL地址(.html),主要是为了SEO(搜索引擎对收录静态的网站非常的友好),还有一个好处就是放sql注入。只是在形式上更加的利于SEO。

    ?

    范围上分类:

  5. 全站静态化:将所有的数据全部保存为静态的HTML文本。
  6. 局部动态:如果全站静态化之后,无法解决登录的问题(更改用户名登录),一般都是使用ajax来完成。

    ?

    简单对比测试:

    动态访问:

    静态的访问:

    通过对比:发现静态的请求明显要优于动态的请求。所有完成有必要进行页面静态化技术。

    ?

    ?

    使用的技术

    完成页面静态化技术主要使用php提供的ob缓存来实现这个技术。ob(output_buffering)定义为输出缓存(缓冲),这缓存可以把php处理的数据放到里面,然后我们可以将里面的数据获取,然后保存为静态的文本。

    ?

    缓存相关的信息

  7. 浏览器缓存:就是将数据发送到浏览器之后,浏览器并不会之后的显示出来,一般需要缓存到一定的大小之后,才将数据在浏览器上显示出来。(一般浏览器的缓存大小为)
  8. 程序缓存 :也是php提供的,本身是开启的,程序员无法对其关闭操作。主要用于缓存响应的头信息和响应的主体的信息。

    响应头:主要是给浏览器查看的

    响应主体:主要是给用户查看的,为html标签的内容

    ?

    ?

  9. ob缓存:这个是php提供的,本身是关闭的,程序员可以手动的操作。

    当ob缓存开启之后,这个时候php脚本执行后的数据就会先保存到ob缓存里面,当php脚本执行完毕之后,就会把ob缓存里面的内容移动到程序缓存里面。然后程序缓存将数据返回给Apache服务器,Apache服务器将数据返回给浏览器缓存,当浏览器的缓存大小达到一定数量的时候,浏览器就会显示出数据。

    当ob缓存没有开启的时候,这个时候php脚本处理的数据就直接移动到程序缓存里面,然后返回Apache,Apache返回给浏览器的缓存,达到一定的大小就显示出来。

    ?

    解释:浏览器不会立马显示数据,填充一定数据大小之后,才显示服务器返回的数据。

    主要是浏览器在显示数据的时候,渲染数据是要耗费系统资源的。

    ?

    ob缓存相关的函数

    ob_start(): 代表开启ob缓存

    ob_get_contents():获取ob缓存里面的内容

    ?

    问题1:在响应头输出之前是不能有信息输出的。

    效果:

    注意:当开启ob缓存之后,为什么不会出现waring级别的提示?

    主要是由于ob缓存开启,先将数据保存到ob缓存里面,将响应头信息保存到程序缓存

    效果:

    图示解释:

    ?

    ?

    ob_get_contents()函数

    效果:

    注意:这个时候就可以使用ob_get_contents()函数将ob缓存的内容获取,然后使用file_put_contents()将内容保存为静态的HTML文本。当用户下次访问的时候直接检查这个静态文本是否存在,存在即返回。

    ?

    ob_clean()函数,用来清空ob缓存里面的内容,但是不关闭ob缓存

    ob_end_clean()函数,用来清空ob缓存里面的内容,关闭ob缓存

    ?

    ob_clean()函数

    效果:

    ?

    ob_end_clean()

    效果:

    解释:当使用该函数后,ob缓存会先清空然后在关闭

    ?

    ?

    ob_flush() 将ob缓存的内容先移动到程序缓存,不关闭ob缓存

    ob_end_flush() 将ob缓存的内容先移动到程序缓存,关闭ob缓存

    ?

    ?

    ob_flush()

    效果:

    ?

    ob_end_flush()

    效果:

    ?

    重要的函数为:ob_start() 和 ob_get_contents() 函数 file_put_contents() 和 file_exist()

    ?

    ab压力测试工具

    定义

    Apache提供的一个压力检测工具(Apache benchmark),可以来判定一个网站抗压能力,同时还可以获取到网站响应的大小和时间等其他信息。

    ?

    使用

    在命令行下将ab.exe命令放入使用 -n 并发数 -c 总的请求数

    C:\Documents and Settings\Administrator>D:\wamp\apache\bin\ab.exe -c 100
    -n 3000

    http://local.order.com/dynamic.php

    ?

    注意:

  10. 完成这次请求的时间和多少用户可以在最短的时间见到页面

    动态页面:

    静态页面:

    1370 法则: 1s钟内打开的页面,如果在3s后打开,平均会损失70%的用户。

    通过Apache压力测试工具可以分析网站的一个性能问题。

    ?

时间: 2024-10-19 15:18:27

网站优化—页面静态化技术的相关文章

php页面静态化技术;学习笔记

<!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-

[项目构建 九]babasport 页面静态化技术Freemarker技术的介绍及使用实例.

一.FreeMarker简介 1.动态网页和静态网页差异 在进入主题之前我先介绍一下什么是动态网页,动态网页是指跟静态网页相对应的一种网页编程技术.静态网页,随着HTML代码的生成,页面的内容和显示效 果就不会再发生变化(除非你修改页面代码).而动态网页则不然,页面代码虽然没有发生变化,但是显示的内容却是可以随着时间.环境或者数据库操作的结果而 发生相应的变化.简而言之,动态网页是基本的HTML语法规范与java.VB.VC等高级程序设计语言.数据库编程等多种技术的融合,以实现对网站内容 和风格

大数据学习总结记录—页面静态化技术(Freemarker/velocity)&amp; 网站伪静态(UrlRewriteFilter)

Freemaker  静态化模板技术 模板的作用 模板技术在现代的软件开发中有着重要的地位,而目前最流行的两种模板技术恐怕要算freemarker和velocity了,webwork2.2对两者都有不错的支持,也就是说在webwork2中你可以随意选择使用freemarker或velocity作为view,模板技术作为view的好处是很多,尤其和jsp比较起来优点更大,众所周知jsp需要在第一次被执行的时候编译成servlet,那么这个过程是很慢的,当然很多应用服务器都提供预编译的功能,但是在开

网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析

网站设计阶段是网站开发过程中非常重要的阶段之一,我们只有在设计阶段拥有优秀的设计思路与方法,才能使我们设计出来的网站更加的高效.稳定.本文我们介绍了网站设计过程中需要注意的一些事项,接下来我们就来一起了解一下这一过程. 1.HTML静态化 其实大家都知道,效率最高.消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实 也是最有效的方法.但是对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现,于是出现了我们常见的信息发布系统CMS

高性能Java Web 页面静态化技术

package com.yancms.util; import java.io.*; import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.methods.*; import org.apache.commons.httpclient.params.HttpMethodParams; /** * 静态页面引擎技术(突乱了乱码问题UTF-8) * @author 吴彦文 * */ public cl

页面静态化技术velocity与freemarker比较

相比较 FreeMarker 而言,Velocity 更加简单.轻量级,但它的功能却没有 FreeMarker 那么强大. 对于大部分的应用来说,使用 FreeMarker 比 Velocity 更简单,因为 Velocity 还必须编写一些自定义的toolbox类以及一遍遍重复的编写一些比较通用的模版代码,因此也就丧失了刚开始开发时更多的宝贵时间.另外使用工具类和变通的方法在模版引擎中似乎不是一个非常有效的做法.同时,Velocity 的做法使得在Velocity的模版中大量的跟 Java 对

页面静态化技术

在eclipse中点击Window,选择Reference,弹出如下框 找到:General --> Editors --> File Associations 如下:如果有*.ftl文件,就不用点击上面的Add.如果没有,就点击Add新建 然后点击此页面下面的Add按钮: 然后选择General--Content Types: 编程步骤,这里我们写一个工具类方便我们使用 package cn.jiedada.util; import java.io.File; import java.io.

页面静态化----------------------------------------个人笔记

***********************************************大型网站提速关键技术(页面静态化,mmecached,mysql优化)*********************************************************************************** ************************************************************页面静态化*******************

大型网站提速关键技术(页面静态化,memcached,MySql优化)(二)

一:页面静态化 几个概念: 静态网址:  特点:1.利用seo(search engine optimization) 搜索引擎优化;2:访问速度快 3:防止sql注入