2020-05-04 11:26:01分類:Web應(yīng)用開發(fā)12615
在本文中,我們將介紹各種類型的Web應(yīng)用程序,以幫助您確定哪種架構(gòu)最適合您的下一個(gè)項(xiàng)目。
隨著Web應(yīng)用程序開發(fā)技術(shù)的發(fā)展,在線體驗(yàn)的標(biāo)準(zhǔn)和要求也在不斷發(fā)展。視覺呈現(xiàn)的變化現(xiàn)在是最明確的,但由于Web架構(gòu)的轉(zhuǎn)變,它們才成為可能。
跟上各種類型的Web應(yīng)用程序的所有縮寫可能非常困難。畢竟,網(wǎng)絡(luò)應(yīng)用程序的進(jìn)步也不是一個(gè)簡單的過程:新的類型和方法不一定會(huì)與現(xiàn)有的類型和方法產(chǎn)生很大的差異,而是隨著時(shí)間的推移穩(wěn)步引起改進(jìn)。
盡管如此,游戲的名稱通常會(huì)將選擇范圍縮小到適合個(gè)人業(yè)務(wù)需求的網(wǎng)絡(luò)應(yīng)用類型。希望我們的分類可以幫助您做到這一點(diǎn)。如果您不確定所描述的應(yīng)用類型的可能用例,請(qǐng)隨時(shí)參閱本文,深入研究企業(yè)Web應(yīng)用,Web門戶和其他類型的Web應(yīng)用的功能。
靜態(tài)Web應(yīng)用程序
在技術(shù)實(shí)現(xiàn)方面,所有Web應(yīng)用程序首先是靜態(tài)的或動(dòng)態(tài)的。然而,雖然“動(dòng)態(tài)”是一大群子類型,但“靜態(tài)”可以被視為一種架構(gòu)類型。
“靜態(tài)”一詞來自這些網(wǎng)絡(luò)應(yīng)用程序缺乏靈活性。靜態(tài)Web應(yīng)用程序的頁面由服務(wù)器生成,幾乎沒有(沒有使用JavaScript代碼)交互性。通常,不存在個(gè)性化空間,任何可能的更改僅在完整頁面重新加載后生效。
靜態(tài)網(wǎng)頁通常難以維護(hù),并且它們發(fā)送和接收的過多數(shù)據(jù)會(huì)產(chǎn)生性能不佳的風(fēng)險(xiǎn)。毋庸置疑,它們并不適合移動(dòng)環(huán)境。盡管如此,當(dāng)共享非常簡潔的信息并且不需要交互時(shí),靜態(tài)Web應(yīng)用程序可以是實(shí)際操作選擇。
動(dòng)態(tài)Web應(yīng)用程序
任何動(dòng)態(tài)Web應(yīng)用程序都基于框架 - 控制網(wǎng)頁構(gòu)建和便于維護(hù)的Web應(yīng)用程序軟件。這些Web應(yīng)用程序在用戶屏幕上顯示的方式不是預(yù)先確定的,而是由應(yīng)用程序邏輯在app的服務(wù)器端或客戶端實(shí)現(xiàn)的動(dòng)態(tài)形狀。
動(dòng)態(tài)Web應(yīng)用程序的工作方式不同,其用例決定了它們的開發(fā)方法和架構(gòu)。
多頁面應(yīng)用程序(MPA)
在多頁面Web應(yīng)用程序中,邏輯幾乎完全在后端。這意味著,要使任何更改生效,來自客戶端的所有請(qǐng)求都將轉(zhuǎn)到服務(wù)器并返回。除了使用框架之外,這個(gè)原則幾乎與過去的靜態(tài)Web應(yīng)用程序相同。
然而,現(xiàn)在,MPA利用AJAX技術(shù),無需完整頁面重新加載即可實(shí)現(xiàn)即時(shí)更改。如果設(shè)計(jì)為響應(yīng)式,此類網(wǎng)絡(luò)應(yīng)用甚至可以適應(yīng)移動(dòng)環(huán)境。此外,由于用戶無法訪問邏輯,MPA非常安全,因此廣泛用于Web門戶和企業(yè)Web應(yīng)用程序。
富Internet應(yīng)用程序(RIA)
最初,RIA試圖克服瀏覽器限制,并嚴(yán)重依賴客戶端插件,如Flash,Shockwave和Silverlight。由用戶安裝和定期維護(hù),這些插件應(yīng)該解釋W(xué)eb應(yīng)用程序頁面的一些高度交互的部分,或者有時(shí),Web應(yīng)用程序的核心。
問題在于插件的漏洞以及它們?cè)斐傻囊恍┎槐悖喝绻寮悬c(diǎn)過時(shí),Web應(yīng)用程序的某些部分,或者有時(shí)整個(gè)應(yīng)用程序,都沒有機(jī)會(huì)正常運(yùn)行。最終,在引入HTML5之后放棄了許多插件(當(dāng)與JavaScript結(jié)合使用時(shí),通常會(huì)在功能方面與Flash進(jìn)行比較),因此RIA沒有保留其初始形式,并且大部分已經(jīng)變?yōu)槠渌愋偷腤eb應(yīng)用程序現(xiàn)在。
JavaScript-Powered Web Apps
隨著諸如Angular,React,Meteor和Ember等前端JavaScript框架的出現(xiàn),Web應(yīng)用程序的邏輯已經(jīng)開始向客戶端轉(zhuǎn)移,從而允許比偶爾嵌入的AJAX更好的靈活性??蛻舳诉壿嬕呀?jīng)開始接管服務(wù)器端處理用戶請(qǐng)求和呈現(xiàn)響應(yīng)的責(zé)任。
使用JavaScript框架創(chuàng)建的Web應(yīng)用程序顯示出良好的性能,提供不同級(jí)別的用戶交互,并且是移動(dòng)和搜索引擎優(yōu)化的。此類Web應(yīng)用程序廣泛用于各種行業(yè),并用作電子商店,客戶端門戶和商業(yè)Web應(yīng)用程序。
單頁應(yīng)用(SPA)
由于邏輯的客戶端實(shí)現(xiàn),SPA成功實(shí)現(xiàn)了他們的名字承諾:他們確實(shí)讓用戶可以從一個(gè)頁面自由地與Web應(yīng)用程序進(jìn)行交互。而且,由于請(qǐng)求和響應(yīng)在少量數(shù)據(jù)中進(jìn)行通信并且?guī)缀趿⒓窗l(fā)生,因此交互更加快捷。
通常,任何Web應(yīng)用程序在成為SPA后都可以顯著提高。然而,由于通用URL,單頁應(yīng)用程序與SEO規(guī)則不太兼容,因此將此類型用于電子商務(wù)可能會(huì)適得其反。然而,社交網(wǎng)絡(luò),在線視頻/音頻播放器和電子郵件服務(wù)通常會(huì)受益于此類Web應(yīng)用程序及其敏捷性。
漸進(jìn)式網(wǎng)絡(luò)應(yīng)用程序(PWA)
有人說PWA首先是一個(gè)發(fā)達(dá)的SPA,雖然理論上并不一定如此,但實(shí)際上這一點(diǎn)仍然適用。問題在于,漸進(jìn)式網(wǎng)絡(luò)應(yīng)用程序不是關(guān)于架構(gòu)中的新原則,而是提高任何Web應(yīng)用程序的性能和移動(dòng)適應(yīng)性的功能。通過HTTP / 2進(jìn)行兌現(xiàn),主屏幕安裝和更好的數(shù)據(jù)傳輸是關(guān)鍵的增強(qiáng)功能。
與SPA不同,MPA或靜態(tài)網(wǎng)絡(luò)應(yīng)用程序根本無法充分利用所有這些功能; 就其本身而言,MPA和靜態(tài)Web應(yīng)用程序在性能方面落后于SPA。此外,PWA理想之一是改善移動(dòng)Web體驗(yàn)并使其可用于Internet連接速度慢或不良的用戶。事實(shí)上,即使是具有響應(yīng)式設(shè)計(jì)的MPA也難以進(jìn)行優(yōu)化以至于“漸進(jìn)式”。
尾注
除了富Internet應(yīng)用程序之外,任何類型的Web應(yīng)用程序都不再相關(guān)是錯(cuò)誤的。無論任何Web應(yīng)用程序類型的可能性如何,它們都非常適合特定的解決方案。這就是為什么Web應(yīng)用程序類型的選擇應(yīng)該始終只是逐案處理的結(jié)果。