實現前后端數據交互的方法


前端工程師的職責:1、UI重構  2、在正確的區域渲染出服務端的數據。

畢竟,我們要構建一個大的web應用,必然不是普普通通的靜態頁面構成。

下文將羅列前端工程師應該必備的同后端打交道的常用技能。

1、服務端渲染

  談起服務端渲染,對於動態服務而言,這個世界上跑的大多數頁面都經過服務端的數據渲染,接口->前端賦值->模板渲染。

  這些都是在服務器完成,在我們查看源碼的時候,可以看到完整的html代碼,包括每個數據值。

  常用的php模板:Smarty,Blade,Mustache。

  如果使用Node.js作為服務端的話: ejs,doT,jade等。

2、Ajax

  服務端渲染隨着單頁面應用以及Restful接口的興起,Ajax逐漸成為目前前后端交流最為頻繁的方式。

  Ajax的核心是XmlHttpRequest。我們通過對該對象的操作來進行異步的數據請求。

  實際上我們接觸到最多jQuey就有很好的封裝,比如$.ajax$.post等,如果用Angular的話我們可以用$http服務,

  除了這些之外,我們可以使用第三方的Ajax庫qwest等。

3、JSONP

  JSONP,算作json的一種使用模式,可以解決主流瀏覽器的跨域數據訪問的問題。

  $.ajax({

    url:"",

    dataType:"jsonp",

    jsonpCallback:function(){}

  })

4、comet

  聊Comet我們還得說下短輪詢,由於某些特定的業務需求,比如通知,我們需要有及時的數據更新,

  我們能夠想到的就是使用setInterval每隔一定時間比如10s去獲取一次請求,從而做到一些通知更新,但是這並不一種高效的做法,這會增加服務器的請求數量。

  這個時候有了另外一種概念,“反向Ajax”,由服務器進行數據推送, Comet能夠讓信息近乎實時的被推送到頁面上,非常適合要求實時性的獲取的數據的頁面。

5、SSE

6、Web Socket

  HTML5 WebSocket 設計出來的目的就是要取代輪詢和 Comet 技術,使客戶端瀏覽器具備像 C/S 架構下桌面系統的實時通訊能力。

  瀏覽器通過 JavaScript 向服務器發出建立 WebSocket 連接的請求,連接建立以后,客戶端和服務器端就可以通過 TCP 連接直接交換數據。

  也就是我們可以使用web技術構建實時性的程序比如聊天游戲等應用。

  注意:SSE和 Web Sockets 都是新的api,需要大家考慮兼容性。

7、小結

  說了那么多簡單總結下,大家想明白幾點就行了,客戶端與服務端誰先主動,是否強調數據的實時性。

  

  AJAX – 請求 → 響應 (頻繁使用)

 

  Comet – 請求 → 掛起 → 響應 (模擬服務端推送)  

 

  Server-Sent Events – 客戶單 ← 服務端 (服務端推送)  

 

  WebSockets – 客戶端 ↔ 服務端 (未來趨勢,雙工通信)

 

參考文獻:

  http://blog.csdn.net/bin1813/article/details/52296462

  http://www.jb51.net/article/63588.htm

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM