在電腦上,網(wǎng)絡(luò)應(yīng)用或者網(wǎng)絡(luò)app是運行在瀏覽器上服務(wù)用戶的軟件應(yīng)用。普通的網(wǎng)絡(luò)應(yīng)用包括:郵箱,在線零售業(yè),在線拍賣,百科,及時通訊軟件以及
很多其他的功能。
定義以及相似的項目:
任何種類的動態(tài)網(wǎng)絡(luò)頁面以及“網(wǎng)絡(luò)應(yīng)用”之間的區(qū)別是模糊的。被稱為網(wǎng)絡(luò)應(yīng)用的網(wǎng)頁挺長具有和桌面軟件應(yīng)用或者手機軟件相似的功能。HTML5引入了復雜的語言支持,以便創(chuàng)造出在網(wǎng)頁端加載,但能在本地存儲空間以及線下繼續(xù)功能的應(yīng)用。
單頁面應(yīng)用更可能應(yīng)用化,由于它們拒絕了典型的網(wǎng)絡(luò)樣式:通過不同的URL在不同的頁面上移動。像Sencha Touch以及AngularJS的這種單頁面框架,可能被用于在手機上快速開發(fā)網(wǎng)絡(luò)應(yīng)用。
手機網(wǎng)頁應(yīng)用
當制作網(wǎng)頁應(yīng)用的時候,有一些方法來針對手機端:
1)響應(yīng)式網(wǎng)頁設(shè)計能被用于開發(fā)網(wǎng)頁應(yīng)用——無論在傳統(tǒng)網(wǎng)頁端或者小屏的,在觸屏上工作良好的單頁應(yīng)用視窗
2)在沒有網(wǎng)頁瀏覽器的前提下(以及潛在的沒有網(wǎng)絡(luò)連接需要),本地應(yīng)用或者移動易用直接在手機端運行,就像傳統(tǒng)的軟件應(yīng)用直接在電腦桌面上運行;這些應(yīng)用通常是以Java(用于安卓系統(tǒng))或者C語言或者Swift(用于ios系統(tǒng))寫成。最近,框架諸如React Native以及Flutter允許開發(fā)使用多種平臺語言,而非標準本地語言。(跨平臺性)
3)混合應(yīng)用包括了在本地應(yīng)用的一個移動網(wǎng)絡(luò)站點,可能使用了像Apache CordovaandIonicorAppcelerator Titanium 這種混合框架。這允許開發(fā)使用網(wǎng)絡(luò)技術(shù)(可能直接從現(xiàn)有的移動網(wǎng)頁拷貝過來的代碼)但也包括本地應(yīng)用的某些優(yōu)勢(比如說:直接鏈接硬件,線下操作以及應(yīng)用商店可視化。)
歷史
在早期的電腦模型,例如用戶端中,加載應(yīng)用的過程在服務(wù)端代碼以及下載在本地用戶上代碼共享。也就是說,一個應(yīng)用有它自己的預(yù)編譯用戶程序,作為它自己的用戶界面以及在每個用戶個人電腦上分開安裝。服務(wù)端代碼的一個升級也要求用戶端代碼的升級,增加了支持花費,減少了創(chuàng)造性。除此之外,用戶端以及服務(wù)端的應(yīng)用內(nèi)容經(jīng)常緊緊的聯(lián)系在電腦架構(gòu)以及操作系統(tǒng)中,以至于改變他們的代價十分昂貴,對于大型應(yīng)用猶勝。(當然現(xiàn)在,面向移動端的本地應(yīng)用也被這些往期問題困擾著)
相反,網(wǎng)絡(luò)應(yīng)用使用以HTML以及JS語言寫成的標準網(wǎng)絡(luò)文件格式,能被大量的網(wǎng)頁瀏覽器支持。網(wǎng)絡(luò)應(yīng)用能被認為是特殊的用戶端服務(wù)軟件種類,在訪問相關(guān)網(wǎng)頁的時候,使用標準程序諸如HTTP協(xié)議,用戶軟件下載到用戶機器中。用戶網(wǎng)頁軟件會在每一次訪問網(wǎng)頁的時候被升級。在這個過程中,網(wǎng)頁瀏覽器闡釋以及表述了頁面,并且對位任何網(wǎng)頁應(yīng)用的廣域用戶(universal client)。
早期,網(wǎng)絡(luò)上的每個網(wǎng)頁是作為靜態(tài)文件傳輸給用戶的,但是一系列也變依舊能提供了一種交互體驗,例如用戶在網(wǎng)頁上填表,按按鈕的時候。然而,每一個特別的網(wǎng)頁變化需要訪問服務(wù)端以刷新整個頁面。
1995年,網(wǎng)際開發(fā)了一個用于段插件語言,叫做JavaScript,允許程序員增加一些動態(tài)元素到用戶界面。所以不用加載整個頁面了,這種被加載到也變的添加性腳本能實現(xiàn)許多人物,例如輸入確認或者顯示或者隱藏頁面的一部分。
96年,Macromedia開發(fā)了Flash,一種矢量動畫播放器,能作為插件被加到瀏覽器中,來實現(xiàn)網(wǎng)頁的動態(tài)化。其允許使用腳本語言來編寫用戶端的交互而不用連接服務(wù)端。
99年,“網(wǎng)頁應(yīng)用”這個概念首次面世。此時JS以及擴展性標記語言已經(jīng)被開發(fā)出來了,但是異步JavaScript和XML(Ajax)還沒有出現(xiàn),可擴展超文本傳輸請求(XMLHttpRequest)只剛剛作為ActiveX隊形引入到IE5中。
05年,Ajax被創(chuàng)造了出來,像Gmail的應(yīng)用開始使他們的用戶端更加交互。一個網(wǎng)頁頁面腳本能聯(lián)系服務(wù)端,以存儲/發(fā)出數(shù)據(jù)而不用加載整個網(wǎng)頁。
11年,H5完成。提供了作圖以及多媒體(播放視頻)能力,而不需要用戶端的插件。HTML5也又花了文件的動態(tài)特點。應(yīng)用程序編程接口(API)以及文檔對象模型(DOM)再也不是后來添加的東西了,而是作為HTML5特點的基本部件。WebGL應(yīng)用程序接口提供了基于HTML5框架以及JS的高級3D繪圖技術(shù)。這些對于創(chuàng)建真正的平臺以及瀏覽器獨立的強網(wǎng)絡(luò)應(yīng)用(rich Internet application(RIAs dominate in?browser based gaming?as well as applications that require access to video capture)),十分重要。
結(jié)構(gòu)
應(yīng)用經(jīng)常被分解為稱作“級”的邏輯塊,每一級部署了一個任務(wù)。傳統(tǒng)應(yīng)用只含有一級,在用戶端運行,但是網(wǎng)絡(luò)應(yīng)用存在n級。雖然多級是可能的,但是通常結(jié)構(gòu)是三集應(yīng)用。這三級分別為“顯示”,“應(yīng)用”以及“儲存”。網(wǎng)絡(luò)瀏覽器是第一級“顯示”;使用動態(tài)網(wǎng)絡(luò)內(nèi)容技術(shù)的工程(such as?ASP,CGI,ColdFusion,Dart,JSP/Java,Node.js,PHP,PythonorRuby on Rails) 是二級(應(yīng)用邏輯);數(shù)據(jù)庫是三級(存儲)。網(wǎng)絡(luò)瀏覽器趨向于需要二級應(yīng)用,讓他們能使用以及升級數(shù)據(jù)庫并且生成用戶界面。(后略)
商業(yè)用途
有一種趨勢顯示,應(yīng)用軟件公司正在提供之前只是作為本地應(yīng)用的網(wǎng)頁通道。取決于應(yīng)用的類別,其可能需要開發(fā)完全不同的基于瀏覽器的界面,或者通過完全不同的技術(shù)來模擬現(xiàn)成的應(yīng)用。這些軟件允許用戶花費月費或者年費來使用網(wǎng)絡(luò)應(yīng)用而不用下載到本地硬盤中。使用這種策略的公司被稱作應(yīng)用服務(wù)商ASP,ASP最近在軟件工業(yè)上關(guān)注度很高。
這些應(yīng)用的安全性是關(guān)注重點,由于其能提供企業(yè)信息以及私人用戶信息。保護這些東西是任何網(wǎng)頁應(yīng)用的一個重要的部分,在開發(fā)過程中,一些重要的操作區(qū)域必不可少。其包括身份認證,授權(quán)證書,資產(chǎn)處理,輸入,記錄以及審計。從一開始建立軟件的安全性是更高效。
云計算網(wǎng)頁應(yīng)用模型是一種軟件服務(wù)。有些商業(yè)應(yīng)用免費給企業(yè)提供軟件服務(wù)。有些軟件服務(wù)免費提供使用,通常在頁面顯示廣告來獲取收入。
開發(fā)網(wǎng)頁應(yīng)用
編寫網(wǎng)頁應(yīng)用通常被開源軟件所簡化,例如Django,Ruby on RailsorSymfonycalledweb application frameworks. (網(wǎng)頁應(yīng)用框架)。這些框架通過允許開發(fā)團隊關(guān)注和他們目標高度相關(guān)的應(yīng)用部分,而不需解決通常的開發(fā)問題(例如用戶管理)以允許快速應(yīng)用開發(fā)?!?/i>
使用網(wǎng)頁應(yīng)用框架在程序中會減少大量錯誤,通過簡化代碼,以及允許一個團隊關(guān)注框架而另一個關(guān)注用戶的特殊需求?!蚣芤泊偈沽藘?yōu)秀實踐的使用,例如GET after POST.
除此之外,也可能開發(fā)基于網(wǎng)頁操作系統(tǒng)的應(yīng)用,雖然最近沒有足夠的平臺來適應(yīng)這一模型。
應(yīng)用
1)簡單的辦公軟件:文字處理,在線表格,演示工具(word processors,online spreadsheets, andpresentation tools )
2)復雜的應(yīng)用:項目管理,電腦輔助設(shè)計,軟件設(shè)計,視屏剪輯以及網(wǎng)頁銷售(project management,computer-aided design,video editingandpoint-of-sale)