App下載

web前后端交互方式有哪些?

猿友 2020-12-12 17:16:24 瀏覽數(shù) (24300)
反饋

  正如我們所知,一個完整的IT項(xiàng)目是由多個不同崗位共同完成的,包括UI設(shè)計(jì)、前端開發(fā)、后端開發(fā)、測試等。前端后端需要通過技術(shù)上交互實(shí)現(xiàn)聯(lián)通,那么web前后端交互技術(shù)都有哪些呢?

  前端開發(fā)需要做的事情,只有兩個:1. 創(chuàng)建界面結(jié)構(gòu) 2. 數(shù)據(jù)交互

  數(shù)據(jù)交互其實(shí)又可以分為兩種:1. 給后臺技術(shù) 2. 從后臺那數(shù)據(jù)

  數(shù)據(jù)交互的目的是什么?

  ?。簩?shù)據(jù)渲染到dom文檔中  給:提交數(shù)據(jù)到后臺后,后臺會繼續(xù)返回我們一個數(shù)據(jù),拿到這個數(shù)據(jù),然后渲染頁面.


  1. 利用cookie

  例如:前臺通過登錄來存儲cookie

  后臺通過req.cookies()來獲取存儲的cookie信息


  2. 利用Ajax

  在學(xué)習(xí)NodeJS之前最常用的前后端交互大都利用ajax 和JQuery中已經(jīng)封裝好的$.ajax、$.post、$.getJSON 通過創(chuàng)建一個XMLHttpRequest對象,來進(jìn)行前后端交互。

  在學(xué)NodeJS之后我們也利用依賴于$http服務(wù)自己搭建的_http來完成get、post和jsonp的方式來進(jìn)行前后端交互;


  3. jsonp

  jsonp是前后端結(jié)合跨域方式,因?yàn)榍岸握埱蟮綌?shù)據(jù)需要在回調(diào)函數(shù)中使用,所以后端得將數(shù)據(jù)放回到回調(diào)函數(shù)中

  jsonp屬于AJAX嗎? ajax是指通過使用xmlhttpquest對象進(jìn)行異步數(shù)據(jù)交互的技術(shù),jsonp是依靠scriptsrc屬性來獲取的,不屬于ajax


  4. 服務(wù)端渲染

  瀏覽器請求到的內(nèi)容其實(shí)可以通過后端加工一下,將一會數(shù)據(jù)直接渲染好,再給瀏覽器就可以了

  在php中實(shí)現(xiàn)服務(wù)端渲染:

  在php語言文件中可以放入html代碼,訪問php文件的時候就相當(dāng)于訪問這個對應(yīng)的html文件,因?yàn)樵趐hp文件中,所以可以寫一些php的代碼來渲染數(shù)據(jù)

  在Node中實(shí)現(xiàn)服務(wù)端渲染:

  利用模板引擎,node在渲染模板的時候給模板傳入數(shù)據(jù),在模板中就可以使用特定的語法來渲染dom了 例如:ejs,jade

  注意:express里的路由是靠請求路徑劃分的,前一個自己搭的路由是根據(jù)請求類型劃分的。


  5. webSocket 和 Socket.io

  網(wǎng)上的兩個程序通過一個雙向的通信連接實(shí)現(xiàn)數(shù)據(jù)的交換,這個連接的一端成為一個scoket

  通過建立socket雙向連接,就可以讓客戶端和服務(wù)端直接進(jìn)行雙向通信

  簡單的小案例:socket.io聊天的思路

  1. 服務(wù)器端建立好服務(wù)端, var wss=require(“socket.io”)(server)

  2. 創(chuàng)建客戶端的連接socket var wsc = io.connect(‘ws://’)

  3. 客戶端連接 wsc.on(“connect”,function(e){})

  4. 服務(wù)器端接收到客戶端連接的消息 wss.on(“connection”,function(socket){})

  5. 客戶端發(fā)送消息的時候觸發(fā) wsc.on(“meaasge”,function(msg){})

  6. 客戶端接收到服務(wù)器端發(fā)送消息 wsc.on(“message”,function(e){})


  一個合格的前端人才,不僅要把握本職專業(yè)技能,還要了解必定的后端開發(fā)技能,這樣才能更好的工作交流。推薦相關(guān)閱讀==》網(wǎng)站后端開發(fā)具體做什么



1 人點(diǎn)贊