<ruby id="66w77"><video id="66w77"></video></ruby>
<ruby id="66w77"><option id="66w77"><thead id="66w77"></thead></option></ruby>
  • <ruby id="66w77"><table id="66w77"></table></ruby>

  • <ruby id="66w77"><table id="66w77"></table></ruby>
    <strong id="66w77"></strong>

    Web應用程序的類(lèi)型:從靜態(tài)Web頁(yè)面到漸進(jìn)式Web應用程序

    2020-05-04 11:26:01分類(lèi):Web應用開(kāi)發(fā)12423

      在本文中,我們將介紹各種類(lèi)型的Web應用程序,以幫助您確定哪種架構最適合您的下一個(gè)項目。

      隨著(zhù)Web應用程序開(kāi)發(fā)技術(shù)的發(fā)展,在線(xiàn)體驗的標準和要求也在不斷發(fā)展。視覺(jué)呈現的變化現在是最明確的,但由于Web架構的轉變,它們才成為可能。

      跟上各種類(lèi)型的Web應用程序的所有縮寫(xiě)可能非常困難。畢竟,網(wǎng)絡(luò )應用程序的進(jìn)步也不是一個(gè)簡(jiǎn)單的過(guò)程:新的類(lèi)型和方法不一定會(huì )與現有的類(lèi)型和方法產(chǎn)生很大的差異,而是隨著(zhù)時(shí)間的推移穩步引起改進(jìn)。

      盡管如此,游戲的名稱(chēng)通常會(huì )將選擇范圍縮小到適合個(gè)人業(yè)務(wù)需求的網(wǎng)絡(luò )應用類(lèi)型。希望我們的分類(lèi)可以幫助您做到這一點(diǎn)。如果您不確定所描述的應用類(lèi)型的可能用例,請隨時(shí)參閱本文,深入研究企業(yè)Web應用,Web門(mén)戶(hù)和其他類(lèi)型的Web應用的功能。

      靜態(tài)Web應用程序

      在技術(shù)實(shí)現方面,所有Web應用程序首先是靜態(tài)的或動(dòng)態(tài)的。然而,雖然“動(dòng)態(tài)”是一大群子類(lèi)型,但“靜態(tài)”可以被視為一種架構類(lèi)型。

      “靜態(tài)”一詞來(lái)自這些網(wǎng)絡(luò )應用程序缺乏靈活性。靜態(tài)Web應用程序的頁(yè)面由服務(wù)器生成,幾乎沒(méi)有(沒(méi)有使用JavaScript代碼)交互性。通常,不存在個(gè)性化空間,任何可能的更改僅在完整頁(yè)面重新加載后生效。

      靜態(tài)網(wǎng)頁(yè)通常難以維護,并且它們發(fā)送和接收的過(guò)多數據會(huì )產(chǎn)生性能不佳的風(fēng)險。毋庸置疑,它們并不適合移動(dòng)環(huán)境。盡管如此,當共享非常簡(jiǎn)潔的信息并且不需要交互時(shí),靜態(tài)Web應用程序可以是實(shí)際操作選擇。


    Web應用程序的類(lèi)型:從靜態(tài)Web頁(yè)面到漸進(jìn)式Web應用程序
     

      動(dòng)態(tài)Web應用程序

      任何動(dòng)態(tài)Web應用程序都基于框架 - 控制網(wǎng)頁(yè)構建和便于維護的Web應用程序軟件。這些Web應用程序在用戶(hù)屏幕上顯示的方式不是預先確定的,而是由應用程序邏輯在app的服務(wù)器端或客戶(hù)端實(shí)現的動(dòng)態(tài)形狀。

      動(dòng)態(tài)Web應用程序的工作方式不同,其用例決定了它們的開(kāi)發(fā)方法和架構。

      多頁(yè)面應用程序(MPA)

      在多頁(yè)面Web應用程序中,邏輯幾乎完全在后端。這意味著(zhù),要使任何更改生效,來(lái)自客戶(hù)端的所有請求都將轉到服務(wù)器并返回。除了使用框架之外,這個(gè)原則幾乎與過(guò)去的靜態(tài)Web應用程序相同。

      然而,現在,MPA利用AJAX技術(shù),無(wú)需完整頁(yè)面重新加載即可實(shí)現即時(shí)更改。如果設計為響應式,此類(lèi)網(wǎng)絡(luò )應用甚至可以適應移動(dòng)環(huán)境。此外,由于用戶(hù)無(wú)法訪(fǎng)問(wèn)邏輯,MPA非常安全,因此廣泛用于Web門(mén)戶(hù)和企業(yè)Web應用程序。

      富Internet應用程序(RIA)

      最初,RIA試圖克服瀏覽器限制,并嚴重依賴(lài)客戶(hù)端插件,如Flash,Shockwave和Silverlight。由用戶(hù)安裝和定期維護,這些插件應該解釋W(xué)eb應用程序頁(yè)面的一些高度交互的部分,或者有時(shí),Web應用程序的核心。

      問(wèn)題在于插件的漏洞以及它們造成的一些不便:如果插件有點(diǎn)過(guò)時(shí),Web應用程序的某些部分,或者有時(shí)整個(gè)應用程序,都沒(méi)有機會(huì )正常運行。最終,在引入HTML5之后放棄了許多插件(當與JavaScript結合使用時(shí),通常會(huì )在功能方面與Flash進(jìn)行比較),因此RIA沒(méi)有保留其初始形式,并且大部分已經(jīng)變?yōu)槠渌?lèi)型的Web應用程序現在。

      JavaScript-Powered Web Apps

      隨著(zhù)諸如Angular,React,Meteor和Ember等前端JavaScript框架的出現,Web應用程序的邏輯已經(jīng)開(kāi)始向客戶(hù)端轉移,從而允許比偶爾嵌入的AJAX更好的靈活性??蛻?hù)端邏輯已經(jīng)開(kāi)始接管服務(wù)器端處理用戶(hù)請求和呈現響應的責任。

      使用JavaScript框架創(chuàng )建的Web應用程序顯示出良好的性能,提供不同級別的用戶(hù)交互,并且是移動(dòng)和搜索引擎優(yōu)化的。此類(lèi)Web應用程序廣泛用于各種行業(yè),并用作電子商店,客戶(hù)端門(mén)戶(hù)和商業(yè)Web應用程序。

      單頁(yè)應用(SPA)

      由于邏輯的客戶(hù)端實(shí)現,SPA成功實(shí)現了他們的名字承諾:他們確實(shí)讓用戶(hù)可以從一個(gè)頁(yè)面自由地與Web應用程序進(jìn)行交互。而且,由于請求和響應在少量數據中進(jìn)行通信并且幾乎立即發(fā)生,因此交互更加快捷。

      通常,任何Web應用程序在成為SPA后都可以顯著(zhù)提高。然而,由于通用URL,單頁(yè)應用程序與SEO規則不太兼容,因此將此類(lèi)型用于電子商務(wù)可能會(huì )適得其反。然而,社交網(wǎng)絡(luò ),在線(xiàn)視頻/音頻播放器和電子郵件服務(wù)通常會(huì )受益于此類(lèi)Web應用程序及其敏捷性。

      漸進(jìn)式網(wǎng)絡(luò )應用程序(PWA)

      有人說(shuō)PWA首先是一個(gè)發(fā)達的SPA,雖然理論上并不一定如此,但實(shí)際上這一點(diǎn)仍然適用。問(wèn)題在于,漸進(jìn)式網(wǎng)絡(luò )應用程序不是關(guān)于架構中的新原則,而是提高任何Web應用程序的性能和移動(dòng)適應性的功能。通過(guò)HTTP / 2進(jìn)行兌現,主屏幕安裝和更好的數據傳輸是關(guān)鍵的增強功能。

      與SPA不同,MPA或靜態(tài)網(wǎng)絡(luò )應用程序根本無(wú)法充分利用所有這些功能; 就其本身而言,MPA和靜態(tài)Web應用程序在性能方面落后于SPA。此外,PWA理想之一是改善移動(dòng)Web體驗并使其可用于Internet連接速度慢或不良的用戶(hù)。事實(shí)上,即使是具有響應式設計的MPA也難以進(jìn)行優(yōu)化以至于“漸進(jìn)式”。

      尾注

      除了富Internet應用程序之外,任何類(lèi)型的Web應用程序都不再相關(guān)是錯誤的。無(wú)論任何Web應用程序類(lèi)型的可能性如何,它們都非常適合特定的解決方案。這就是為什么Web應用程序類(lèi)型的選擇應該始終只是逐案處理的結果。

    上一篇:下一篇:
    92视频在线精品国自产拍_乱色熟女综合一区二区_国产精品毛片久久久久久久_久天啪天天久久99久孕妇
    <ruby id="66w77"><video id="66w77"></video></ruby>
    <ruby id="66w77"><option id="66w77"><thead id="66w77"></thead></option></ruby>
  • <ruby id="66w77"><table id="66w77"></table></ruby>

  • <ruby id="66w77"><table id="66w77"></table></ruby>
    <strong id="66w77"></strong>