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 你懂的在线免费视频,欧美日韩综合网,亚洲1区2区3区4区

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

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

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

          說(shuō)一說(shuō)從 URL 輸入到頁(yè)面呈現(xiàn)到底發(fā)生了什么?

          這是面試過(guò)程中一道高頻考題。

          從面試官的角度思考:

          • 出現(xiàn)頻繁,可能是因?yàn)槊嬖嚬偻ǔO矚g問(wèn)一些考察可深可淺的題目
          • 很多面試官喜歡根據(jù)我們應(yīng)聘者的考題回答中,甚至我們隨口說(shuō)到的知識(shí)點(diǎn),繼續(xù)追問(wèn)

          基本回答:

          • 瀏覽器解析 URL 獲取協(xié)議,主機(jī),端口, path
          • 瀏覽器獲取主機(jī) IP 地址
          • 建立 TCP 連接,然后發(fā)送 HTTP 請(qǐng)求
          • 服務(wù)器將響應(yīng)報(bào)文通過(guò) TCP 連接發(fā)送回瀏覽器,瀏覽器接受 HTTP 響應(yīng),根據(jù)資源類(lèi)型決定如何處理(假設(shè)資源為 HTML 文檔)
          • 解析 HTML 文檔,構(gòu)件 DOM 樹(shù),下載資源,構(gòu)造 CSSOM 樹(shù),執(zhí)行 js 腳本,最后展現(xiàn)出來(lái)給用戶(hù)

          如果應(yīng)聘者只回答了上述步驟,很多關(guān)鍵步驟(前端應(yīng)該了解的知識(shí)點(diǎn))沒(méi)有提及,很有可能達(dá)不到面試官想要的回答效果。

          筆者針對(duì)一些關(guān)鍵步驟,具體展開(kāi)說(shuō)明。讓這道題成為我們面試考卷中的加分項(xiàng)

          網(wǎng)絡(luò)請(qǐng)求

          構(gòu)建請(qǐng)求

          瀏覽器會(huì)構(gòu)建請(qǐng)求行:

          // 請(qǐng)求方法是 GET,路徑為根路徑,HTTP 協(xié)議版本為 1.1
          GET / HTTP/1.1
          復(fù)制代碼

          然后根據(jù) Cache-control 和 Expires 字段,檢查強(qiáng)緩存,如果命中直接使用,否則進(jìn)入下一步。關(guān)于強(qiáng)緩存,如果不清楚可以參考下圖:

          DNS 解析

          由于我們輸入的是域名,而數(shù)據(jù)包是通過(guò) IP 地址傳給對(duì)方的。因此我們需要得到域名對(duì)應(yīng)的 IP 地址。這個(gè)過(guò)程需要依賴(lài)一個(gè)服務(wù)系統(tǒng),這個(gè)系統(tǒng)將域名和 IP 一一映射,我們將這個(gè)系統(tǒng)就叫做 DNS (域名系統(tǒng))。

          DNS 協(xié)議提供通過(guò)域名查找 IP 地址,或逆向從 IP 地址反查域名的服務(wù)。得到具體 IP 的過(guò)程就是 DNS 解析。

          DNS 是一個(gè)網(wǎng)絡(luò)服務(wù)器,我們的域名解析簡(jiǎn)單來(lái)說(shuō)就是在 DNS 上記錄一條信息記錄。

          例如 baidu.com 220.114.23.56(服務(wù)器外網(wǎng)IP地址)80(服務(wù)器端口號(hào))
          復(fù)制代碼

          瀏覽器通過(guò)域名去查詢(xún) URL 對(duì)應(yīng)的 IP :

          • 瀏覽器緩存:瀏覽器會(huì)按照一定的頻率緩存 DNS 記錄
          • 操作系統(tǒng)緩存:如果瀏覽器緩存中找不到需要的 DNS 記錄,那就去操作系統(tǒng)中找
          • 路由緩存:路由器也有 DNS 緩存
          • ISP 的 DNS 服務(wù)器:ISP 是互聯(lián)網(wǎng)服務(wù)提供商( Internet Service Provider )的簡(jiǎn)稱(chēng),ISP 有專(zhuān)門(mén)的 DNS 服務(wù)器應(yīng)對(duì) DNS 查詢(xún)請(qǐng)求
          • 根服務(wù)器:ISP 的 DNS 服務(wù)器還找不到的話,它就會(huì)向根服務(wù)器發(fā)出請(qǐng)求,進(jìn)行遞歸查詢(xún)(DNS 服務(wù)器先問(wèn)根域名服務(wù)器 .com 域名服務(wù)器的 IP 地址,然后再問(wèn) .baidu 域名服務(wù)器,依次類(lèi)推)

          建立 TCP 連接

          TCP 三次握手的過(guò)程如下:

          • 客戶(hù)端發(fā)送一個(gè)帶 SYN=1,Seq=X 的數(shù)據(jù)包到服務(wù)器端口(第一次握手,由瀏覽器發(fā)起,告訴服務(wù)器我要發(fā)送請(qǐng)求了)
          • 服務(wù)器發(fā)回一個(gè)帶 SYN=1, ACK=X+1, Seq=Y 的響應(yīng)包以示傳達(dá)確認(rèn)信息(第二次握手,由服務(wù)器發(fā)起,告訴瀏覽器我準(zhǔn)備接受了,你趕緊發(fā)送吧)
          • 客戶(hù)端再回傳一個(gè)帶 ACK=Y+1, Seq=Z 的數(shù)據(jù)包,代表“握手結(jié)束”(第三次握手,由瀏覽器發(fā)送,告訴服務(wù)器,我馬上就發(fā)了,準(zhǔn)備接受吧)

          謝希仁著《計(jì)算機(jī)網(wǎng)絡(luò)》中講“三次握手”的目的是“為了防止已失效的連接請(qǐng)求報(bào)文段突然又傳送到了服務(wù)端,因而產(chǎn)生錯(cuò)誤”。

          發(fā)送 HTTP 請(qǐng)求

          現(xiàn)在 TCP 連接建立完畢,瀏覽器可以和服務(wù)器開(kāi)始通信,即開(kāi)始發(fā)送 HTTP 請(qǐng)求。瀏覽器發(fā) HTTP 請(qǐng)求要攜帶三樣?xùn)|西:請(qǐng)求行請(qǐng)求頭請(qǐng)求體

          1.請(qǐng)求行包含請(qǐng)求方法、URL、協(xié)議版本

          • 請(qǐng)求方法包含 8 種:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE
          • URL 即請(qǐng)求地址,由 <協(xié)議>://<主機(jī)>:<端口>/<路徑>?<參數(shù)> 組成
          • 協(xié)議版本即 HTTP 版本號(hào)
          POST /user.html HTTP/1.1
          復(fù)制代碼

          2.請(qǐng)求頭包含請(qǐng)求的附加信息,由關(guān)鍵字/值對(duì)組成,如下

          // 服務(wù)器可以接受的文件格式
          Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng;q=0.8,application/signed-exchange;v=b3
          // 指定瀏覽器可以支持的 Web 服務(wù)器返回的內(nèi)容壓縮編碼類(lèi)型
          Accept-Encoding: gzip, deflate, br
          // 瀏覽器支持的語(yǔ)言
          Accept-Language: zh-CN,zh;q=0.9
          // 緩存機(jī)制
          Cache-Control: no-cache
          // 是否需要持久連接
          Connection: keep-alive
          // 發(fā)送該請(qǐng)求域名下所有 Cookie 值到服務(wù)器
          Cookie: /* 省略cookie信息 */
          // 指定請(qǐng)求的服務(wù)器的域名和端口號(hào)
          Host: www.baidu.com
          Pragma: no-cache
          Upgrade-Insecure-Requests: 1
          // 用戶(hù)代理 UA,包含發(fā)出請(qǐng)求的用戶(hù)信息
          User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1
          
          復(fù)制代碼

          3.請(qǐng)求體,可以承載多個(gè)請(qǐng)求參數(shù)的數(shù)據(jù),包含回車(chē)符、換行符和請(qǐng)求數(shù)據(jù),一般在 POST 方法下存在。

          網(wǎng)絡(luò)響應(yīng)

          跟請(qǐng)求部分類(lèi)似,網(wǎng)絡(luò)響應(yīng)具有三個(gè)部分:響應(yīng)行響應(yīng)頭響應(yīng)體

          1.響應(yīng)行包含:協(xié)議版本,狀態(tài)碼,狀態(tài)碼描述

          HTTP/1.1 200 OK
          復(fù)制代碼

          狀態(tài)碼規(guī)則如下:

          • 1xx:指示信息--表示請(qǐng)求已接收,繼續(xù)處理
          • 2xx:成功--表示請(qǐng)求已被成功接收、理解、接受
          • 3xx:重定向--要完成請(qǐng)求必須進(jìn)行更進(jìn)一步的操作
          • 4xx:客戶(hù)端錯(cuò)誤--請(qǐng)求有語(yǔ)法錯(cuò)誤或請(qǐng)求無(wú)法實(shí)現(xiàn)
          • 5xx:服務(wù)器端錯(cuò)誤--服務(wù)器未能實(shí)現(xiàn)合法的請(qǐng)求

          2.響應(yīng)頭部包含響應(yīng)報(bào)文的附加信息,由 名/值 對(duì)組成,如下:

          // 緩存機(jī)制
          Cache-Control: no-cache
          Connection: keep-alive
          Content-Encoding: gzip
          // 表示具體請(qǐng)求中的媒體類(lèi)型信息,決定瀏覽器將以什么形式、什么編碼讀取這個(gè)文件
          Content-Type: text/html;charset=utf-8
          // 原始服務(wù)器消息發(fā)出的時(shí)間
          Date: Wed, 04 Dec 2019 12:29:13 GMT
          // Web 服務(wù)器軟件名稱(chēng)
          Server: apache
          // 由服務(wù)器端向客戶(hù)端發(fā)送 cookie
          Set-Cookie: rsv_i=f9a0SIItKqzv7kqgAAgphbGyRts3RwTg%2FLyU3Y5Eh5LwyfOOrAsvdezbay0QqkDqFZ0DfQXby4wXKT8Au8O7ZT9UuMsBq2k; path=/; domain=.baidu.com復(fù)制代碼

          這里注意下 Set-Cookie 中關(guān)于網(wǎng)絡(luò)安全方面的兩個(gè)值:HttpOnly、SameSite

          設(shè)置了 HttpOnly 屬性的 cookie 不能使用 JavaScript 經(jīng)由 Document.cookie 屬性、XMLHttpRequest 和 Request APIs 進(jìn)行訪問(wèn),以防范跨站腳本攻擊(XSS)。

          SameSite=Lax 允許服務(wù)器設(shè)定一則 cookie 不隨著跨域請(qǐng)求一起發(fā)送,這樣可以在一定程度上防范跨站請(qǐng)求偽造攻擊(CSRF)。

          3.響應(yīng)主體包含回車(chē)符、換行符和響應(yīng)返回?cái)?shù)據(jù),并不是所有響應(yīng)報(bào)文都有響應(yīng)數(shù)據(jù)

          響應(yīng)完成之后要判斷 Connection 字段,如果請(qǐng)求頭或響應(yīng)頭中包含 Connection: Keep-Alive ,表示建立了持久連接,這樣 TCP 連接會(huì)一直保持,之后請(qǐng)求統(tǒng)一站點(diǎn)的資源會(huì)復(fù)用這個(gè)連接。 否則斷開(kāi) TCP 連接, 請(qǐng)求-響應(yīng)流程結(jié)束。

          總結(jié)瀏覽器端的網(wǎng)絡(luò)請(qǐng)求過(guò)程:

          瀏覽器解析渲染頁(yè)面

          瀏覽器解析渲染頁(yè)面分為以下五個(gè)步驟:

          • 根據(jù) HTML 解析出 DOM 樹(shù)
          • 根據(jù) CSS 解析生成 CSS 規(guī)則樹(shù)
          • 結(jié)合 DOM 樹(shù)和 CSS 規(guī)則樹(shù),生成渲染樹(shù)
          • 根據(jù)渲染樹(shù)計(jì)算每一個(gè)節(jié)點(diǎn)的信息
          • 根據(jù)計(jì)算好的信息繪制頁(yè)面

          回流時(shí),以上流程會(huì)重新走一遍。重繪時(shí),會(huì)重新計(jì)算樣式,跳過(guò)中間步驟直接生成繪制列表。可見(jiàn),重繪不一定導(dǎo)致回流,但回流一定發(fā)生了重繪。

          構(gòu)建 DOM 樹(shù)

          • HTML 語(yǔ)法定義HTML 的詞匯與句法定義在 w3c 組織創(chuàng)建的規(guī)范中。當(dāng)前版本是 HTML4 , HTML5 的工作正在進(jìn)行中。
          • 不是上下文無(wú)關(guān)語(yǔ)法在對(duì)解析器的介紹中看到,語(yǔ)法可以用類(lèi)似 BNF 的格式規(guī)范地定義。不幸的是所有常規(guī)解析器的討論都不適用于 HTML (我提及它們并不是為了娛樂(lè),它們可以用于解析 CSS 和 JavaScript )。HTML 無(wú)法用解析器所需的上下文無(wú)關(guān)的語(yǔ)法來(lái)定義。過(guò)去 HTML 格式規(guī)范由 DTD ( Document Type Definition ) 來(lái)定義,但它不是一個(gè)上下文無(wú)關(guān)語(yǔ)法。HTML 與 XML 相當(dāng)接近。XML 有許多可用的解析器。HTML 還有一個(gè) XML 變種叫 XHTML ,那么它們主要區(qū)別在哪里呢?區(qū)別在于 HTML 應(yīng)用更加”寬容”,它容許你漏掉一些開(kāi)始或結(jié)束標(biāo)簽等。它整個(gè)是一個(gè)“軟”句法,不像 XML 那樣嚴(yán)格死板。 總的來(lái)說(shuō)這一看似細(xì)微的差別造成了兩個(gè)不同的世界。一方面這使得 HTML 很流行,因?yàn)樗菽愕腻e(cuò)誤,使網(wǎng)頁(yè)作者的生活變得輕松。另一方面,它使編寫(xiě)語(yǔ)法格式變得困難。所以綜合來(lái)說(shuō),HTML 解析并不簡(jiǎn)單,現(xiàn)成的上下文相關(guān)解析器搞不定,XML 解析器也不行。
          • 解析算法標(biāo)記化建樹(shù)對(duì)應(yīng)的兩個(gè)過(guò)程就是分詞和語(yǔ)法分析(參考Babel 編譯的解析過(guò)程)。這里舉例重點(diǎn)介紹下 HTML5 的容錯(cuò)機(jī)制:使用 </br> 而不是 <br>if (t->isCloseTag(brTag) && m_document->inCompatMode()) {
            reportError(MalformedBRError);
            t->beginTag = true;
            }
            復(fù)制代碼全部換為 <br> 的形式。表格離散<table>
            <table>
            <tr><td>inner table</td></tr>
            </table>
            <tr><td>outer table</td></tr>
            </table>
            復(fù)制代碼WebKit 會(huì)自動(dòng)轉(zhuǎn)換為:<table>
            <tr><td>outer table</td></tr>
            </table>
            <table>
            <tr><td>inner table</td></tr>
            </table>
            復(fù)制代碼表單元素嵌套這時(shí)候直接忽略里面的 form 。

          樣式計(jì)算

          CSS 樣式來(lái)源一般為三種:

          • link 標(biāo)簽引用
          • style 標(biāo)簽中樣式
          • 元素內(nèi)嵌 style 屬性
          格式化樣式表

          瀏覽器無(wú)法直接識(shí)別 CSS 樣式文本,這里渲染引擎接收到 CSS 文本之后將其轉(zhuǎn)化為一個(gè)結(jié)構(gòu)化的對(duì)象,即 styleSheets 。

          可以在瀏覽器控制臺(tái)輸入 document.styleSheets 來(lái)查看這個(gè)最終結(jié)構(gòu)(包含上述三種 CSS 來(lái)源)。

          標(biāo)準(zhǔn)化樣式屬性

          有一些渲染引擎不容易直接理解的 CSS 樣式數(shù)值,需要在計(jì)算樣式之前將它們標(biāo)準(zhǔn)化。如:em -> px,red -> #ff0000,bold -> 700 等等。

          計(jì)算每個(gè)節(jié)點(diǎn)的具體樣式

          計(jì)算具體樣式主要遵循兩個(gè)規(guī)則:繼承層疊

          • 繼承:每個(gè)子節(jié)點(diǎn)都會(huì)默認(rèn)繼承父節(jié)點(diǎn)的樣式屬性,如果父節(jié)點(diǎn)中沒(méi)有找到,就采用瀏覽器默認(rèn)樣式,也叫 UserAgent樣式。
          • 層疊:CSS 的層疊性體現(xiàn)在,最終的樣式取決與各個(gè)屬性共同作用的結(jié)果。

          計(jì)算完樣式之后,所有樣式值會(huì)被掛載到 window.getComputedStyle 中,也就是可以通過(guò) JS 獲取計(jì)算后的樣式。

          生成布局樹(shù)

          布局樹(shù)生成主要分兩部:

          • 遍歷生成的 DOM 樹(shù)節(jié)點(diǎn),并把它們添加到布局樹(shù)中
          • 計(jì)算布局樹(shù)節(jié)點(diǎn)的坐標(biāo)位置

          布局樹(shù)只包含可見(jiàn)元素,對(duì)于 head 標(biāo)簽和設(shè)置了 display: none 的元素將不會(huì)被放入其中。

          如果想了解布局的細(xì)節(jié),可以讀一讀人人 FED 團(tuán)隊(duì)的文章從Chrome源碼看瀏覽器如何layout布局。

          構(gòu)建圖層樹(shù)

          這里分兩種情況,一種是顯式合成,一種是隱式合成

          顯式合成

          一、擁有層疊上下文的節(jié)點(diǎn)

          層疊上下文也基本上是有一些特定的 CSS 屬性創(chuàng)建的,一般有以下情況:

          1. HTML 根元素本身就具有層疊上下文
          2. 普通元素設(shè)置 position 不為 static 并且設(shè)置了 z-index 屬性,會(huì)產(chǎn)生層疊上下文
          3. 元素的 opacity 值不是 1
          4. 元素的 transform 值不是 none
          5. 元素的 filter 值不是 none
          6. 元素的 isolation 值是 isolate
          7. will-change 指定的屬性值為上面任意一個(gè)

          二、需要剪裁的地方

          比如一個(gè) div,你只給他設(shè)置 100 * 100 像素的大小,而你在里面放了非常多的文字,那么超出的文字部分就需要被剪裁。當(dāng)然如果出現(xiàn)了滾動(dòng)條,那么滾動(dòng)條會(huì)被單獨(dú)提升為一個(gè)圖層。

          隱式合成

          簡(jiǎn)單說(shuō)就是層疊等級(jí)低的節(jié)點(diǎn)被提升為單獨(dú)的圖層之后,那么所有層疊等級(jí)比它高的節(jié)點(diǎn)都會(huì)成為一個(gè)單獨(dú)的圖層。

          這個(gè)隱式合成其實(shí)隱藏著巨大風(fēng)險(xiǎn),如果在一個(gè)大型應(yīng)用中,當(dāng)一個(gè) z-index 比較低的元素被提升為單獨(dú)圖層之后,層疊在它上面的元素統(tǒng)統(tǒng)會(huì)被提升為單獨(dú)的圖層,可能會(huì)增加上千個(gè)圖層,大大增加內(nèi)存壓力,甚至直接讓頁(yè)面崩潰。這就是層爆炸的原理

          當(dāng)需要 repaint 時(shí),只需要 repaint 本身,而不會(huì)影響到其他層。

          生成繪制列表

          渲染引擎會(huì)將圖層的繪制拆分成一個(gè)個(gè)繪制指令,比如先畫(huà)背景、再描繪邊框......然后將這些指令按順序組合成一個(gè)待繪制列表。

          大家可以 F12 打開(kāi) Chrome 開(kāi)發(fā)者工具,在設(shè)置欄展開(kāi) more tools ,然后選擇 Layers 面板,就能看到繪制列表了。

          后面就是渲染進(jìn)程的主線程把繪制列表提交給合成線程。然后合成線程選擇視口附近的圖塊,把它交給柵格化線程池生成位圖。

          柵格化操作完成后,合成線程會(huì)生成一個(gè)繪制指令 DrawQuad,并發(fā)送給瀏覽器進(jìn)程。瀏覽器進(jìn)程中的 viz 組件 接收到命令,把頁(yè)面內(nèi)容繪制到內(nèi)存,也就是生成了頁(yè)面。

          斷開(kāi)連接

          當(dāng)數(shù)據(jù)傳送完畢,需要斷開(kāi) TCP 連接,此時(shí)發(fā)起四次揮手。

          • 發(fā)起方往被動(dòng)方發(fā)送報(bào)文,F(xiàn)in、Ack、Seq,表示已經(jīng)沒(méi)有數(shù)據(jù)傳輸了。并進(jìn)入 FIN_WAIT_1 狀態(tài)。(請(qǐng)求報(bào)文發(fā)送完成)
          • 被動(dòng)方發(fā)送報(bào)文,Ack、Seq,表示同意關(guān)閉請(qǐng)求。此時(shí)主機(jī)發(fā)起方進(jìn)入 FIN_WAIT_2 狀態(tài)。(請(qǐng)求報(bào)文接受完成)
          • 被動(dòng)方向發(fā)起方發(fā)送報(bào)文段,F(xiàn)in、Ack、Seq,請(qǐng)求關(guān)閉連接。并進(jìn)入 LAST_ACK 狀態(tài)。(響應(yīng)報(bào)文發(fā)送完成)
          • 發(fā)起方向被動(dòng)方發(fā)送報(bào)文段,Ack、Seq。然后進(jìn)入等待 TIME_WAIT 狀態(tài)。被動(dòng)方收到發(fā)起方的報(bào)文段以后關(guān)閉連接。發(fā)起方等待一定時(shí)間未收到回復(fù),則正常關(guān)閉。(響應(yīng)報(bào)文接受完成)

          參考文章

          • 從URL輸入到頁(yè)面展現(xiàn)到底發(fā)生什么?
          • (1.6w字)瀏覽器靈魂之問(wèn),請(qǐng)問(wèn)你能接得住幾個(gè)?
          • 大揭秘!“恐怖”的阿里一面,我究竟想問(wèn)什么

          感謝

          如果本文對(duì)你有幫助,就點(diǎn)個(gè)贊支持下吧!感謝閱讀。


          來(lái)源:掘金-推薦

          動(dòng)端應(yīng)用到底需要做SEO嗎?答案很重要。隨著智能手機(jī)的出現(xiàn),越來(lái)越多的人使用智能手機(jī)進(jìn)行搜索。交通意味著一切。很多人會(huì)在零碎的時(shí)間內(nèi)使用手機(jī)來(lái)滿足他們的搜索和查詢(xún)需求。如果移動(dòng)網(wǎng)站搜索引擎優(yōu)化做得不錯(cuò),這意味著他們可以分享流量紅利。所以手機(jī)上的seo非常重要。

          如何做手機(jī)站SEO?移動(dòng)站定位和頁(yè)面設(shè)計(jì)移動(dòng)站和PC站除了頁(yè)面大小,顯示形式不同,在分析用戶(hù)需求時(shí)都要做。例如,對(duì)于一個(gè)地方裝修網(wǎng)站,PC站是重點(diǎn)展示裝修效果的圖紙案例、裝修報(bào)價(jià)和公司裝修設(shè)計(jì)師的風(fēng)度,所以移動(dòng)站應(yīng)該重點(diǎn)關(guān)注公司的聯(lián)系人、地圖、電話等。移動(dòng)網(wǎng)站需要”及時(shí)、快速“。同時(shí),考慮到網(wǎng)站的反應(yīng)速度,整個(gè)頁(yè)面應(yīng)該用DIV CSS代碼編寫(xiě)。不要為了方便而使用flash或js,所以搜索引擎很難掌握。還有許多移動(dòng)瀏覽器不支持Flash播放。你需要單獨(dú)安裝手機(jī)falsh插件,但是為什么用戶(hù)有那么多時(shí)間等待呢?

          移動(dòng)站應(yīng)簡(jiǎn)潔,用戶(hù)瀏覽量大的手機(jī)內(nèi)容,或者屏幕大一些,在平板電腦上瀏覽,但不大于普通電腦屏幕,所以移動(dòng)站頁(yè)面應(yīng)更簡(jiǎn)潔,特別是對(duì)于有下載需求的網(wǎng)站,移動(dòng)站上的下載按鈕應(yīng)為CLE。Arly放在用戶(hù)面前。用戶(hù)知道在哪里單擊以查找所需的內(nèi)容。還有一點(diǎn),內(nèi)容頁(yè)面不應(yīng)該太長(zhǎng),因?yàn)橛檬謾C(jī)瀏覽網(wǎng)站的用戶(hù),時(shí)間非常緊迫,而且有些還在騎行過(guò)程中,流量和網(wǎng)絡(luò)速度是一個(gè)大問(wèn)題,所以一個(gè)問(wèn)題可以用一句話一張圖來(lái)解決,不要講太長(zhǎng)的故事。

          對(duì)于商場(chǎng)的移動(dòng)支付,除了以上幾點(diǎn)之外,最重要的支付頁(yè)面必須簡(jiǎn)單化。這可以參考京東和淘寶,他們的支付頁(yè)面做得很好。移動(dòng)臺(tái)應(yīng)該簡(jiǎn)單大方。

          移動(dòng)臺(tái)應(yīng)禁止使用彈窗(必須禁止)彈窗。PC站的用戶(hù)已經(jīng)夠煩躁了。如果在像手機(jī)或平板電腦這樣的地方做了一個(gè)子彈窗,用戶(hù)會(huì)說(shuō)不出話來(lái):”我們進(jìn)來(lái)吧,但這并不能讓我們輕松地看到它。“哪種網(wǎng)絡(luò)語(yǔ)言更適合移動(dòng)臺(tái)?這一點(diǎn)我在之前的移動(dòng)網(wǎng)站優(yōu)化教程中已經(jīng)討論過(guò),詳細(xì)分析了HTML4和HTML5作為移動(dòng)站的區(qū)別。

          URL路徑必須標(biāo)準(zhǔn)化為移動(dòng)站。不要使用列表頁(yè)面來(lái)節(jié)省空間成本,也不要購(gòu)買(mǎi)新的空間。最好使用單獨(dú)的輔助域名作為移動(dòng)站。表單為m.xxx.com或wap.xx.com。

          PC站和移動(dòng)站做開(kāi)放匹配,我的裝修網(wǎng)站,移動(dòng)站,在線后只有針對(duì)性的更新內(nèi)容,一個(gè)外鏈不存在,現(xiàn)在大部分的主要關(guān)鍵字都排在主頁(yè)上,最重要的原因是我的移動(dòng)站做了開(kāi)放匹配。

          如果你不知道如何做開(kāi)放匹配,你可以在我的博客的移動(dòng)網(wǎng)站優(yōu)化部分看到如何做開(kāi)放匹配,這是以視頻的形式顯示的,一步一步地教你如何做開(kāi)放匹配。關(guān)于機(jī)器人、地圖、關(guān)鍵字設(shè)置等問(wèn)題,與PC站是一樣的,PC站怎么辦,移動(dòng)站怎么辦。手機(jī)站首頁(yè)的標(biāo)題只能寫(xiě)公司品牌的文字,也可以和PC站的標(biāo)題相同,這是沒(méi)有危害的 。

          5和html5是一個(gè)東西嗎?它們有什么區(qū)別?

          前幾天看到有同學(xué)問(wèn)“H5和html5是一個(gè)東西嗎?它們有什么區(qū)別?”

          有網(wǎng)友回答說(shuō)“H5和html5就像ps和photoshop一樣,h5更厲害一點(diǎn)兒”

          這個(gè)機(jī)智的回答我真的是看笑了~

          H5是html5的簡(jiǎn)稱(chēng)?

          很多人都以為H5是html5的簡(jiǎn)稱(chēng),符合 HTML5 標(biāo)準(zhǔn)實(shí)現(xiàn)的頁(yè)面,大家為了方便,簡(jiǎn)稱(chēng) H5“。百度和搜狗百科上的答案也似乎是這樣——H5(HTML5)”一般是指“html5,但是真的是這樣的嗎? 當(dāng)連續(xù)有人問(wèn)相關(guān)的問(wèn)題,并詳細(xì)了解一些業(yè)務(wù)以后,慢慢的發(fā)現(xiàn) H5 已經(jīng)不單單是一個(gè)技術(shù)相關(guān)的詞。

          H5不等于HTML5

          按照百度百科理解來(lái)說(shuō):“符合 HTML5 標(biāo)準(zhǔn)實(shí)現(xiàn)的頁(yè)面就是 H5頁(yè)面”,那么當(dāng)前互聯(lián)網(wǎng)上的網(wǎng)站基本上都在采用了 HTML5 標(biāo)準(zhǔn)。

          但大多數(shù)的客戶(hù)要求是把微信里面那種好友之間,或者朋友圈分享的那種帶有主題性質(zhì)的宣傳頁(yè)面(實(shí)在是不知道怎么描述)和我們平時(shí)電腦上訪問(wèn)的頁(yè)面通過(guò)技術(shù)區(qū)分識(shí)別出來(lái)。所以說(shuō)在業(yè)務(wù)人員和一些客戶(hù)眼里,微信上分享的那種炫酷的頁(yè)面就是H5頁(yè)面。所以 H5 和 HTML5就不是一個(gè)東西了。

          H5的由來(lái)

          如果 H5 不等于 HTML5 了,那 H5 到底是什么呢?

          網(wǎng)友猜想可能是這樣的:HTML5 在 2013 年左右就發(fā)布,在 2014 年底宣布標(biāo)準(zhǔn)制定完成,但是市面的瀏覽器的支持主要還是在手機(jī)上,電腦上主要有 IE 的存在導(dǎo)致標(biāo)準(zhǔn)普及緩慢,所以開(kāi)始有開(kāi)發(fā)者在手機(jī)上做很多酷炫的頁(yè)面,當(dāng)這些酷炫的效果在業(yè)務(wù)人員看到了以后,開(kāi)始加以有效的利用,特別是在活動(dòng)宣傳和廣告方面,為了宣傳業(yè)務(wù)人員會(huì)問(wèn)技術(shù)人員:“這種炫酷的效果是怎么實(shí)現(xiàn)的?”

          技術(shù)人員說(shuō):“我用的是HTML5的技術(shù)”。業(yè)務(wù)人員的宣傳營(yíng)銷(xiāo)能力那是相當(dāng)厲害,在客戶(hù)面前大量的宣傳:“我們用到了一個(gè)牛逼技術(shù),讓你的手機(jī)網(wǎng)頁(yè)非常炫酷好看”,慢慢的客戶(hù)都知道了有一種技術(shù)可以把頁(yè)面在手機(jī)上做的非常好看,非常炫酷,然后客戶(hù)又開(kāi)始對(duì)其他人說(shuō):“我們的這個(gè)網(wǎng)頁(yè)用了現(xiàn)在最新的技術(shù),叫什么什么5頁(yè)面,對(duì)H5頁(yè)面”。然后客戶(hù)之間口口相傳,當(dāng)以后遇到同樣的業(yè)務(wù)需求的時(shí)候,找另外一家供應(yīng)商說(shuō):“我要一個(gè)H5頁(yè)面,要長(zhǎng)的類(lèi)似什么..一樣的網(wǎng)頁(yè)”,然后這一家做網(wǎng)站的公司開(kāi)始也把這種網(wǎng)站也開(kāi)始叫著H5頁(yè)面。

          最后鋪天蓋地的“H5頁(yè)面”就出來(lái)了。

          當(dāng)然,這只是網(wǎng)友的一個(gè)猜想……

          最后

          為幫助那些往想互聯(lián)網(wǎng)方向轉(zhuǎn)行想學(xué)習(xí),卻因?yàn)闀r(shí)間不夠,資源不足而放棄的人。我搜集整理了一套完整的IT學(xué)習(xí)資料,包括Java、SEO優(yōu)化、Python入門(mén)書(shū)籍等等等,比自己在網(wǎng)上零散收集的結(jié)構(gòu)性和連貫性更強(qiáng),只為幫助那些想學(xué)習(xí)的人!需要的同學(xué)可私信!私信!回復(fù)“學(xué)習(xí)”


          主站蜘蛛池模板: 国产女人乱人伦精品一区二区| 亚洲第一区香蕉_国产a| 精品国产日韩亚洲一区| 国产免费一区二区三区VR| 日本v片免费一区二区三区| 无码人妻精品一区二区蜜桃百度| 精品人妻一区二区三区毛片| 亚洲一区二区影院| 国模大胆一区二区三区| 一区二区国产在线观看| 中文字幕精品一区二区精品 | 国产福利无码一区在线| 国产中文字幕一区| 无码AV中文一区二区三区| 尤物精品视频一区二区三区| 久久精品人妻一区二区三区 | 国产萌白酱在线一区二区| 好爽毛片一区二区三区四 | 性盈盈影院免费视频观看在线一区| 亚洲福利视频一区二区| 日本片免费观看一区二区| 青娱乐国产官网极品一区| 中文字幕日韩一区| 一区二区三区杨幂在线观看| 91在线精品亚洲一区二区| 亚洲国产高清在线一区二区三区| 亚洲国产国产综合一区首页| 老鸭窝毛片一区二区三区| 久久精品无码一区二区无码 | 亚洲香蕉久久一区二区三区四区| 精品一区二区三区在线观看l | 国产激情视频一区二区三区| 成人丝袜激情一区二区| 日本亚洲成高清一区二区三区| 极品少妇一区二区三区四区| 亚洲啪啪综合AV一区| 国产视频一区二区在线观看| 精品福利视频一区二区三区| 日本欧洲视频一区| 中文日韩字幕一区在线观看| 美女AV一区二区三区|