Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 一区二区三区中文字幕,一区二区三区视频,国产小视频免费看

          整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          干貨 - Web前端開(kāi)發(fā)小白學(xué)習(xí)筆記

          eb前端開(kāi)發(fā)小白學(xué)習(xí)筆記

          · 1 · 開(kāi)發(fā)網(wǎng)頁(yè)的三種技術(shù)

          Html——-超文本標(biāo)記語(yǔ)言–>負(fù)責(zé)網(wǎng)頁(yè)的結(jié)構(gòu)

          Css——–層疊樣式表–>站在美學(xué)的角度進(jìn)行美化

          JavaScript——JavaScript一種直譯式腳本語(yǔ)言,是一種動(dòng)態(tài)類型、弱類型、基于原型的語(yǔ)言,內(nèi)置支持類型。–>站在用戶體驗(yàn)的角度設(shè)計(jì)網(wǎng)頁(yè)的交互效果

          · 2 · Html

          2.1 什么是Html?

          超文本標(biāo)記語(yǔ)言(HyperTextMarkup Lanuage,簡(jiǎn)稱:HTML)是一種用于創(chuàng)建網(wǎng)頁(yè)的標(biāo)準(zhǔn)標(biāo)記語(yǔ)言。

          文本: 就是.txt文本。

          超文本: 是一種可支持文本 、圖片、鏈接、音樂(lè)、程序的文本。

          html當(dāng)中,不存在編程語(yǔ)言的語(yǔ)法,而是充斥著各式各樣的標(biāo)簽。

          標(biāo)簽分為單標(biāo)簽和雙標(biāo)簽。例:

          <meta>-->是單標(biāo)簽
          <html></html>-->是雙標(biāo)簽。雙標(biāo)簽結(jié)尾總是以"/"開(kāi)始,表示這個(gè)標(biāo)簽的結(jié)尾。

          html運(yùn)行環(huán)境:瀏覽器 。瀏覽器是用來(lái)打開(kāi)網(wǎng)頁(yè)的。

          在瀏覽器中我們見(jiàn)到的所有的網(wǎng)頁(yè)本質(zhì)上都是一個(gè)文本,而這文本又稱之為 html。

          2.2 開(kāi)發(fā)環(huán)境

          只要你有一臺(tái)電腦,能夠正常運(yùn)行就可以了。

          一般開(kāi)發(fā)少量的網(wǎng)頁(yè),用輕量級(jí)的文本編輯器就完全足夠了。例如:sublime text3 ,notepad++ 等。

          下載鏈接:Sublime text3官網(wǎng)下載
          Notepad++官網(wǎng)下載

          如果是開(kāi)發(fā)比較大的項(xiàng)目,就用webstorm這個(gè)軟件就行了。

          如果你安裝了Emmet插件,開(kāi)發(fā)的效率會(huì)提高很多。不會(huì)安裝插件的,自己去百度一下。

          <一個(gè)前端程序猿的Sublime Text3的自我修養(yǎng)>

          這是關(guān)于sublimet text3安裝一些前端開(kāi)發(fā)的插件的博客,里面有好多的對(duì)前端開(kāi)發(fā)有用的插件。如果你有需要,可以去看一看。

          2.3 html5文檔結(jié)構(gòu)的說(shuō)明

          html5文檔聲明頭 ,想要完整的使用html5語(yǔ)法,必須使用文檔聲明頭,聲明當(dāng)前文件是html5文件。

          <html></html> 

          雙標(biāo)簽–定義html文檔內(nèi)容的結(jié)構(gòu) 所有的html文檔的內(nèi)容都需要寫在這對(duì)標(biāo)簽內(nèi)部。

          <head></head> 

          頭部–通常情況下,里面寫的內(nèi)容是對(duì)于當(dāng)前網(wǎng)頁(yè)的一些預(yù)定義信息設(shè)置。

          <body></body> 

          身體–網(wǎng)頁(yè)里面要顯示給用戶看的內(nèi)容,全部寫在body里面

          2.4 網(wǎng)頁(yè)預(yù)定義信息

          <meta charset="UTF-8">
          <meta name="author" content="李白">
          <meta name="keywords" content="key">  

          設(shè)定當(dāng)前網(wǎng)頁(yè)的編碼格式。
          meta標(biāo)簽是一個(gè)單標(biāo)簽,通過(guò)charset 屬性,將其屬性值設(shè)置為需要
          的編碼,即可為當(dāng)前的網(wǎng)頁(yè)設(shè)置編碼格式。

          seo優(yōu)化–百度會(huì)對(duì)收錄的所有的網(wǎng)站有一個(gè)評(píng)分系統(tǒng)
          評(píng)分越高,越靠前。

          <title>網(wǎng)頁(yè)標(biāo)題</title>

          通常情況下, tilte要放在meta字符集設(shè)置的下面,防止出現(xiàn)亂碼。

          <link rel="stylesheet" href="style.css"> 引入外部的css文件
          
          
          <style>
              /*css代碼*/
          </style>
          
          
          <script src="01.js"></script>
          
          
          <script>
              // js代碼
          </script>

          引入外部的js腳本文件,需要注意的是,兩個(gè)script標(biāo)簽中間不能存在任何內(nèi)容換行都不可以。

          2.5 常用的標(biāo)簽

          <hr>換行分割線
          <br>換行
          <h1>-<h6>多級(jí)標(biāo)題
          <!---->注釋

          html的標(biāo)簽還有很多,想要了解更多的自己去百度。

          在html中,一些語(yǔ)義不是太明顯的標(biāo)簽我們可以用來(lái)做掛件。

          文資料來(lái)源于

          https://github.com/qiu-deqing/FE-interview

          目前已在github獲得4700個(gè)star,在前端知識(shí)項(xiàng)目中名列第一。

          本文主要分享該項(xiàng)目中的HTML, HTTP,web綜合問(wèn)題的知識(shí)點(diǎn)及面試題部分,后續(xù)分享剩余5個(gè)章節(jié)。

          目錄

          • 前端需要注意哪些SEO
          • web開(kāi)發(fā)中會(huì)話跟蹤的方法有哪些
          • <img>的title和alt有什么區(qū)別
          • doctype是什么,舉例常見(jiàn)doctype及特點(diǎn)
          • HTML全局屬性(global attribute)有哪些
          • 什么是web語(yǔ)義化,有什么好處
          • HTTP method
          • 從瀏覽器地址欄輸入url到顯示頁(yè)面的步驟(以HTTP為例)
          • HTTP request報(bào)文結(jié)構(gòu)是怎樣的
          • HTTP response報(bào)文結(jié)構(gòu)是怎樣的
          • 如何進(jìn)行網(wǎng)站性能優(yōu)化
          • 什么是漸進(jìn)增強(qiáng)
          • HTTP狀態(tài)碼及其含義

          歡迎關(guān)注筆者,優(yōu)質(zhì)文章都在這里等你。


          常見(jiàn)排序算法的時(shí)間復(fù)雜度,空間復(fù)雜度

          前端需要注意哪些SEO

          1. 合理的title、description、keywords:搜索對(duì)著三項(xiàng)的權(quán)重逐個(gè)減小,title值強(qiáng)調(diào)重點(diǎn)即可,重要關(guān)鍵詞出現(xiàn)不要超過(guò)2次,而且要靠前,不同頁(yè)面title要有所不同;description把頁(yè)面內(nèi)容高度概括,長(zhǎng)度合適,不可過(guò)分堆砌關(guān)鍵詞,不同頁(yè)面description有所不同;keywords列舉出重要關(guān)鍵詞即可
          2. 語(yǔ)義化的HTML代碼,符合W3C規(guī)范:語(yǔ)義化代碼讓搜索引擎容易理解網(wǎng)頁(yè)
          3. 重要內(nèi)容HTML代碼放在最前:搜索引擎抓取HTML順序是從上到下,有的搜索引擎對(duì)抓取長(zhǎng)度有限制,保證重要內(nèi)容一定會(huì)被抓取
          4. 重要內(nèi)容不要用js輸出:爬蟲(chóng)不會(huì)執(zhí)行js獲取內(nèi)容
          5. 少用iframe:搜索引擎不會(huì)抓取iframe中的內(nèi)容
          6. 非裝飾性圖片必須加alt
          7. 提高網(wǎng)站速度:網(wǎng)站速度是搜索引擎排序的一個(gè)重要指標(biāo)

          web開(kāi)發(fā)中會(huì)話跟蹤的方法有哪些

          1. cookie
          2. session
          3. url重寫
          4. 隱藏input
          5. ip地址

          <img>的title和alt有什么區(qū)別

          1. title是global attributes之一,用于為元素提供附加的advisory information。通常當(dāng)鼠標(biāo)滑動(dòng)到元素上的時(shí)候顯示。
          2. alt是<img>的特有屬性,是圖片內(nèi)容的等價(jià)描述,用于圖片無(wú)法加載時(shí)顯示、讀屏器閱讀圖片。可提圖片高可訪問(wèn)性,除了純裝飾圖片外都必須設(shè)置有意義的值,搜索引擎會(huì)重點(diǎn)分析。

          doctype是什么,舉例常見(jiàn)doctype及特點(diǎn)

          1. <!doctype>聲明必須處于HTML文檔的頭部,在<html>標(biāo)簽之前,HTML5中不區(qū)分大小寫
          2. <!doctype>聲明不是一個(gè)HTML標(biāo)簽,是一個(gè)用于告訴瀏覽器當(dāng)前HTMl版本的指令
          3. 現(xiàn)代瀏覽器的html布局引擎通過(guò)檢查doctype決定使用兼容模式還是標(biāo)準(zhǔn)模式對(duì)文檔進(jìn)行渲染,一些瀏覽器有一個(gè)接近標(biāo)準(zhǔn)模型。
          4. 在HTML4.01中<!doctype>聲明指向一個(gè)DTD,由于HTML4.01基于SGML,所以DTD指定了標(biāo)記規(guī)則以保證瀏覽器正確渲染內(nèi)容
          5. HTML5不基于SGML,所以不用指定DTD

          HTML全局屬性(global attribute)有哪些

          參考資料:MDN: html global attribute或者W3C HTML global-attributes

          • accesskey:設(shè)置快捷鍵,提供快速訪問(wèn)元素如aaa在windows下的firefox中按alt + shift + a可激活元素
          • class:為元素設(shè)置類標(biāo)識(shí),多個(gè)類名用空格分開(kāi),CSS和javascript可通過(guò)class屬性獲取元素
          • contenteditable: 指定元素內(nèi)容是否可編輯
          • contextmenu: 自定義鼠標(biāo)右鍵彈出菜單內(nèi)容
          • data-*: 為元素增加自定義屬性
          • dir: 設(shè)置元素文本方向
          • draggable: 設(shè)置元素是否可拖拽
          • dropzone: 設(shè)置元素拖放類型: copy, move, link
          • hidden: 表示一個(gè)元素是否與文檔。樣式上會(huì)導(dǎo)致元素不顯示,但是不能用這個(gè)屬性實(shí)現(xiàn)樣式效果
          • id: 元素id,文檔內(nèi)唯一
          • lang: 元素內(nèi)容的的語(yǔ)言
          • spellcheck: 是否啟動(dòng)拼寫和語(yǔ)法檢查
          • style: 行內(nèi)css樣式
          • tabindex: 設(shè)置元素可以獲得焦點(diǎn),通過(guò)tab可以導(dǎo)航
          • title: 元素相關(guān)的建議信息
          • translate: 元素和子孫節(jié)點(diǎn)內(nèi)容是否需要本地化

          什么是web語(yǔ)義化,有什么好處

          web語(yǔ)義化是指通過(guò)HTML標(biāo)記表示頁(yè)面包含的信息,包含了HTML標(biāo)簽的語(yǔ)義化和css命名的語(yǔ)義化。 HTML標(biāo)簽的語(yǔ)義化是指:通過(guò)使用包含語(yǔ)義的標(biāo)簽(如h1-h6)恰當(dāng)?shù)乇硎疚臋n結(jié)構(gòu) css命名的語(yǔ)義化是指:為html標(biāo)簽添加有意義的class,id補(bǔ)充未表達(dá)的語(yǔ)義,如Microformat通過(guò)添加符合規(guī)則的class描述信息 為什么需要語(yǔ)義化:

          • 去掉樣式后頁(yè)面呈現(xiàn)清晰的結(jié)構(gòu)
          • 盲人使用讀屏器更好地閱讀
          • 搜索引擎更好地理解頁(yè)面,有利于收錄
          • 便團(tuán)隊(duì)項(xiàng)目的可持續(xù)運(yùn)作及維護(hù)

          HTTP method

          1. 一臺(tái)服務(wù)器要與HTTP1.1兼容,只要為資源實(shí)現(xiàn)GET和HEAD方法即可
          2. GET是最常用的方法,通常用于請(qǐng)求服務(wù)器發(fā)送某個(gè)資源。
          3. HEAD與GET類似,但服務(wù)器在響應(yīng)中值返回首部,不返回實(shí)體的主體部分
          4. PUT讓服務(wù)器用請(qǐng)求的主體部分來(lái)創(chuàng)建一個(gè)由所請(qǐng)求的URL命名的新文檔,或者,如果那個(gè)URL已經(jīng)存在的話,就用干這個(gè)主體替代它
          5. POST起初是用來(lái)向服務(wù)器輸入數(shù)據(jù)的。實(shí)際上,通常會(huì)用它來(lái)支持HTML的表單。表單中填好的數(shù)據(jù)通常會(huì)被送給服務(wù)器,然后由服務(wù)器將其發(fā)送到要去的地方。
          6. TRACE會(huì)在目的服務(wù)器端發(fā)起一個(gè)環(huán)回診斷,最后一站的服務(wù)器會(huì)彈回一個(gè)TRACE響應(yīng)并在響應(yīng)主體中攜帶它收到的原始請(qǐng)求報(bào)文。TRACE方法主要用于診斷,用于驗(yàn)證請(qǐng)求是否如愿穿過(guò)了請(qǐng)求/響應(yīng)鏈。
          7. OPTIONS方法請(qǐng)求web服務(wù)器告知其支持的各種功能。可以查詢服務(wù)器支持哪些方法或者對(duì)某些特殊資源支持哪些方法。
          8. DELETE請(qǐng)求服務(wù)器刪除請(qǐng)求URL指定的資源

          從瀏覽器地址欄輸入url到顯示頁(yè)面的步驟(以HTTP為例)

          1. 在瀏覽器地址欄輸入U(xiǎn)RL
          2. 瀏覽器查看緩存,如果請(qǐng)求資源在緩存中并且新鮮,跳轉(zhuǎn)到轉(zhuǎn)碼步驟
          3. 如果資源未緩存,發(fā)起新請(qǐng)求
          4. 如果已緩存,檢驗(yàn)是否足夠新鮮,足夠新鮮直接提供給客戶端,否則與服務(wù)器進(jìn)行驗(yàn)證。
          5. 檢驗(yàn)新鮮通常有兩個(gè)HTTP頭進(jìn)行控制Expires和Cache-Control:
          • HTTP1.0提供Expires,值為一個(gè)絕對(duì)時(shí)間表示緩存新鮮日期
          • HTTP1.1增加了Cache-Control: max-age=,值為以秒為單位的最大新鮮時(shí)間
          1. 瀏覽器解析URL獲取協(xié)議,主機(jī),端口,path
          2. 瀏覽器組裝一個(gè)HTTP(GET)請(qǐng)求報(bào)文
          3. 瀏覽器獲取主機(jī)ip地址,過(guò)程如下:
          4. 瀏覽器緩存
          5. 本機(jī)緩存
          6. hosts文件
          7. 路由器緩存
          8. ISP DNS緩存
          9. DNS遞歸查詢(可能存在負(fù)載均衡導(dǎo)致每次IP不一樣)
          10. 打開(kāi)一個(gè)socket與目標(biāo)IP地址,端口建立TCP鏈接,三次握手如下:
          11. 客戶端發(fā)送一個(gè)TCP的SYN=1,Seq=X的包到服務(wù)器端口
          12. 服務(wù)器發(fā)回SYN=1, ACK=X+1, Seq=Y的響應(yīng)包
          13. 客戶端發(fā)送ACK=Y+1, Seq=Z
          14. TCP鏈接建立后發(fā)送HTTP請(qǐng)求
          15. 服務(wù)器接受請(qǐng)求并解析,將請(qǐng)求轉(zhuǎn)發(fā)到服務(wù)程序,如虛擬主機(jī)使用HTTP Host頭部判斷請(qǐng)求的服務(wù)程序
          16. 服務(wù)器檢查HTTP請(qǐng)求頭是否包含緩存驗(yàn)證信息如果驗(yàn)證緩存新鮮,返回304等對(duì)應(yīng)狀態(tài)碼
          17. 處理程序讀取完整請(qǐng)求并準(zhǔn)備HTTP響應(yīng),可能需要查詢數(shù)據(jù)庫(kù)等操作
          18. 服務(wù)器將響應(yīng)報(bào)文通過(guò)TCP連接發(fā)送回瀏覽器
          19. 瀏覽器接收HTTP響應(yīng),然后根據(jù)情況選擇關(guān)閉TCP連接或者保留重用,關(guān)閉TCP連接的四次握手如下:
          20. 主動(dòng)方發(fā)送Fin=1, Ack=Z, Seq= X報(bào)文
          21. 被動(dòng)方發(fā)送ACK=X+1, Seq=Z報(bào)文
          22. 被動(dòng)方發(fā)送Fin=1, ACK=X, Seq=Y報(bào)文
          23. 主動(dòng)方發(fā)送ACK=Y, Seq=X報(bào)文
          24. 瀏覽器檢查響應(yīng)狀態(tài)嗎:是否為1XX,3XX, 4XX, 5XX,這些情況處理與2XX不同
          25. 如果資源可緩存,進(jìn)行緩存
          26. 對(duì)響應(yīng)進(jìn)行解碼(例如gzip壓縮)
          27. 根據(jù)資源類型決定如何處理(假設(shè)資源為HTML文檔)
          28. 解析HTML文檔,構(gòu)件DOM樹(shù),下載資源,構(gòu)造CSSOM樹(shù),執(zhí)行js腳本,這些操作沒(méi)有嚴(yán)格的先后順序,以下分別解釋
          29. 構(gòu)建DOM樹(shù):
          30. Tokenizing:根據(jù)HTML規(guī)范將字符流解析為標(biāo)記
          31. Lexing:詞法分析將標(biāo)記轉(zhuǎn)換為對(duì)象并定義屬性和規(guī)則
          32. DOM construction:根據(jù)HTML標(biāo)記關(guān)系將對(duì)象組成DOM樹(shù)
          33. 解析過(guò)程中遇到圖片、樣式表、js文件,啟動(dòng)下載
          34. 構(gòu)建CSSOM樹(shù):
          35. Tokenizing:字符流轉(zhuǎn)換為標(biāo)記流
          36. Node:根據(jù)標(biāo)記創(chuàng)建節(jié)點(diǎn)
          37. CSSOM:節(jié)點(diǎn)創(chuàng)建CSSOM樹(shù)
          38. 根據(jù)DOM樹(shù)和CSSOM樹(shù)構(gòu)建渲染樹(shù):
          39. 從DOM樹(shù)的根節(jié)點(diǎn)遍歷所有可見(jiàn)節(jié)點(diǎn),不可見(jiàn)節(jié)點(diǎn)包括:1)script,meta這樣本身不可見(jiàn)的標(biāo)簽。2)被css隱藏的節(jié)點(diǎn),如display: none
          40. 對(duì)每一個(gè)可見(jiàn)節(jié)點(diǎn),找到恰當(dāng)?shù)腃SSOM規(guī)則并應(yīng)用
          41. 發(fā)布可視節(jié)點(diǎn)的內(nèi)容和計(jì)算樣式
          42. js解析如下:
          43. 瀏覽器創(chuàng)建Document對(duì)象并解析HTML,將解析到的元素和文本節(jié)點(diǎn)添加到文檔中,此時(shí)document.readystate為loading
          44. HTML解析器遇到?jīng)]有async和defer的script時(shí),將他們添加到文檔中,然后執(zhí)行行內(nèi)或外部腳本。這些腳本會(huì)同步執(zhí)行,并且在腳本下載和執(zhí)行時(shí)解析器會(huì)暫停。這樣就可以用document.write()把文本插入到輸入流中。同步腳本經(jīng)常簡(jiǎn)單定義函數(shù)和注冊(cè)事件處理程序,他們可以遍歷和操作script和他們之前的文檔內(nèi)容
          45. 當(dāng)解析器遇到設(shè)置了async屬性的script時(shí),開(kāi)始下載腳本并繼續(xù)解析文檔。腳本會(huì)在它下載完成后盡快執(zhí)行,但是解析器不會(huì)停下來(lái)等它下載。異步腳本禁止使用document.write(),它們可以訪問(wèn)自己script和之前的文檔元素
          46. 當(dāng)文檔完成解析,document.readState變成interactive
          47. 所有defer腳本會(huì)按照在文檔出現(xiàn)的順序執(zhí)行,延遲腳本能訪問(wèn)完整文檔樹(shù),禁止使用document.write()
          48. 瀏覽器在Document對(duì)象上觸發(fā)DOMContentLoaded事件
          49. 此時(shí)文檔完全解析完成,瀏覽器可能還在等待如圖片等內(nèi)容加載,等這些內(nèi)容完成載入并且所有異步腳本完成載入和執(zhí)行,document.readState變?yōu)閏omplete,window觸發(fā)load事件
          50. 顯示頁(yè)面(HTML解析過(guò)程中會(huì)逐步顯示頁(yè)面)

          HTTP request報(bào)文結(jié)構(gòu)是怎樣的

          rfc2616中進(jìn)行了定義:

          1. 首行是Request-Line包括:請(qǐng)求方法,請(qǐng)求URI,協(xié)議版本,CRLF
          2. 首行之后是若干行請(qǐng)求頭,包括general-header,request-header或者entity-header,每個(gè)一行以CRLF結(jié)束
          3. 請(qǐng)求頭和消息實(shí)體之間有一個(gè)CRLF分隔
          4. 根據(jù)實(shí)際請(qǐng)求需要可能包含一個(gè)消息實(shí)體 一個(gè)請(qǐng)求報(bào)文例子如下:
          GET /Protocols/rfc2616/rfc2616-sec5.html HTTP/1.1
          Host: www.w3.org
          Connection: keep-alive
          Cache-Control: max-age=0
          Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
          User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36
          Referer: https://www.google.com.hk/
          Accept-Encoding: gzip,deflate,sdch
          Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
          Cookie: authorstyle=yes
          If-None-Match: "2cc8-3e3073913b100"
          If-Modified-Since: Wed, 01 Sep 2004 13:24:52 GMT
          name=qiu&age=25
          

          HTTP response報(bào)文結(jié)構(gòu)是怎樣的

          rfc2616中進(jìn)行了定義:

          1. 首行是狀態(tài)行包括:HTTP版本,狀態(tài)碼,狀態(tài)描述,后面跟一個(gè)CRLF
          2. 首行之后是若干行響應(yīng)頭,包括:通用頭部,響應(yīng)頭部,實(shí)體頭部
          3. 響應(yīng)頭部和響應(yīng)實(shí)體之間用一個(gè)CRLF空行分隔
          4. 最后是一個(gè)可能的消息實(shí)體 響應(yīng)報(bào)文例子如下:
          HTTP/1.1 200 OK
          Date: Tue, 08 Jul 2014 05:28:43 GMT
          Server: Apache/2
          Last-Modified: Wed, 01 Sep 2004 13:24:52 GMT
          ETag: "40d7-3e3073913b100"
          Accept-Ranges: bytes
          Content-Length: 16599
          Cache-Control: max-age=21600
          Expires: Tue, 08 Jul 2014 11:28:43 GMT
          P3P: policyref="http://www.w3.org/2001/05/P3P/p3p.xml"
          Content-Type: text/html; charset=iso-8859-1
          {"name": "qiu", "age": 25}
          

          如何進(jìn)行網(wǎng)站性能優(yōu)化

          雅虎Best Practices for Speeding Up Your Web Site:

          • content方面
          1. 減少HTTP請(qǐng)求:合并文件、CSS精靈、inline Image
          2. 減少DNS查詢:DNS查詢完成之前瀏覽器不能從這個(gè)主機(jī)下載任何任何文件。方法:DNS緩存、將資源分布到恰當(dāng)數(shù)量的主機(jī)名,平衡并行下載和DNS查詢
          3. 避免重定向:多余的中間訪問(wèn)
          4. 使Ajax可緩存
          5. 非必須組件延遲加載
          6. 未來(lái)所需組件預(yù)加載
          7. 減少DOM元素?cái)?shù)量
          8. 將資源放到不同的域下:瀏覽器同時(shí)從一個(gè)域下載資源的數(shù)目有限,增加域可以提高并行下載量
          9. 減少iframe數(shù)量
          10. 不要404
          • Server方面
          1. 使用CDN
          2. 添加Expires或者Cache-Control響應(yīng)頭
          3. 對(duì)組件使用Gzip壓縮
          4. 配置ETag
          5. Flush Buffer Early
          6. Ajax使用GET進(jìn)行請(qǐng)求
          7. 避免空src的img標(biāo)簽
          • Cookie方面
          1. 減小cookie大小
          2. 引入資源的域名不要包含cookie
          • css方面
          1. 將樣式表放到頁(yè)面頂部
          2. 不使用CSS表達(dá)式
          3. 使用不使用@import
          4. 不使用IE的Filter
          • Javascript方面
          1. 將腳本放到頁(yè)面底部
          2. 將javascript和css從外部引入
          3. 壓縮javascript和css
          4. 刪除不需要的腳本
          5. 減少DOM訪問(wèn)
          6. 合理設(shè)計(jì)事件監(jiān)聽(tīng)器
          • 圖片方面
          1. 優(yōu)化圖片:根據(jù)實(shí)際顏色需要選擇色深、壓縮
          2. 優(yōu)化css精靈
          3. 不要在HTML中拉伸圖片
          4. 保證favicon.ico小并且可緩存
          • 移動(dòng)方面
          1. 保證組件小于25k
          2. Pack Components into a Multipart Document

          什么是漸進(jìn)增強(qiáng)

          漸進(jìn)增強(qiáng)是指在web設(shè)計(jì)時(shí)強(qiáng)調(diào)可訪問(wèn)性、語(yǔ)義化HTML標(biāo)簽、外部樣式表和腳本。保證所有人都能訪問(wèn)頁(yè)面的基本內(nèi)容和功能同時(shí)為高級(jí)瀏覽器和高帶寬用戶提供更好的用戶體驗(yàn)。核心原則如下:

          • 所有瀏覽器都必須能訪問(wèn)基本內(nèi)容
          • 所有瀏覽器都必須能使用基本功能
          • 所有內(nèi)容都包含在語(yǔ)義化標(biāo)簽中
          • 通過(guò)外部CSS提供增強(qiáng)的布局
          • 通過(guò)非侵入式、外部javascript提供增強(qiáng)功能
          • end-user web browser preferences are respected

          HTTP狀態(tài)碼及其含義

          參考RFC 2616

          • 1XX:信息狀態(tài)碼
          • 100 Continue:客戶端應(yīng)當(dāng)繼續(xù)發(fā)送請(qǐng)求。這個(gè)臨時(shí)相應(yīng)是用來(lái)通知客戶端它的部分請(qǐng)求已經(jīng)被服務(wù)器接收,且仍未被拒絕。客戶端應(yīng)當(dāng)繼續(xù)發(fā)送請(qǐng)求的剩余部分,或者如果請(qǐng)求已經(jīng)完成,忽略這個(gè)響應(yīng)。服務(wù)器必須在請(qǐng)求萬(wàn)仇向客戶端發(fā)送一個(gè)最終響應(yīng)
          • 101 Switching Protocols:服務(wù)器已經(jīng)理解力客戶端的請(qǐng)求,并將通過(guò)Upgrade消息頭通知客戶端采用不同的協(xié)議來(lái)完成這個(gè)請(qǐng)求。在發(fā)送完這個(gè)響應(yīng)最后的空行后,服務(wù)器將會(huì)切換到Upgrade消息頭中定義的那些協(xié)議。
          • 2XX:成功狀態(tài)碼
          • 200 OK:請(qǐng)求成功,請(qǐng)求所希望的響應(yīng)頭或數(shù)據(jù)體將隨此響應(yīng)返回
          • 201 Created:
          • 202 Accepted:
          • 203 Non-Authoritative Information:
          • 204 No Content:
          • 205 Reset Content:
          • 206 Partial Content:
          • 3XX:重定向
          • 300 Multiple Choices:
          • 301 Moved Permanently:
          • 302 Found:
          • 303 See Other:
          • 304 Not Modified:
          • 305 Use Proxy:
          • 306 (unused):
          • 307 Temporary Redirect:
          • 4XX:客戶端錯(cuò)誤
          • 400 Bad Request:
          • 401 Unauthorized:
          • 402 Payment Required:
          • 403 Forbidden:
          • 404 Not Found:
          • 405 Method Not Allowed:
          • 406 Not Acceptable:
          • 407 Proxy Authentication Required:
          • 408 Request Timeout:
          • 409 Conflict:
          • 410 Gone:
          • 411 Length Required:
          • 412 Precondition Failed:
          • 413 Request Entity Too Large:
          • 414 Request-URI Too Long:
          • 415 Unsupported Media Type:
          • 416 Requested Range Not Satisfiable:
          • 417 Expectation Failed:
          • 5XX: 服務(wù)器錯(cuò)誤
          • 500 Internal Server Error:
          • 501 Not Implemented:
          • 502 Bad Gateway:
          • 503 Service Unavailable:
          • 504 Gateway Timeout:
          • 505 HTTP Version Not Supported:

          您的轉(zhuǎn)發(fā)+關(guān)注就是對(duì)筆者最大的支持,歡迎關(guān)注。

          對(duì)大廠架構(gòu)設(shè)計(jì),BAT等廠家面試題解讀,編程語(yǔ)言理論或者互聯(lián)網(wǎng)圈逸聞趣事這些感興趣,歡迎關(guān)注筆者,沒(méi)有錯(cuò),干貨文章都在這里。

          企業(yè)網(wǎng)站提起HTML5大家都不陌生,作為一個(gè)新興的前端開(kāi)發(fā)語(yǔ)言,HTML5已經(jīng)被大量應(yīng)用到各個(gè)領(lǐng)域,通過(guò)HTML5技術(shù)制作完成的網(wǎng)頁(yè),可以是單純針對(duì)PC端,也已單獨(dú)適配移動(dòng)端,更能做成時(shí)下最流行的響應(yīng)式網(wǎng)站,也就是可以根據(jù)訪問(wèn)設(shè)備的不同,自動(dòng)適應(yīng)屏幕的寬度來(lái)改變頁(yè)面中的元素樣式,鄭州建站網(wǎng)通過(guò)頁(yè)面中的必要元素標(biāo)簽,為大家講解HTML5網(wǎng)站建設(shè)的解決方案。

          第一點(diǎn):網(wǎng)站頭部設(shè)計(jì)
          網(wǎng)站頭部標(biāo)簽的作用是在頁(yè)面的開(kāi)端加入一個(gè)用以介紹整個(gè)頁(yè)面內(nèi)容的信息容器,一般網(wǎng)頁(yè)的名稱、簡(jiǎn)介內(nèi)容、關(guān)鍵詞、版權(quán)信息等元素均會(huì)出現(xiàn)了網(wǎng)頁(yè)頭部,技術(shù)層面上,在網(wǎng)頁(yè)頭部還要表示出該頁(yè)面采用的制作語(yǔ)言,例如是HTML5還是較為陳舊的HTML4,目的是讓訪問(wèn)端的瀏覽器使用與之對(duì)應(yīng)的頁(yè)面渲染方式。

          第二點(diǎn):網(wǎng)站導(dǎo)航欄的設(shè)計(jì)
          網(wǎng)站的導(dǎo)航元素作用就是承載了對(duì)于訪客的瀏覽指導(dǎo)作用,導(dǎo)航中的內(nèi)容是直接循環(huán)于網(wǎng)站的一級(jí)欄目,當(dāng)然也有特例,在導(dǎo)航中出現(xiàn)的鏈接內(nèi)容只是整個(gè)頁(yè)面中所有鏈接的一小部分,但在設(shè)計(jì)角度上,導(dǎo)航中出現(xiàn)的內(nèi)容應(yīng)是整個(gè)網(wǎng)站中權(quán)重最高的。


          第三點(diǎn):網(wǎng)站的文章內(nèi)容設(shè)計(jì)
          網(wǎng)站的文章標(biāo)簽承載了整個(gè)網(wǎng)頁(yè)中最重要的內(nèi)容傳遞作用,頁(yè)面中的主要信息均會(huì)在此展示,當(dāng)然內(nèi)容不僅限于文章,也有可能是圖集、圖文或視頻等,對(duì)于該部分的元素,HTML5也增加可用標(biāo)簽,意指讓頁(yè)面內(nèi)容更加合理,其中就包括下面內(nèi)容中會(huì)提到的部件和側(cè)邊兩個(gè)元素標(biāo)簽。


          第四點(diǎn):網(wǎng)頁(yè)中小部件的使用
          與我們更加熟悉的div標(biāo)簽相比,部件標(biāo)簽(section)對(duì)于瀏覽器和搜索引擎來(lái)說(shuō)是具有指導(dǎo)意義的,一般情況下會(huì)用于文章內(nèi)容中的標(biāo)題、編號(hào)等內(nèi)容,最大的好處就是,讓整個(gè)頁(yè)面中的內(nèi)容排列的更加有序,邏輯清晰。


          第五點(diǎn):網(wǎng)頁(yè)布局的側(cè)邊設(shè)計(jì)
          側(cè)邊標(biāo)簽中的內(nèi)容并不是整個(gè)頁(yè)面中的主題,而是對(duì)主體內(nèi)容起到補(bǔ)充或解釋說(shuō)明的作用,在HTML5語(yǔ)言廣泛應(yīng)用之前,對(duì)于頁(yè)面中此類元素,不同的前端工程師在標(biāo)簽的使用上有著不同的習(xí)慣,基于HTML5開(kāi)發(fā)的樣式中,此類情況得到了合理的統(tǒng)一。


          第六點(diǎn):網(wǎng)站底部設(shè)計(jì)
          此元素的內(nèi)容是包含更多關(guān)于他的父元素的內(nèi)容。footer置于body之后將可以提供有關(guān)該頁(yè)面的其他的信息內(nèi)容。例如網(wǎng)站建設(shè)著的一些信息,相關(guān)文章的鏈接或者版權(quán)信息等等。此元素也可以被被應(yīng)用于body之中不同的段中,可以給頁(yè)面中不同段一些特定的其他信息。底部元素作用是將那些不適合在body中出現(xiàn)的內(nèi)容展示在頁(yè)面上,例如文章內(nèi)容的版權(quán)信息、頁(yè)面底部的內(nèi)容導(dǎo)航、網(wǎng)站的ICP備案信息以及友情鏈接信息等,在HTML5版本之上,也增加了在底部?jī)?nèi)容中專用的標(biāo)簽,供開(kāi)發(fā)者使用。


          主站蜘蛛池模板: 亚洲日韩精品国产一区二区三区| 色精品一区二区三区| 秋霞午夜一区二区| 国产成人一区二区三区在线观看 | 亚洲AV网一区二区三区| 国产伦一区二区三区高清| 中文字幕亚洲综合精品一区| 日本一区二区在线不卡| 大香伊人久久精品一区二区| 制服丝袜一区二区三区| 日韩一区在线视频| 亚洲一区二区三区无码国产| 亚洲一区二区三区在线观看精品中文 | 亚洲午夜一区二区电影院| 本免费AV无码专区一区| 一区二区在线免费观看| 不卡一区二区在线| 国产精品亚洲一区二区无码| 中文精品一区二区三区四区| 国产成人精品一区二区三区免费| 国产成人综合精品一区| 日韩一区二区三区视频久久| 怡红院AV一区二区三区| 天堂一区二区三区精品| 无码囯产精品一区二区免费 | 精品国产一区二区三区www| 无码人妻少妇色欲AV一区二区| 久久久99精品一区二区| jazzjazz国产精品一区二区| 国产乱码精品一区二区三区四川| 国产精品小黄鸭一区二区三区 | 精品日韩在线视频一区二区三区 | 视频在线观看一区二区三区| 国产手机精品一区二区| 久久精品无码一区二区WWW| 3d动漫精品一区视频在线观看| 无码日韩精品一区二区三区免费| 亚洲熟女一区二区三区| 日本一区二区免费看| 无码aⅴ精品一区二区三区浪潮 | 人妻AV中文字幕一区二区三区 |