http緩存的meta標簽
HTTP協(xié)議中關于緩存的信息頭關鍵字包括Cache-Control(HTTP1.1),Pragma(HTTP1.0),last-Modified,Expires等。
- Cache-Control
- no-cache 瀏覽器和緩存服務器不緩存頁面信息
- private 指示對于單個用戶的整個或部分響應消息,不能被共享緩存處理
- must-revalidate 對于客戶機的每次請求,服務器驗證緩存是否過時
- public 瀏覽器和緩存服務器可以緩存頁面信息
- no-store http信息不被存儲在對方的磁盤系統(tǒng)
- Pragma
- Pragma
- no-cache
- last-modified 只頁面的最后生成時間,GMT格式
- Expire 指的是過期的時間,過了某個時間點后從真正的服務器眾獲取新的頁面信息
1) 打開新窗口 值為private、no-cache、must-revalidate,那么打開新窗口訪問時都會重新訪問服務器。 而如果指定了max-age值,那么在此值內(nèi)的時間里就不會重新訪問服務器,例如: Cache-control: max-age=5(表示當訪問此網(wǎng)頁后的5秒內(nèi)再次訪問不會去服務器)
2) 在地址欄回車 值為private或must-revalidate則只有第一次訪問時會訪問服務器,以后就不再訪問。 值為no-cache,那么每次都會訪問。 值為max-age,則在過期之前不會重復訪問。
3) 按后退按扭 值為private、must-revalidate、max-age,則不會重訪問, 值為no-cache,則每次都重復訪問
4) 按刷新按扭 無論為何值,都會重復訪問。Cache-control值為“no-cache”時,訪問此頁面不會在Internet臨時文件夾留下頁面?zhèn)浞荨?br> 來自《html頭文件設置常用之<meta>設置緩存》
跨域CORS的步驟
簡單請求
主要是指GET,POST,HEAD三種請求方式。
HTTP頭文件不超出下面的方式:
Accept
Accept-Language
Content-Language
Last-Event-ID
Content-Type:只限于三個值application/x-www-form-urlencoded、multipart/form-data、text/plain
- 瀏覽器端:使用GET或者POST發(fā)送的請求,根據(jù)你請求的地址,給它附加一個額外的Origin頭部,其中包含請求頁面的源信息(協(xié)議、域名和端口)。這個動作大部分瀏覽器是自動的,除了IE8,它引用的是XDR。
- 服務端:如果認為這個請求接受,就在Access-Control-Allow-Origin頭部中回發(fā)相同的源信息。
例如:Access-Control-Allow-Origin:http://www.test.com
非簡單請求(Preflighted Requests)
它支持GET,POST,HEAD以外事件的方法。
瀏覽器端會根據(jù)你的請求方法和添加的頭信息自動添加除了Origin外還有下面兩個屬性。
- Access-Control-Request-Method 該字段是必須的,用來列出瀏覽器的CORS請求會用到哪些HTTP方法,上例是PUT
- Access-Control-Request-Headers 該字段是一個逗號分隔的字符串,指定瀏覽器CORS請求會額外發(fā)送的頭信息字段
服務端確認允許跨源請求,需要添加以下字段。
- Access-Control-Allow-Origin 與簡單請求一樣,指請求頁面源信息,*表示所有站點
- Access-Control-Allow-Methods 該字段必需,它的值是逗號分隔的一個字符串,表明服務器支持的所有跨域請求的方法
- Access-Control-Allow-Headers 如果瀏覽器請求包括Access-Control-Request-Headers字段,則Access-Control-Allow-Headers字段是必需的
- Access-Control-Allow-Credentials 是否發(fā)送憑證
- Access-Control-Max-Age 緩存多長時間(秒為單位)
response.setContentType("text/html; charset=utf-8");
response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Allow-Methods", "*");
response.addHeader("Access-Control-Max-Age", "100");
response.addHeader("Access-Control-Allow-Headers", "X-Custom-Header,accept, content-type");
response.addHeader("Access-Control-Allow-Credentials", "false");
什么時候觸發(fā)重繪重排
- 增加或刪除DOM節(jié)點
- 移動頁面中的元素
- 增加或者修改樣式
- 設置
display: none;(重排并重繪)或者visibility: hidden(只有重排) - 用戶改變窗口大小,滾動頁面等
怎么減少重繪重排
- 不要一個一個地單獨修改屬性,最好通過一個classname來定義這些修改
- clone節(jié)點后大幅度修改它,最后插入節(jié)點。或者用DocumentFragment進行修改
- 不要頻繁獲取計算后的樣式,最好暫存起來而不是直接從DOM上讀取
- 絕對定位的動畫不會影響其他dom