zoukankan      html  css  js  c++  java
  • 浏览器缓存(Egret项目实例分析)

    参考文章:

    浏览器缓存机制:http://web.jobbole.com/82997/

    浏览器缓存机制:http://www.cnblogs.com/skynet/archive/2012/11/28/2792503.html

    Meta http-equiv详解: http://kinglyhum.iteye.com/blog/827807

     

    页面缓存相关设置:

    exprise 用于设定网页的到期时间。一旦网页过期,必须到服务器上重新传输。

    <meta http-equiv="expires" content="31 Dec 2008">
    <meta http-equiv="expires" content="0"> 

     

    prama的作用是告诉浏览器当前页面不被缓存,每次访问都需要去服务器拉取。使用上很简单,但只有部分浏览器可以支持,而且所有缓存代理服务器都不支持,因为代理不解析HTML内容本身。

    <meta http-equiv="pragma"content="no-cache">

     

    cache-control缓存控制

    <meta http-equiv="cache-control" content="no-cache"> 
    <meta http-equiv="cache-control"content="max-age=0"/>

     

     

     

    浏览器缓存图解:

     

     

     

    实测:

    1 什么也不设置的情况下,修改index.html文件

    第一次F5刷新:

    第二次F5刷新:

     

     

     

     2 设置缓存和过期时间情况下,修改index.html文件

    <meta http-equiv="expires" content="31 Dec 2099"> 
    <meta http-equiv="cache-control" content="max-age=5000"> 

    同什么都不设置一样。

     呵呵。为啥cache-control:max-age=0呢?

    修改网页index.html,修改网页后会重新从服务器拉取,没修改过就读缓存。

     

    修改资源文件

    修改png图片,一直读的缓存。

    没有Request Headers。

     根据实例总结:

     1. 设置cache-control后,为啥还是max-age=0??

     2. 为啥png没有request Headers??

     

     附录:

    cache-control可选设置

     

    Last-Modified/If-Modified-Since

    Last-Modified/If-Modified-Since要配合Cache-Control使用。

    l  Last-Modified:标示这个响应资源的最后修改时间。web服务器在响应请求时,告诉浏览器资源的最后修改时间。

    l  If-Modified-Since:当资源过期时(使用Cache-Control标识的max-age),发现资源具有Last-Modified声明,则再次向web服务器请求时带上头 If-Modified-Since,表示请求时间。web服务器收到请求后发现有头If-Modified-Since 则与被请求资源的最后修改时间进行比对。若最后修改时间较新,说明资源又被改动过,则响应整片资源内容(写在响应消息包体内),HTTP 200;若最后修改时间较旧,说明资源无新修改,则响应HTTP 304 (无需包体,节省浏览),告知浏览器继续使用所保存的cache。

    Etag/If-None-Match

    Etag/If-None-Match也要配合Cache-Control使用。

    l  Etag:web服务器响应请求时,告诉浏览器当前资源在服务器的唯一标识(生成规则由服务器觉得)。Apache中,ETag的值,默认是对文件的索引节(INode),大小(Size)和最后修改时间(MTime)进行Hash后得到的

    l  If-None-Match:当资源过期时(使用Cache-Control标识的max-age),发现资源具有Etage声明,则再次向web服务器请求时带上头If-None-Match (Etag的值)web服务器收到请求后发现有头If-None-Match 则与被请求资源的相应校验串进行比对,决定返回200或304

     

    用户行为与缓存:

     

  • 相关阅读:
    Colidity-- NumberOfDiscIntersections
    Colidity--Triangle
    Colidity--CountDiv
    Colidity--MinAvgTwoSlice
    Colidity--GenomicRangeQuery
    Colidity--PassingCars
    操作系统--内存管理方式
    蓝桥杯练习系统—算法训练 P1102
    蓝桥杯练习系统—基础练习 完美的代价
    2n皇后问题
  • 原文地址:https://www.cnblogs.com/gamedaybyday/p/6289900.html
Copyright © 2011-2022 走看看