10位經驗豐富的前端開發和UI設計資深司機在Berg前端工坊,與大家分享。 前端無法迴避的乙個話題是如何與後端交換資料(通訊),本文從最基本的通訊方法開始。前後端通訊是指前後端之間資料互動和通訊的過程。 在 Web 開發中,前端通常負責呈現資料和使用者互動,而後端負責處理業務邏輯和資料儲存。 為了實現前後端之間的資料互動和通訊,需要使用一些通訊方式和協議。
前後端通訊的目的是實現資料的傳輸和互動,滿足前端的功能需求和後端的業務邏輯。 通過適當的通訊方式和協議,可以實現高效的前後端協作和資料互動。
前端呼叫後端介面的常用方式有幾種:
前端和後端沒有分離。
ajax:使用 j**ascript 的 AJAX 技術向後端傳送 HTTP 請求並接收響應。 可以使用本機 XMLhttpRequest 物件或現代 Fetch API 實現 AJAX 請求。 AJAX 支援非同步通訊,而無需重新整理整個頁面,並且可以在後台與伺服器進行互動。
axios.js:axios.JS 是乙個基於 promise 的 HTTP 客戶端庫,可用於傳送 HTTP 請求。 它可以在瀏覽器和節點中使用用於JS環境,提供簡潔的API和豐富的功能,如請求攔截、響應攔截、請求取消等。
fetch api:fetch API 是瀏覽器原生提供的一組用於傳送 HTTP 請求的 API。 它提供了一種更現代、更簡潔的方式來傳送請求和返回 promise 物件。 Fetch API 支援非同步通訊,您可以設定請求標頭、傳送不同型別的資料等。
websocket:websocket 是一種全雙工通訊協議,用於在瀏覽器和伺服器之間建立持久連線。 借助 WebSocket,前端可以與後端實時通訊,而無需通過輪詢或長時間輪詢來獲取資料。
restful api:RESTful API 是基於 HTTP 協議的 API 設計規範,可用於通過 get、post、put、delete 等 HTTP 方式訪問後端資源。 前端可以使用ajax、axiosJS 等工具傳送 HTTP 請求,呼叫後端 RESTful API 進行資料互動。
這些是前端呼叫後端介面的一些常用方式。 使用哪種方法取決於專案需求和個人喜好。
這些前端介面的呼叫方式各有利弊,但以下是它們與一些常見介面的區別:
ajax:
優點:應用廣泛,相容性好,可實現非同步通訊,無需重新整理整個頁面,可在後台與伺服器互動。
缺點:請求和響應需要手動處理,比較繁瑣,不支援跨域請求(需要使用 CORS 或 **)解決。
axios.js:
優點:基於承諾,簡單易用,提供豐富的功能,如請求攔截、響應攔截、請求取消等,支援瀏覽器和節點JS 環境。
缺點:需要引入第三方庫,增加專案的依賴性。
fetch api:
優點:是瀏覽器提供的原生 API,使用簡單,返回 promise 物件,支援非同步通訊,支援設定請求頭,傳送不同型別的資料。
缺點:相容性不如AJAX,不支援取消請求。
websocket:
優點:支援實時通訊,建立持久連線,可雙向通訊,適用於需要實時資料更新的場景。
缺點:比較複雜,需要伺服器支援WebSocket協議。
restful api:
優點:基於HTTP協議,使用簡單,標準化,易於理解和維護,適用於大多數Web應用程式。
缺點:不適合實時通訊,需要伺服器提供相應的API支援。
考慮到所有因素,選擇正確的方法取決於特定的專案需求和開發環境。
不同的前端呼叫後端介面適用於不同的場景,以下是它們的常見應用場景:
ajax:
適用於頁面需要非同步互動的場景,如表單提交、資料載入等。
它可用於在不重新整理整個頁面的情況下實現部分更新,從而改善使用者體驗。
適用於需要與後端進行資料互動,但不需要實時通訊的場景。
axios.js:
適合需要在瀏覽器和節點中工作的人HTTP 請求在 JS 環境中傳送。
提供請求攔截、響應攔截、請求取消等更豐富的功能,適用於複雜的資料互動需求。
它可用於處理併發請求,提供更好的效能和使用者體驗。
fetch api:
適用於現代瀏覽器環境,可以使用瀏覽器本機提供的 API 傳送 HTTP 請求。
它提供了一種更簡潔的傳送請求和返回 promise 物件的方式,適用於簡單的資料互動需求。
您可以設定請求頭,傳送不同型別的資料,適用於處理多種資料格式的場景。
websocket:
適用於需要實時通訊的場景,如聊天應用、實時資料更新等。
它可以建立持久連線,支援雙向通訊,適用於需要頻繁更新資料的場景。
它相對複雜,需要伺服器端對 WebSocket 協議的支援。
restful api:
適用於構建標準化的 Web 應用,通過 get、post、put、delete等 HTTP 方式訪問後端資源。
可實現前後端資料互動和資源管理,適用於大多數Web應用。
不適用於實時通訊場景,需要其他方法才能實現實時資料更新。
您需要根據具體的專案需求和開發環境選擇合適的方法。 一般來說,ajax 和 axiosJS 是一種常用的使用方式,適用於大多數場景。 Fetch API 是瀏覽器原生環境的現代方法。 WebSocket適用於需要實時通訊的場景。 RESTful API 適用於構建標準化的 Web 應用程式。