qgymje 发表于 2013-1-29 07:29:14

缓存的心得

据我所知的缓存
1.为什么要缓存?
a.动态页面将数据缓存起来以达到静态页面的速度
b.缓存是优化的一个重点
2.哪些地方可以用到缓存?
a.首先是服务器脚本生成的静态文件
      PHP的话配合使用ob_start() ob_get_contents()/ob_get_clean() fopen() fwrite() file_put_contents这些函数的使用生成一个静态文件,并且用file_exists()在新请求时判断些生成的静态文件是否存在如果存在就header()重定向,以达到速度最快化,并且可以设置一个静态文件的生存时间,新请求来的时候判断时间差,如果大于这个时间差并且文件已经被删除了那么就重新生成。
      b.从http头发觉缓存,通常一个图片会有一次请求,如果web服务器在用户第一次请求这个图片的时候就将生存时间写成之后不久,那么http请求会先请求些图片,服务器返回一个请求但时间很短,因为没有实际的数据传输,生成一个304的结果,浏览器就从浏览器缓存文件中取出这张图片。包括一些脚本与css文件以及html。
      c.javascript里动态数据请求,通常可以缓存起来,在不离开这个页面的时候重新的ajax请求不会再到服务器去请求资源,甚至直接在js的变量里去取,当然这些数据是在用户的内存中,但数量不会太大。
      d.css的背景图片,将很多的图片整合成一张图片,能有效降低头一次请求的数量。使用css属性的background准确地定位图片的位置。然后将此图片在客户端缓存起来。
   e. 从数据库端入手:通常数据库会有一种cache类型的引擎,它不占用实际的硬盘空间,保存在服务器的内存中,这些数据比如重头十条新闻,最新的数据,但不能滥用。
      我这里总结了很多种缓存的情况,最终的目的就是加速网页的打开速度,提高效率。从数据库,web服务器,服务端脚本,前端优化以及浏览器缓存的功能来进行综合的分析。
      这里不能不说我确实有些心得了。哇哈哈,这个东西在几个月前的面试的时候被问到过,呵呵,没答上来。现在总算是有一些思路了。
页: [1]
查看完整版本: 缓存的心得