web資源基礎認識和加載

web資源的基礎認識和加載

由于自己大約在一年之前寫了一點自己對web資源的認識,發(fā)現(xiàn)自己比較長時間沒有更新bolg了蟀瞧,于是把之前的這篇文章進行了整理發(fā)布出來翎冲,希望大家能夠多提意見棘钞,也希望能夠對大家有一點幫助。個人認為這些流程對構建整體的資源加載還是有一點用處的柿估,可能實際工作中大部分都是工具完成的,自己本身是不需要考慮的陷猫。

首先自己從認識web資源開始

web資源包括的類型做了一個簡單的整理

  • html: html頁面
  • javascript:javascript文件
  • css樣式表:
  • 圖片:各種各樣的圖片資源秫舌,包括png,jpeg等
  • svg:用于繪制的svg的2d矢量圖形表示
  • css Shader:支持cssShader文件绣檬,目前webkit支持該功能足陨。
  • 視頻音頻和字幕:多媒體資源及支持音視頻的字幕文件(textTrack)
  • 字體文件: css支持自定義字體,css3引入的自定義字體文件
  • xsl樣式表:使用XSLT語言編寫的xslt文件娇未,可用于對xml文件的樣式布局

基礎加載過程

圖片1.png

這里的緩存是屬于內存緩存墨缘,不是網絡棧的磁盤緩存從資源池查找資源的關鍵字是標記資源的唯一特性url。也意味著兩個資源有不同的url零抬,但他們的內容完全一樣镊讼,也被認為是不同的資源

資源加載器

圖片2.png

資源和加載器之間的關系
元素所需要的資源 ------------ 特定的資源加載器----------緩存資源加載器-------------通用資源加載器

資源加載的基礎過程

圖片3.png

從上面圖可以看到資源沒有緩存,加載是一個較為費時的過程平夜。為了更好的處理資源瀏覽器做了一下處理

  • 1.在webkit中采用了異步的操作方式狠毯,使資源的加載和對頁面的解析渲染互補影響。
  • 2.js錯誤或者其他操作可能會阻礙對頁面的解析和資源加載褥芒,在webkit中如果當前的解析渲染主線程被阻礙嚼松,webkit會啟用一個新的線程收集加載后面相關的url資源。

資源加載的基礎協(xié)議

  • 協(xié)議的基本類型


    圖片4.png
  • 協(xié)議的選擇過程


    圖片5.png

通過我們都采用http協(xié)議來加載資源的锰扶。
http協(xié)議更詳細的內容可參考以下資源
相關參考文檔(互聯(lián)網公共領域的標準應用的應用層協(xié)議)(rfc)
可在協(xié)議分析網(http://www.cnpaf.net/class/rfcall/)上查找
http1.0對應1945號文檔
http1.1對應2616號文檔
不過http2已經出來了献酗,大家可自行查找。

資源的生命周期

  • 1)問題:web相關的資源屬于html文檔的對象坷牛,因此web資源的緩存池的大小是有限的罕偎,不能無限的大,這樣一來京闰,問題就來了颜及,資源必須有相應的替換方式甩苛,以保證有新的資源可以加入

    處理辦法:webkit中用了LRU算法(最近最少使用)

  • 2)問題:資源加載后,會放入到資源緩存區(qū)俏站,如果一段時間后刷新該頁面讯蒲,會怎樣加載該資源了,是繼續(xù)使用緩存的資源肄扎,還是加載新的資源墨林,有可能該資源在這段時間內被更新了

    處理辦法:在webkit中,對于部分資源需要發(fā)送請求重新加載犯祠,對于大部分資源采取的措施是利用http協(xié)議旭等,來確認該資源是否已被更新,需要重新加載衡载。首先判斷該資源是否在緩存區(qū)搔耕,如果在緩存區(qū),則利用http協(xié)議發(fā)送一個請求給服務端痰娱,該請求包括了該資源的一些本地信息(修改時間等)度迂,以便和服務器端進行確認,如果沒有更新猜揪,則返回狀態(tài)碼304(或提示from memory cache)惭墓,如果被更新請求下載最新資源。

資源優(yōu)化的基本處理

