前后端分離技術我個人認為是web前端被專業化以后的必由之路,而nodejs的出現是前后端分離技術的一個強興的催化劑,原因是nodejs的出現削平了前端技術和服務端技術之間的鴻溝,使得前后端兩套不同技術體系進行真正意義的解耦提供了無限的可能性。但是如果我們把nodejs技術的使用認為就是實現了前后端分離,這種理解又實在太膚淺了,下面我將講講我研究過的前后端分離技術方案,以及這些技術方案隱藏在背后思考,希望這些思考能給大家以一個新的思路來理解前后端分離技術。
服務端應用和結果的密切度也是要當做考慮的因素的。在web開發里,除了需要瀏覽器處理的,其他技術都可以當做服務端來理解,如果我們網站使用到了CDN,使用到了靜態web服務器例如apache,以及服務端的web容器例如jboss,那么按請求的行進路徑,我們結果處理越早那么網站響應效率也就越高,所以當請求在CDN返回了,那么肯定比在apache返回效率高,在apache就返回了肯定比jboss返回的效率高,再則服務端的web容器本身因為服務端程序運行要消耗部分系統資源,所以它在處理請求的效率會比CDN和apache差很多,所以當我們按照動靜分離策略拆分出了靜態資源后,這個資源能不放在最底層的服務端的web容器處理就不要放在服務端的web容器里處理。
它所使用的數據又不是那種可有可無的,假如數據存儲的不可靠造成數據丟失還是會造成不必要的麻煩,所以我們還是會把這些信息做持久化存儲。此外像上面的【生活好助手】條目還是頁面的一個重要組成部分,因此像SSI那種使用html注釋指令,當指令無法正常解析,就直接返回到瀏覽器,因為是注釋,所以頁面也不會顯示它,SSI的這種做法用在上面場景肯定是不太合適的。這樣的場景在電商網站里是十分常見的,例如一個商品頁面,頁面里會有商品的圖片,還有商品的詳細介紹,這些內容其實都是會用持久化系統進行存儲,同時它們本身也是網頁的重要做成部分,如果碰到問題就忽略最終會造成頁面顯示錯誤。
|