bs架構的應用,數據處理為html頁面應該交給前端還是後端?

比如現在比較流行後端發送json數據給前端瀏覽器,然後瀏覽器js解析拼接成html代碼在展現,但是這種方式修改起來比較麻煩

還有一種就是以前的方式,後台把數據取好,然後填進頁面,生成html代碼發送客戶端,但是這樣不如json數據小,而且壓力在伺服器上,不過方便修改

不知道現在各大互聯網公司是怎麼做的?還是混用,這個平衡點如何把握,求指導


首先,在前端模板(Handlebars,underscore 等等)已經如此成熟的今天,把數據拼成 HTML 字元串的方法應該已經沒有什麼人用了吧。

其次,大公司里都是有專職的前端工程師,經過跟後端工程師友(chang)好(nian)的(de)協(dou)商(zheng),最終確定的工作模式為後端工程師只負責處理數據、寫好介面,前端工程師負責把數據渲染成 HTML。

關於你提到的通過 AJAX 獲取 JSON 數據在前端渲染和後端渲染好 HTML 以字元串形式發送給前端的兩種方式,我們一般不用後者。不過有人會質疑說如果整個應用都採用 AJAX 的話,用戶第一次打開應用或者新頁面時空空如也效果不好,這個問題我們通過埋點數據解決。具體方法是用戶在請求某個頁面時,後端把 AJAX 介面需要用到的數據寫在返回的 HTML 中,如

&&

前端在 js 中獲取 data-json 中的字元串進行渲染,生成最終用戶看到的頁面。注意這個過程中是沒有用到 AJAX 的,數據在用戶請求頁面時一併就和 HTML 一起返回了,因此渲染的效果在非大型應用上和在後端渲染好的效果區別不大。

而後續再進行數據交換時,就統一使用 AJAX 操作了。

最後補充一點,題主提到後端渲染 HTML 的好處是方便修改,想必題主是搞後端的吧。對於前端工程師來說,修改前端的模板也很方便,而且在大公司裡面,發布一次前端靜態資源要比發布後端代碼簡單很多。因此單從方便性來說,這種方法看起來也不是那麼方便。

一些簡陋的想法,希望能有幫助。


題主的問題,其實就是選擇伺服器端渲染還是瀏覽器端渲染

說來話長,但也可以長話短說,要圖簡單,就用瀏覽器端渲染,畢竟只要操心JavaScript就行;要追求極致用戶感知性能,就要用上伺服器端渲染配合瀏覽器端渲染,因為下載HTML的時間比多一個Ajax請求去拿JSON再產生網頁內容要快。


將數據跟模板分離的,我們稱之為引擎

過去,我們有 JSP引擎,PHP引擎等

現在,我們有 JS引擎


推薦閱讀:

極樂技術周報(第三十四期)
網站後端演算法的相關書籍有哪些值得推薦?

TAG:互聯網 | 前端開發 | 後端技術 | 代碼 | JS特效 |