通過對上面資源和資源加載的整體大局的認識而姐,因此可得出資源優(yōu)化的基礎方案腊凶。

  • 1)預處理:需要的資源請求鏈接,(例如DNS預處理拴念,減少鏈接重定向钧萍,大量訪問的鏈接)
  • 2)避免錯誤的鏈接:盡可能的避免已經失效的鏈接
  • 3)資源壓縮:壓縮文本,圖片政鼠,音視頻等資源
  • 4)資源合并:(例如許多小的圖片风瘦,合并成一張大圖可以減少網絡請求次數(shù))
資源初次加載時個人簡單的想法

(以下不合理之處大家指出來,不要噴奧公般,哈哈)

  • 1)初次加載時采用較為簡單的靜態(tài)頁面作為首屏顯示

  • 2)進入首屏后万搔,在再首屏的停留時間可以用來緩存一些數(shù)據的加載,降低用戶在感覺上的等待時間

  • 3 )提前一步加載下一步可能需要的資源官帘,讓下一步的資源盡可能的保持在緩存區(qū)

      相對的缺點:如果該用戶不在進入我們已加載的資源瞬雹。就可能造成了該次預加載資源的浪費。
    

以上過程是從一個大局對web資源和加載的簡單認識刽虹,沒有從細節(jié)上分析每一個步驟和處理方法酗捌。也是一個自己之前對資源加載的整體入門,也希望自己以后對各個環(huán)節(jié)有更為深入的認識,也希望對大家有一點幫助胖缤。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末尚镰,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子哪廓,更是在濱河造成了極大的恐慌狗唉,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撩独,死亡現(xiàn)場離奇詭異,居然都是意外死亡账月,警方通過查閱死者的電腦和手機综膀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來局齿,“玉大人剧劝,你說我怎么就攤上這事∽ゼ撸” “怎么了讥此?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長谣妻。 經常有香客問我萄喳,道長,這世上最難降的妖魔是什么蹋半? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任他巨,我火速辦了婚禮,結果婚禮上减江,老公的妹妹穿的比我還像新娘染突。我一直安慰自己,他們只是感情好辈灼,可當我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布份企。 她就那樣靜靜地躺著,像睡著了一般巡莹。 火紅的嫁衣襯著肌膚如雪司志。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天降宅,我揣著相機與錄音俐芯,去河邊找鬼。 笑死钉鸯,一個胖子當著我的面吹牛吧史,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼贸营,長吁一口氣:“原來是場噩夢啊……” “哼吨述!你這毒婦竟也來了?” 一聲冷哼從身側響起钞脂,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤揣云,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后冰啃,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體邓夕,經...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年阎毅,在試婚紗的時候發(fā)現(xiàn)自己被綠了焚刚。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡扇调,死狀恐怖矿咕,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情狼钮,我是刑警寧澤碳柱,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站熬芜,受9級特大地震影響莲镣,放射性物質發(fā)生泄漏。R本人自食惡果不足惜涎拉,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一剥悟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧曼库,春花似錦区岗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至种玛,卻和暖如春藐鹤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背赂韵。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工娱节, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人祭示。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓肄满,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子稠歉,可洞房花燭夜當晚...
    茶點故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內容

  • # Python 資源大全中文版 我想很多程序員應該記得 GitHub 上有一個 Awesome - XXX 系列...
    小邁克閱讀 3,001評論 1 3
  • WebView·開車指南 2016-08-31BugDev 北京市東城區(qū)首席Bug布道師開山之作掰担,一整月交通事故血...
    53c021c38a1d閱讀 833評論 0 1
  • 2017.0405周3 一.時間:三個月20170312~20170612 二.目標: 1.智慧--讓空性成為自己...
    劉健虹閱讀 263評論 0 0
  • 編號:6號昵稱:西西公主微博:西西公主的夢想 12月再過5天就結束了。按照凡事提前原則怒炸,提前寫月度總結带饱。 學習:1...
    營養(yǎng)私教西西閱讀 303評論 0 2
  • 四月初入夏 夜微涼 風如期而至 簾子沙沙作響 好似在私私語 走吧 一起浪跡天涯 …………
    Daisy_9399閱讀 248評論 1 7