關(guān)于(移動(dòng))網(wǎng)站的性能優(yōu)化筆記

記錄

參考移動(dòng)端網(wǎng)站提升頁面加載性能的優(yōu)化技巧

  1. 減少每個(gè)頁面需要獲取額外資源的HTTP請求數(shù)熟菲。
  2. 減少每個(gè)請求加載的大小。
  3. 優(yōu)化客戶端執(zhí)行的優(yōu)先級和腳本執(zhí)行的效率朴恳。

具體實(shí)現(xiàn)方案:

  • 減少請求:
    1. cnds ,自建靜態(tài)資源庫(statics)
  • 整合資源
    1. 統(tǒng)一管理資源加載抄罕,減少重復(fù)加載
    2. Sprites是css中處理圖片
    3. 使用Webpack等打包工具壓縮 合并文件css ,js,html
  • 使用瀏覽器緩存和本地緩存
    1. Cache-Control或者Expires頭標(biāo)記的資源,這些頭能標(biāo)記資源需要緩存的時(shí)間
    2. HTML5的localStorage操作于颖,可以讀寫鍵值數(shù)據(jù)呆贿,每個(gè)域名大概有5MB的容量(緩存問題:失效,存滿 時(shí)新增的刪除處理)
    3. 使用Webpack等打包工具壓縮 合并文件css ,js,html
  • 首次使用的時(shí)候在HTML中嵌入資源:
    1. 資源沒有很高的被緩存的幾率的話森渐,最好把它嵌入到頁面的HTML中(叫inlining)
    2. 圖片和其他的二進(jìn)制資源其實(shí)也是可以通過內(nèi)嵌包含base64編碼的文本來嵌入到HTML中
    3. 在第一次請求資源后必須能夠使用代碼在客戶端緩存資源做入,因此,在移動(dòng)設(shè)備上同衣,使用HTML5 localStorage能很好地做到內(nèi)嵌竟块。
  • 使用HTML5服務(wù)端發(fā)送事件
    1. 這種方式比HTML的WebSocket更高效,WebSocket的使用場景是耐齐,當(dāng)有許多客戶端和服務(wù)端的交互的時(shí)候(比如消息或者游戲)浪秘,在全雙工連接上建立一個(gè)雙向通道。
    2. 轉(zhuǎn)變成Server-Sent事件需要重構(gòu)網(wǎng)站的Javascript代碼
  • 消除重定向
    1. 在原先的請求上傳遞移動(dòng)的web頁會(huì)比傳遞一個(gè)重定向的信息并讓客戶端再請求移動(dòng)頁面更快埠况。
  • 減少資源負(fù)載
    1. 關(guān)于移動(dòng)端頁面的大小問題耸携,渲染小頁面更快,獲取小資源也更快辕翰,減小每個(gè)請求的大小通常不如減少頁面請求個(gè)數(shù)那么顯著地提高性能夺衍。
  • 壓縮文本和圖像
    1. gzip這樣的壓縮技術(shù),依靠增加服務(wù)端壓縮和瀏覽器解壓的步驟(這些操作都是被高度優(yōu)化過了,而且測試表明喜命,壓縮對網(wǎng)站還是起到優(yōu)化性能的作用的沟沙,那些基于文本的響應(yīng)的畴,包括HTML,XML尝胆,JSON(Javascript Object Notation)丧裁,Javascript,和CSS可以減少大約70%的大小含衔。)
  • 調(diào)整圖片大小
    1. 提前優(yōu)化圖片大小和質(zhì)量 到PC,移動(dòng)平臺
    2. 使用大小兩套圖片煎娇,小圖占位,onload加載原(大)圖
    3. 使用lazyload或一些其他延遲加載具提高頁面渲染效率
  • 使用HTML5和CSS 3.0來簡化頁面
    1.結(jié)構(gòu)元素贪染,例如header缓呛,nav,article和footer 語義化的標(biāo)簽使得頁面更簡單和更容易解析杭隙,哟绊,可以有更快的JavaScript執(zhí)行效率
    1. 新屬性 placeholder(占位) ,autofocus 痰憎,input 類型(e-mail票髓,URL,數(shù)字铣耘,范圍洽沟,日期和時(shí)間)減少之前js操作來提高體驗(yàn)
    2. 層次,圓角蜗细,陰影裆操,動(dòng)畫,過渡和其他的圖片效果炉媒,CSS 3.0踪区,功能同上減少耗損
  • 延遲讀取和執(zhí)行的腳本
    1. 用戶操作如拖拽可以在onload事件之后再進(jìn)行加載,而在些之前是進(jìn)行頁面渲染
    2. 延遲加載的異步版本的API
  • 使用Ajax來增強(qiáng)進(jìn)程
    1. 增加進(jìn)程吊骤,( 跨域問題缎岗,你需要使用XHR2)
  • 使用HTML5的WEB WORKER特性操作多線程應(yīng)用,(個(gè)人理解水援,如果真要大計(jì)算只要不是本地應(yīng)用都可以使用websocket+serverEnd來處理密强,畢竟服務(wù)器的運(yùn)算支持能力更強(qiáng))
  • 使用移動(dòng)事件茅郎,如touch 代替click等蜗元。

