Web前后端分離


第一篇博客:見諒

用自己的通俗語言講web工程的前后端分離:

只是從自己的角度去分析,我眼中的前后端分離(可能不對)

首先要明白我們服務器和瀏覽器之前傳輸和接受的是什么:

靜態文件(html,css,js 等格式這樣的文件) 就如同,你的瀏覽器能夠直接打開桌面text文檔,html文件和圖片的文件

這就是問題關鍵,我們所謂的動態頁面,是在瀏覽器接受了這些html 、css 和 js之后 ,瀏覽器(內核)去解析這些文件建並加載

然后動態的效果和渲染就出來了,所有的渲染和特效,是在客戶端完成。

這里引用網上其他地方對servlet和jsp的關系來更加講解這一點:

Servlet是一個特殊的Java程序,它運行於服務器的JVM中,能夠依靠服務器的支持向瀏覽器提供顯示內容。JSP本質上是Servlet的一種簡易形式,JSP會被服務器處理成一個類似於Servlet的Java程序,可以簡化頁面內容的生成。Servlet和JSP最主要的不同點在於,Servlet的應用邏輯是在Java文件中,並且完全從表示層中的HTML分離開來。而JSP的情況是Java和HTML可以組合成一個擴展名為.jsp的文件。有人說,Servlet就是在Java中寫HTML,而JSP就是在HTML中寫Java代碼,當然這個說法是很片面且不夠准確的。JSP側重於視圖,Servlet更側重於控制邏輯,在MVC架構模式中,JSP適合充當視圖(view)而Servlet適合充當控制器(controller)

 

瀏覽器url輸入login.jsp 這時候發生的過程是,客戶端請求一個文件資源路徑 ,因為jsp是特殊servlet ,其本質就是相當於,servlet中直接寫html返回字符串,最后jsp,經過服務端jvm編譯之后,走java的邏輯代碼,將數據提前渲染在文件中,然后返回瀏覽器(客戶端)html類型的文件。這就相當於訪問servlet再用輸出流輸出的html頁面,效率沒有直接使用html高(是每次訪問訪問都會輸出流)

半分離(前端資源代碼和java程序代碼還是在一個容器中)

前后端半分離,前端負責開發頁面,通過接口(Ajax)獲取數據,采用dom操作對頁面進行數據綁定,最終是由前端把頁面渲染出來。這也就是其他博客里說的,Ajax與SPA應用(單頁應用)結合的方式。其結構圖如下:

前端使用angular,vue ,react,編譯打包,將代碼放到web項目中。目前個人涉及的也是這種模式。但從分離的角度思考,個人沒有涉及很深,至於網上的大牛說這樣的分離會有缺點時:資源消耗嚴重,在業務復雜的情況下,一個頁面可能要發起多次http請求才能將頁面渲染完畢。移動端建立http請求消耗多少資源過多。個人之前寫過一個大坑的頁面(基於angular)下拉框的聯動,因業務需求有一個五級聯動的下拉框,每個下拉框又要自己的下拉,數據是后端接口拿過來,因此每次加載到這個也頁面的時候超慢,每個下拉框點擊之后,又走一次后端查詢下個下拉框,導致頁面渲染速度脫層。

 

分離(前端工程工程單獨部署)

前端工程單獨部署,運行在node環境下,與java層完全剝離 ,更偏向於數據交互,部分邏輯在node上實現,架構分離的更純粹,此處不做過多描述0.0

 


免責聲明!

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



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