成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

AJAX學(xué)習(xí)筆記 - 通訊格式

番茄西紅柿 / 606人閱讀

摘要:本文章記錄本人在深入學(xué)習(xí)中看書理解到的一些東西,加深記憶和并且整理記錄下來,方便之后的復(fù)習(xí)。格式數(shù)據(jù)極其的冗長(zhǎng)。但是使用格式還是可能比實(shí)際的數(shù)據(jù)占用更多的空間。該字符串通過或者轉(zhuǎn)換為一個(gè)本地的對(duì)象。

  

本文章記錄本人在深入學(xué)習(xí)Javascirpt AJAX中看書理解到的一些東西,加深記憶和并且整理記錄下來,方便之后的復(fù)習(xí)。

避免使用 XML
  

沒有哪種格式從始至終比其他格式都更好。根據(jù)傳送數(shù)據(jù)的類型、在頁面上使用的目的不同,某種格式數(shù)據(jù)可能下周更快,另一種數(shù)據(jù)可能解析更快。

XML格式數(shù)據(jù)極其的冗長(zhǎng)。因?yàn)槊總€(gè)離散的數(shù)據(jù)片段需要大量的XML結(jié)構(gòu),所有有效的數(shù)據(jù)的比例非常低。XML語法還有輕微的模糊。

還有,解析XML是非常占程序員的精力的。你需要提前了解詳細(xì)的結(jié)構(gòu)和確切地知道如何解開這個(gè)結(jié)構(gòu),然后細(xì)心地將他們寫入js對(duì)象中。

謹(jǐn)慎使用 HTML 格式

js是能夠較快的把一個(gè)大數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化為簡(jiǎn)單的html,但是服務(wù)器完成同樣的工作的速度更加快。一種技術(shù)考慮是在服務(wù)器端構(gòu)建整個(gè)html,然后將其傳遞給客戶端,js只是簡(jiǎn)單的下載它并且放入innerHTML。

什么情況下使用html格式:

html是一種詳細(xì)的數(shù)據(jù)格式,比XML更加的冗長(zhǎng)。數(shù)據(jù)本身的最外層可以有嵌套的html標(biāo)簽,每個(gè)標(biāo)簽都具有id class等其他的屬性。但是使用html格式還是可能比實(shí)際的數(shù)據(jù)占用更多的空間。正因如此。只有在客戶端CPU比帶寬更受限的時(shí)候才使用這個(gè)技術(shù)。

有一種格式是包含最少數(shù)量的結(jié)構(gòu),需要在客戶端解析數(shù)據(jù)。如JSON等將這種格式下載到客戶機(jī)非常塊,然而這一過程需要引擎花費(fèi)更多的時(shí)間將他們轉(zhuǎn)化成html以顯示在頁面上。這是需要很多字符的操作,而字符的操作也是js最慢的操作之一。

在服務(wù)器上創(chuàng)建html,這種格式在線操作數(shù)據(jù)量大,下載時(shí)間長(zhǎng),不過一旦下載完,只需要一個(gè)操作就可以顯示在頁面上。這種格式與其他幾種格式的差別:“解析”在這種情況下指的是將html插入dom的操作。此外,html不能像本地js數(shù)組那樣輕易迅速地進(jìn)行迭代操作。

html格式的缺點(diǎn)

html傳輸量大,需要的解析時(shí)間也很長(zhǎng)。將html插入到dom的單一操作看似簡(jiǎn)單,只有一行代碼,卻需要時(shí)間加載很多數(shù)據(jù)。一句話總結(jié)html格式:作為數(shù)據(jù)格式,它緩慢且臃腫。

推薦使用 JSON

JSON是一種輕量級(jí)易與解析的數(shù)據(jù)格式,它按照js的對(duì)象和數(shù)組的字面量格式來書寫。下面的代碼是用JSON編寫的用戶列表:

[
    {
        "name": "john",
        "age": 15
    },
    {
        "name": "wall",
        "age": 22
    },
    {
        "name": "ben",
        "age": 8
    }
]

JSON的優(yōu)點(diǎn):

相比與XML,JSON有許多優(yōu)點(diǎn):在總響應(yīng)報(bào)文中,結(jié)構(gòu)占用的空間更小。數(shù)據(jù)占用的更多。JSON對(duì)大多數(shù)的服務(wù)端編程語言/解碼庫(kù)之間有著很好的互操作性。JSON在客戶端的解析工作微不足道,可將更多的代碼的時(shí)間放在其他數(shù)據(jù)的處理上。

使用JSONP:

當(dāng)你使用XHR的時(shí)候,JSON數(shù)據(jù)作為一個(gè)字符串返回。該字符串通過eval()或者JSON.parse()轉(zhuǎn)換為一個(gè)本地的對(duì)象。當(dāng)使用動(dòng)態(tài)腳本標(biāo)簽插入的時(shí)候,JSON數(shù)據(jù)被視另一個(gè)js文件并作為本地碼執(zhí)行。為做到這一點(diǎn),數(shù)據(jù)必須被包括在回調(diào)函數(shù)之中。這就是所謂的JSON填充或JSONP。下面是用JSONP編寫的用戶列表:

parseJSON([
    {
        "name": "john",
        "age": 15
    },
    {
        "name": "wall",
        "age": 22
    },
    {
        "name": "ben",
        "age": 8
    }
])

JSONP文件大小和下載時(shí)間與XHR測(cè)試基本相同,而解析時(shí)間幾乎塊了10倍。標(biāo)準(zhǔn)JSONP的解析時(shí)間為0,因?yàn)楦揪陀貌恢馕觯呀?jīng)是本地格式了。

最快的JSON格式就是使用數(shù)組的JSONP格式,雖然這種格式只比使用XHRJSON略快,但是這種差異隨著列表尺寸的增大而增大。如果所從事的項(xiàng)目需要一個(gè)由10000以上的單元構(gòu)成的列表,那么使用JSONP比使用JSON快多了。

JSONP的問題:

要避免使用JSONP還有一個(gè)與性能無關(guān)的原因:JSONP必須是可執(zhí)行的js,利用動(dòng)態(tài)腳本注入技術(shù)可以在任何網(wǎng)站上被任何人調(diào)用。從另一個(gè)角度來說,JSON在運(yùn)行之前并不是有效的js,使用XHR時(shí)只是被當(dāng)作字符串獲取。不要將任何敏感的數(shù)據(jù)編碼設(shè)置為JSONP,因?yàn)闊o法確定他是否包含私密信息、隨機(jī)的url或者cookie

  

最后,如果文章有什么錯(cuò)誤和疑問的地方,請(qǐng)指出。與sf各位共勉!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/92327.html

相關(guān)文章

  • 重學(xué)前端學(xué)習(xí)筆記(十一)--瀏覽器工作解析(一)

    摘要:緊跟在后面的是請(qǐng)求頭,每行用冒號(hào)分隔名稱和值按下兩次回車,收到服務(wù)端回復(fù)響應(yīng)部分第一行被稱作,它也分為三個(gè)部分,協(xié)議和版本狀態(tài)碼和狀態(tài)文本。對(duì)前端來說系列的狀態(tài)碼是非常陌生的,原因是的狀態(tài)被瀏覽器庫(kù)直接處理掉了,不會(huì)讓上層應(yīng)用知曉。 筆記說明 重學(xué)前端是程劭非(winter)【前手機(jī)淘寶前端負(fù)責(zé)人】在極客時(shí)間開的一個(gè)專欄,每天10分鐘,重構(gòu)你的前端知識(shí)體系,筆者主要整理學(xué)習(xí)過程的一些要...

    paulli3 評(píng)論0 收藏0
  • 重學(xué)前端學(xué)習(xí)筆記(十一)--瀏覽器工作解析(一)

    摘要:緊跟在后面的是請(qǐng)求頭,每行用冒號(hào)分隔名稱和值按下兩次回車,收到服務(wù)端回復(fù)響應(yīng)部分第一行被稱作,它也分為三個(gè)部分,協(xié)議和版本狀態(tài)碼和狀態(tài)文本。對(duì)前端來說系列的狀態(tài)碼是非常陌生的,原因是的狀態(tài)被瀏覽器庫(kù)直接處理掉了,不會(huì)讓上層應(yīng)用知曉。 筆記說明 重學(xué)前端是程劭非(winter)【前手機(jī)淘寶前端負(fù)責(zé)人】在極客時(shí)間開的一個(gè)專欄,每天10分鐘,重構(gòu)你的前端知識(shí)體系,筆者主要整理學(xué)習(xí)過程的一些要...

    付永剛 評(píng)論0 收藏0
  • 重學(xué)前端學(xué)習(xí)筆記(十一)--瀏覽器工作解析(一)

    摘要:緊跟在后面的是請(qǐng)求頭,每行用冒號(hào)分隔名稱和值按下兩次回車,收到服務(wù)端回復(fù)響應(yīng)部分第一行被稱作,它也分為三個(gè)部分,協(xié)議和版本狀態(tài)碼和狀態(tài)文本。對(duì)前端來說系列的狀態(tài)碼是非常陌生的,原因是的狀態(tài)被瀏覽器庫(kù)直接處理掉了,不會(huì)讓上層應(yīng)用知曉。 筆記說明 重學(xué)前端是程劭非(winter)【前手機(jī)淘寶前端負(fù)責(zé)人】在極客時(shí)間開的一個(gè)專欄,每天10分鐘,重構(gòu)你的前端知識(shí)體系,筆者主要整理學(xué)習(xí)過程的一些要...

    alighters 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<