總結(jié)

馬海祥博客點(diǎn)評:
如果缺少了持續(xù)和仔細(xì)的測試提醒,性能的優(yōu)化就只是討論而已系冗,是無法完成的奕扣,如果沒有指定基準(zhǔn)做比較,你系統(tǒng)上的任何改動(dòng)都僅僅是理論而已掌敬,如果沒有真實(shí)的測試數(shù)據(jù)惯豆,猜測性能的瓶頸是毫無意義的池磁。
有很多開源和通用的工具能進(jìn)行集成測試,并且能進(jìn)行不同地域和帶寬/延遲的測試楷兽,另外地熄,RUM(real user monitoring)工具能將測試環(huán)境從實(shí)驗(yàn)室變成不可預(yù)測的真實(shí)用戶行為。
觀察移動(dòng)設(shè)備的測試選擇和桌面場景一樣芯杀,如果你在選擇一個(gè)自動(dòng)化的解決方案端考,請確保使用一個(gè)能持續(xù)測試,并且能區(qū)分出應(yīng)用優(yōu)化方法前后的變化的解決方案揭厚。
如果性能優(yōu)化如果只是在發(fā)展過程中的一個(gè)步驟而已却特,它不會(huì)有什么效果的,它必須成為一個(gè)持續(xù)改善網(wǎng)站的一部分


結(jié)合實(shí)踐運(yùn)用一些基本的軟件原則進(jìn)行開發(fā)筛圆,

  1. 精簡(減少資源裂明,壓縮資源…)
  2. 優(yōu)化 (業(yè)務(wù)邏輯,算法…)

這是有順序的一種結(jié)合方式

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末太援,一起剝皮案震驚了整個(gè)濱河市闽晦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌提岔,老刑警劉巖尼荆,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異唧垦,居然都是意外死亡捅儒,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門振亮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來巧还,“玉大人,你說我怎么就攤上這事坊秸◆锏唬” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵褒搔,是天一觀的道長阶牍。 經(jīng)常有香客問我,道長星瘾,這世上最難降的妖魔是什么走孽? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮琳状,結(jié)果婚禮上磕瓷,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好困食,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布边翁。 她就那樣靜靜地躺著,像睡著了一般硕盹。 火紅的嫁衣襯著肌膚如雪符匾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天瘩例,我揣著相機(jī)與錄音待讳,去河邊找鬼。 笑死仰剿,一個(gè)胖子當(dāng)著我的面吹牛创淡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播南吮,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼琳彩,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了部凑?” 一聲冷哼從身側(cè)響起露乏,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎涂邀,沒想到半個(gè)月后瘟仿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡比勉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年劳较,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浩聋。...
    茶點(diǎn)故事閱讀 38,059評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡观蜗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出衣洁,到底是詐尸還是另有隱情墓捻,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布坊夫,位于F島的核電站砖第,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏环凿。R本人自食惡果不足惜梧兼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拷邢。 院中可真熱鬧袱院,春花似錦、人聲如沸瞭稼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽环肘。三九已至欲虚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間悔雹,已是汗流浹背复哆。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留腌零,地道東北人梯找。 一個(gè)月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像益涧,于是被迫代替她去往敵國和親锈锤。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容