摘要:一盡可能減少請求什么是請求官方回答從客戶端到服務器端的請求消息包括消息首行中對資源的請求方法資源的標識符及使用協議菜鳥回答當你打開網頁的時候所看到的文字圖片多媒體等都是從服務器獲取的每一個內容的獲取就是請求把圖片合并二使用內容分發網絡官方回
一、盡可能減少Http請求
什么是Http請求?
官方回答:從客戶端到服務器端的請求消息包括消息首行中對資源的請求方法 資源的標識符及使用協議
菜鳥回答:當你打開網頁的時候 所看到的文字圖片多媒體等 都是從服務器獲取的 每一個內容的獲取 就是http請求
把圖片、js、css合并
二、使用CDN(內容分發網絡)官方回答:內容分發網絡 意思是盡可能避開互聯網上有可能影響數據傳輸速度和穩定性的瓶頸和環節 使內容傳輸的更快、更穩定
:在離你最近的距離、最快的速度獲取內容
阿帕奇開啟了expire模塊 當瀏覽器發送資源請求的時候 阿帕奇返回資源的同時 會返回一個名為expire的Http頭
expire頭的內容是一個時間值 值就是資源在本地的過期時間、這個值會存在本地
在本地緩存階段找到一個本地對應的資源值
當前時間還沒超過資源的過期時間 就直接使用這一個資源 不會發送Http請求
Cache-Control四、啟用Gzip壓縮
是Http協議中常用的頭部之一
顧名思義 它是負責控制頁面的緩存機制 如果該頭部指示緩存
緩存的內容也不會存在本操作流程和expire相似
但也有不同的地方 cache-control有更多的選項
而且也有更多的處理方式
什么是Gzip壓縮:文件先放服務器壓縮 然后在存儲 存儲完畢以后 瀏覽器在對壓縮過得內容進行解壓縮 并執行
目前的瀏覽器都能很好的支持Gzip
所有的文本內容都要進行Gzip壓縮
Cascading Style Sheets(層疊樣式表單)
為了提高瀏覽器的渲染性能 避免頁面空白或閃爍的問題
如果js出現問題 不會出現空白影響用戶瀏覽
七、避免在css中使用 Expressions什么是css Expressions:
css Expressions 俗稱 css表達式
是用來把css屬性 和 js表達式關聯起來
(這里的css屬性可以是固有屬性 也可以是自定義屬性
就是說css屬性后面可以是js表達式 css的值 = js表達式計算的結果)
css Expressions 計算頻率很高
在頁面顯示和縮放、頁面滾動、鼠標移動的時候都會從新計算一次
所有使用css Expressions 瀏覽器會不停的計算 以至于嚴重影響性能 及 用戶體驗
八、把js和css放到外部文件中多帶帶提取:
提高了js和css的復用性 減少頁面體積 提高js和css的可維護性
寫在頁面里:
減少請求 提升頁面渲染速度
寫在頁面內的情況:
1、js和css只應用于一個頁面
2、一個不經常被訪問的頁面
3、腳本和樣式很少的情況(不多于20、30行)
如:用戶打開 www.a.com 這個網址時 計算機是不知道它是什么、在哪里 必須通過一種轉換機制才能到達這個頁面
這種機制能夠將 www.a.com 對應到一個IP地址 10.96.141.1(一個計算機理解的地址)
在通過這個IP地址(使用DNS查找)對應到 www.a.com 這個網站
整個過程就是DNS查找過程
查找的過程中瀏覽器是得不到任何資源的(這期間瀏覽器是一片空白)
所以要對這個過程進行緩存 緩存之后就可以減少這種查找過程
不同瀏覽區緩存時間不同 (IE:30m 火狐:60s 谷歌:60s)
當緩存時間長時:減少DNS的重復查找 節省時間
當緩存時間短時:瀏覽器會及時檢查網站服務器的變化 保證正確性
根據自身情況進行緩存時間的長短十、壓縮js 和 css
多域:網址 圖片 js 分別使用不同的域名
單域:網址 圖片 js 使用同一域名
1、去除不必要的空白符、格式符、注釋(代碼格式化)
2、簡寫方法名參數名壓縮js腳本
建議:在正式上線前 將js、css都進行壓縮 使線上版本是最輕量級的 大幅提升網址性能
十一、避免重定向重定向:用戶原始請求被重新轉向到了其他請求(用戶想訪問的頁面a 被重新 指向了頁面b)
重定向狀態碼:
301 Moved Permanently:用戶請求的頁面被移動到另外的位置(永久重定向)
302 Found:用戶請求的頁面被找到了但不在原始位置(臨時重定向)
對用戶沒有什么影響 但對搜索引擎影響就大了 都是從a 跳到 b
301 會識別一次 第二次就會直接跳到 b
302 每次都是 先找a 再跳到 b
為什么避免重定向
無論301還是302都增加了服務器的往返次數
當用戶發起訪問 a 網站的請求時 服務器收到 由于a 重定向到 b 所以服務器返回一個重定向信息(301 或 302)
并把這個信息寫在 header 中 并在 header 中返回一個新的地址(b 的地址)
但是body中是空白的 用戶端在收到這個反饋后 就知道地址改了
所以用戶的瀏覽器會再一次請求 請求到b 然后才打開網頁 下載資源
用戶多了一次獲取新地址的過程 必然會增加瀏覽器到服務器的返回次數
(要盡量減少Http請求 所以要避免使用)
//外部引入代碼 number++; document.getElementById("test").value = number; //外部引入兩遍 會影響value值十三、配置實體標簽(ETag)
全稱Entity Tag(實體標簽) 它包含在響應頭部中 屬于Http協議 受web服務支持
它是使用特殊字符串 來標識某個請求資源版本
當用戶通過瀏覽器來服務器請求資源的時候 服務器會進行比較
如果兩遍的ETag一致 那就代表瀏覽器和服務器的ETag一致 這就意味著該資源沒有修改過 和以前是一樣的
這時候服務器會返回一個304碼 告訴瀏覽器對比一致 可以使用本地緩存的版本 會幫助服務器減輕很多負擔
這就是配置ETag的好處
ajax:不重新加載頁面的情況下 使客戶端與服務器交換數據 可使網站數據分批加載 也可局部更新
post:每次都執行 不能被緩存 get:同一地址不重復執行 可以被緩存
輔助工具 Yslow
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/106717.html
摘要:軍規重要的幾點也是常用的幾點來個總結減少請求減輕服務器壓力圖片合并合并合并使用內容分發網絡需要花錢買副本服務器定義盡可能避開互聯網上有可能影響數據傳輸速度和穩定性的瓶頸和環節,使內容傳輸的更快更穩定。 今天的雞湯來自有書共讀——《你好好說話會死嗎?》 是,不是你心情不好,全世界都得陪你哭;不是你心情不好,周圍的人都得忍受你的一切。不是你身懷鋒芒,手藏匕首,就有資格在難過的時候,刺向你最...
摘要:避免重定向重定向用和狀態碼,下面是一個有狀態碼的頭瀏覽器會自動跳轉到域指明的。除此之外還有別的跳轉方式元標簽和,但如果你必須得做重定向,最好用標準的狀態碼,主要是為了讓返回按鈕能正常使用。要提高性能,優化這些響應至關重要。 showImg(https://segmentfault.com/img/bVbmMsz?w=652&h=367);一直以來,性能優化是開發的重中之中,而提及 前端...
摘要:避免重定向重定向用和狀態碼,下面是一個有狀態碼的頭瀏覽器會自動跳轉到域指明的。除此之外還有別的跳轉方式元標簽和,但如果你必須得做重定向,最好用標準的狀態碼,主要是為了讓返回按鈕能正常使用。要提高性能,優化這些響應至關重要。 showImg(https://segmentfault.com/img/bVbmMsz?w=652&h=367);一直以來,性能優化是開發的重中之中,而提及 前端...
摘要:避免重定向重定向用和狀態碼,下面是一個有狀態碼的頭瀏覽器會自動跳轉到域指明的。除此之外還有別的跳轉方式元標簽和,但如果你必須得做重定向,最好用標準的狀態碼,主要是為了讓返回按鈕能正常使用。要提高性能,優化這些響應至關重要。 showImg(https://segmentfault.com/img/bVbmMsz?w=652&h=367);一直以來,性能優化是開發的重中之中,而提及 前端...
閱讀 1738·2021-09-26 09:46
閱讀 3017·2021-09-22 15:55
閱讀 2607·2019-08-30 14:17
閱讀 3026·2019-08-26 11:59
閱讀 1808·2019-08-26 11:35
閱讀 3155·2019-08-26 10:45
閱讀 3151·2019-08-23 18:28
閱讀 1105·2019-08-23 18:21