1. 程式人生 > >HTTP狀態碼+效能優化

HTTP狀態碼+效能優化

1、HTTP狀態碼知道哪些?

答:

  100 Continue 繼續,一般在傳送post請求時,已傳送了http header之後服務端將返回此資訊,表示確認,之後傳送具體引數資訊

  200 OK 正常返回資訊

  201 Created 請求成功並且伺服器建立了新的資源

  202 Accepted 伺服器已接受請求,但尚未處理

  301 Moved Permanently 請求的網頁已永久移動到新位置。

  302 Found 臨時性重定向。

  303 See Other 臨時性重定向,且總是使用 GET 請求新的 URI。

  304 Not Modified 自從上次請求後,請求的網頁未修改過。

  400 Bad Request 伺服器無法理解請求的格式,客戶端不應當嘗試再次使用相同的內容發起請求。

  401 Unauthorized 請求未授權。

  403 Forbidden 禁止訪問。

  404 Not Found 找不到如何與 URI 相匹配的資源。

  500 Internal Server Error 最常見的伺服器端錯誤。

  503 Service Unavailable 伺服器端暫時無法處理請求(可能是過載或維護)。

 

2、你有哪些效能優化的方法?

答:

  (1) 減少http請求次數:CSS Sprites, JS、CSS原始碼壓縮、圖片大小控制合適;網頁Gzip,CDN託管,data快取 ,圖片伺服器。

  (2) 前端模板 JS+資料,減少由於HTML標籤導致的頻寬浪費,前端用變數儲存AJAX請求結果,每次操作本地變數,不用請求,減少請求次數

  (3) 用innerHTML代替DOM操作,減少DOM操作次數,優化javascript效能。

  (4) 當需要設定的樣式很多時設定className而不是直接操作style。

  (5) 少用全域性變數、快取DOM節點查詢的結果。減少IO讀取操作。

  (6) 避免使用CSS Expression(css表示式)又稱Dynamic properties(動態屬性)。

  (7) 圖片預載入,將樣式表放在頂部,將指令碼放在底部 加上時間戳。

 

 

CORS

伺服器端對於CORS的支援,主要就是通過設定Access-Control-Allow-Origin來進行的。如果瀏覽器檢測到相應的設定,就可以允許Ajax進行跨域的訪問。

通過修改document.domain來跨子域

將子域和主域的document.domain設為同一個主域.前提條件:這兩個域名必須屬於同一個基礎域名!而且所用的協議,埠都要一致,否則無法利用document.domain進行跨域

主域相同的使用document.domain

使用window.name來進行跨域

window物件有個name屬性,該屬性有個特徵:即在一個視窗(window)的生命週期內,視窗載入的所有的頁面都是共享一個window.name的,每個頁面對window.name都有讀寫的許可權,window.name是持久存在一個視窗載入過的所有頁面中的

使用HTML5中新引進的window.postMessage方法來跨域傳送資料

還有flash、在伺服器上設定代理頁面等跨域方式。個人認為window.name的方法既不復雜,也能相容到幾乎所有瀏覽器,這真是極好的一種跨域方法。