『壹』 web開發為什麼要前後端分離
在學習前端開發的時候,會發現前端開發的知識非常瑣碎,前端往往是靠拼湊來完成頁面效果,開發過程沒有java後端開發有邏輯,代碼也很難管理。後端開發有各種各樣的工具類、jar包、maven依賴、spring框架等,具有工程化模塊化思維,可以滿足後期的優化。vue.js和react.js等這些前端框架的出現,它們從本質上打破了以前前端開發的規則,這就是前端開發組件化框架。這些框架出現後,前端開發也開始像後端一樣,遵循一套體系來進行約束性的開發,越來越工程化、組件化、迭代化,變得有章可循。前後端分離核心思想是前端HTML頁面通過AJAX調用後端的RESTFUL API介面並使用JSON數據進行交互。
『貳』 web開發中,什麼是前後端分離
優秀的WEB架構,必定會應用一些分層設計的思想,這樣可以讓系統開發起來更靈活,同時後期維護也比較方便。
前端的頁面基本都是使用 JavaScript 的富戶端頁面,主要應用的框架用,jquery、jquery ui、knockout js、Durandal。
自己封裝的 UI 組件,後端的主要採用到的技術有 OData、MVC、Linq to SQL 以及自己寫的一個許可權管理組件,資料庫採用的是 SQL Server 2005。
『叄』 web為什麼要前後端分離優點是什麼
解耦,降低耦合度,而且前後端分離可以提升一些後端的開發效率。
『肆』 前端就應該和後台徹底分離,用json傳遞數據有什麼不好
我覺著挺好的。但是現在很多開發環境都不是這樣做,其原因就是前後台不徹底分離的環境學習成本低,上手更快。而在許多軟體公司都是基於這些環境開發產品的。如果使用前後台徹底分離,那得需要很大的成本和一段時間。
『伍』 什麼是前後端分離為什麼分離
在不使用vue ,react ,anglar這類的框架的情況下,前後端分離應該如何做?
需求是這樣:
前端寫html頁面(非單頁面應用),
index 首頁
about 關於我們
newslist 新聞列表
newsdetail 新聞詳情
proctlist 產品列表
proctdetail 產品詳情
後台只提供json數據
那麼
1、前端數據如何渲染?
2、頁面跳轉是否必須使用路由?(不想使用路由)
3、頁面間的數據傳遞如何做,比如:列表頁到詳情頁的參數傳遞如何做?
『陸』 怎麼理解前後端分離
對於前後端分離,認識上有個誤區,那就是很多人自稱:我們老早就分離了,全AJAX,使用Angular或者什麼什麼就可以了。
這個說法是不合適的,打個比方,別人問的是逗如何解決家禽把蛋生在水草邊的問題看地,但實際上人家養的是鴨子,答題的卻是養雞的,所以回答逗不讓去水邊就行了地,這顯然不在點子上。
這
兩年業界說的前後端分離,是限於偏展示類的系統(用A代替),而不是應用、管控類Web項目(用B代替),在B類項目里,前後端是天然分離的,對此,除了
少部分後端開發人員,基本所有人的認識都是一致的。上一段中這樣回答的人一般都是只做B類項目,在B類項目里,前後端分離是共識,不需要討論。
那麼,剩下的問題就是討論A類項目的前後端分離了。這個問題的核心在什麼地方呢,在於模板的與數據結合的位置,以及,模板的控制權在誰手裡。經過這兩年的討論,基本上我們可以達成的共識就是:模板應當由前端人員去控制,主要原因有兩方面:
- 性能優化(尤其是外部資源的管理與發布,請求合並等等)
- 協作的順暢性(已形成模板的界面片段的返工等問題)
那麼,模板到底應該在什麼地方跟數據結合看
這個問題就比較折騰了,有部分人嘗試像B類項目那樣,使用js模板,然後在瀏覽器端執行,這是存在一些問題的,比如說seo不友好,首屏性能不夠,尤其對於首頁DOM量很大的電商類網站,差距很明顯。
所
以我們還是得把主要的模板放在服務端來執行。在這個過程中,阿里作了一些嘗試,那就是引入Node層,在這一層把模板與數據進行合成,然後瀏覽器拿到的就
是生成好的HTML了,但也不是所有HTML都是這么生成好的,還是會有一些內容等到了瀏覽器之後,再用js去載入和生成。
所以這一定會是一個混合方案,同一個系統中存在兩種模板,一種在服務端執行,一種在瀏覽器中執行,互為補充。
至
於說這個方案中,是否中間層一定要是node,我覺得無所謂,只要是能正常做web項目的東西都可以,這個還是要看所在企業的技術積累方向,當然node
做這塊是有一些優勢的,比如對前端人員的語言友好性,前後端模板的通用性等等,但這些都是細節,重點還是整體方案和流程。
這時候回頭看你問題中的這句:
> 前後端分離的意思是,前後端只通過 JSON 來交流,組件化、工程化不需要依賴後端去實現。
我相信你這里對前後端的限定是以瀏覽器為準的,但事實上,A類項目中,前後端的分界一定要延伸到伺服器端的模板層,也就是在這一層里,把各種來源的數據整合到模板中,這個數據未必是JSON格式的,會存在有JSON,XML,特定的二進制等等。
組
件化這個話題就更復雜了,在剛才組織形式中,很難說出究竟什麼才是組件。是某個商品的模板嗎看是數據嗎看是數據和模板的結合體嗎看沒法回答。在此,我說一
句自己的看法:像電商這種項目的前端部分,基本不存在組件的概念,甚至不存在組件化的價值,因為這裡面可復用的東西太少了,也不易提取,大多數東西都是不
帶邏輯的界面模板。
最近因為ReactJS的流行,帶來了一個Isomorphic的概念,這是一種很有意義的探索,但是否能解決這類問
題,尚不得而知,根據我的理解,它對B類項目是較好的補充方案,但對A類項目暫時還缺乏可用性,因為A類項目中,運行期的DOM變更並不多,多是整片的改
變,用這個方案去解決的話,有些牛刀殺雞的感覺。
關於B類項目的組件化,我之前那個沒寫完的系列是關於它的,但經過最近一年多的思考,我又覺得需要再重新寫一篇東西了。感謝你的問題提醒了我,這就寫。
『柒』 web前端開發,前後端分離具體是怎麼樣的工作模式
前後端分離,顧名思義就是前端只負責前端的開發,後端只只負責後端的開發,如何通過介面來進行數據交互。
這樣做的好處就是:開發可以同時進行,代碼維護更加方便,前端只需要拿到後端提供的介面,傳遞對應的數據就可以了,然後再把後端返回的數據渲染到前端頁面上。
至於跨域問題是可以解決的,一般讓後端解決就行了。最後上傳到伺服器的也很簡單,你前端的就上傳你開發的前端代碼,後端的就上傳他後端的代碼就搞定了
『捌』 Web項目開發為何要走前後端分離模式
如果是問「什麼是正確的前後端分離」,我還真不敢回答,生怕自己的理解有什麼偏差;但是問怎麼「理解前後端分離」,那我可以結合自身的工作,談談我對前後端分離的理解,也歡迎大家提出不同的理解。
不過到了此階段,在企業級項目的開發過程中,Java程序員依然要兼顧前後端的開發,所以前端頁面的樣子嘛,達不到美觀的程度,也就是能用。
前後端分離有很多的好處:前端開發和後端開發可以各司其職,約定好介面之後就可以並行開發;後端介面可以復用,如果項目同時有電腦網頁端、移動網頁端、APP端等多個入口的時候,後端可以只有一個;
帶來好處的同時,也會有一些缺點,例如:增加了架構的復雜性,如果技術能力不足的團隊,可以考慮半分離(例如我們部門都是企業級應用,都沒有前端開發人員);如果是面向互聯網的應用,需要搜索引擎抓取,就需要伺服器端渲染;另外前後端交互的介面,也需要花時間和精力設計。
『玖』 前後端完全分離的嗎
意義?怎麼叫意義呢,做一個項目來說,不是特別講究意義所在,更重要的是能否快速准確的實現客戶需求,WEB項目是否前後端分離並不影響你完成這個項目,只在於影響你這個項目的運行速度等等情況。
WEB 前後端分離三個最大的優點在於:
1:最大的好處就是前端JS可以做很大部分的數據處理工作,對伺服器的壓力減小到最小
2:後台錯誤不會直接反映到前台,錯誤接秒較為友好
3:由於後台是很難去探知前台頁面的分布情況,而這又是JS的強項,而JS又是無法獨立和伺服器進行通訊的。所以單單用後台去控制整體頁面,又或者只靠JS完成效果,都會難度加大,前後台各盡其職可以最大程度的減少開發難度。
『拾』 VB.Net 前後端分離怎麼實現的
1.一般來說,要實現前後端分離,前端就需要開啟一個本地的伺服器來運行自己的前端代碼,以此來模擬真實的線上環境,並且,也是為了更好的開發。因為你在實際開發中,你不可能要求每一個前端都去搭建一個java(php)環境,並且在java環境下開發,這對於前端來說,學習成本太高了。
?2.但如果本地沒有開啟伺服器的話,不僅無法模擬線上的環境,而且還面臨到了跨域的問題,因為你如果寫靜態的html頁面,直接在文件目錄下打開的話,你是無法發出ajax請求的(瀏覽器跨域的限制),因此,你需要在本地運行一個伺服器,可是又不想搭建陌生而龐大的java環境,怎麼辦法呢?nodejs正好解決了這個問題。在我們項目中,我們利用nodejs的express框架來開啟一個本地的伺服器,然後利用nodejs的一個http-proxy-middleware插件將客戶端發往nodejs的請求轉發給真正的伺服器,讓nodejs作為一個中間層。這樣,前端就可以無憂無慮的開發了
?3.由於前後端分離後,前端和後台同時開發時,就可能遇到前端已經開發好一個頁面了,可是卻等待後台API介面的情況。比如說A是負責前端,B是負責後台,A可能用了一周做好了基本的結構,並且需要API介面聯調後,才能繼續開發,
?4.而此時B卻還沒有實現好所需要的介面,這種情況,怎麼辦呢?在我們這個項目里,我們是通過了mock來提供一些假數據,我們先規定好了API介面,設計出了一套API文檔,然後我們就可以通過API文檔,利用mock來返回一些假數據,這樣就可以模擬發送API到接受響應的整一個過程,
?5.因此前端也不需要依賴於後端開發了,可以獨立開發,等到後台的API全部設計完之後,就可以比較快速的聯調。