現代web數據傳輸技術及數據格式

1、數據傳輸技術

一、xhrHttpRequest(XHR)javascript

優勢:操做靈活,可控性強,能夠操做http的header和body。java

缺點:跨域請求存在問題,低版本瀏覽器不支持數據的「流」傳輸。跨域

注意點:get請求能夠被緩存。對於少許數據請求而言,get請求發送數據會更快,post適合發送大量數據(當url的參數大於2048個字符時)。瀏覽器

關於Ajax的跨域請求問題:跨域資源共享CORS,CORS是一個W3C標準,全稱是"跨域資源共享"(Cross-origin resource sharing)。瀏覽器一旦發現AJAX請求跨源,就會自動添加一些附加的頭信息,有時還會多出一次附加的請求(options),但用戶不會有感受。所以,實現CORS通訊的關鍵是服務器。只要服務器實現了CORS接口,就能夠跨源通訊。它容許瀏覽器向跨源服務器,發出XMLHttpRequest請求,從而克服了AJAX只能同源使用的限制。緩存


二、動態腳本注入服務器

優勢:能夠跨域。執行速度快,由於數據內容直接做爲腳本執行,不是經過解析字符串(Ajax請求須要對數據進行字符串的解析)數據結構

缺點:對請求的控制有限,必須將數據封裝在函數內,引入外部來源的數據時會有隱患。函數


三、multiple XHRpost

優勢:一個http請求能夠獲取大量資源。能夠經過數據「流」來分別處理各類資源(監聽readystate爲3時的數據流)性能

缺點:須要和服務端配合定義數據的傳輸規則。請求的數據不可以進行緩存。


2、數據格式

一、XML

優勢:通用。

缺點:數據結構笨重。解析速度慢。

二、JSON

優勢:通用。和javascript語法緊密結合。結構更清晰簡單。

三、JSONP

優勢:當數據量大的時候,可使用JSONP形式的數據,經過動態注入腳本的技術,來加快執行速度,由於JSONP數據不須要被解析,可直接被執行。而且可以突破跨域的限制。

四、自定義數據格式

經過和服務端定義更加簡便的純文本數據格式(使用簡單的分隔符)來傳輸數據,也能夠大大減小數據被解析的時間。


現今最主流的數據請求技術依舊是Ajax,配合服務端的http緩存的設置,能夠更好的提高性能。當面臨大量數據的請求和處理的狀況,能夠考慮自定義的數據格式或者使用JSONP。

相關文章
相關標籤/搜索