999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于原生JS的單頁Web應用的架構設計

2019-02-03 09:37:42施瑩
現代職業教育·職業培訓 2019年12期
關鍵詞:頁面數據庫用戶

施瑩

[摘? ? ? ? ? ?要]? 精心編寫的單頁Web應用具有互動和快速響應的界面,還伴有訪問網絡的功能。在很長一段時間內,Flash和Java都是客戶端平臺上使用最為廣泛的單頁Web應用,因為它們的功能、速度和一致性,都超過了那些使用JavaScript(JS)和瀏覽器來渲染的應用。但是最近,JS和瀏覽器渲染達到了一個引爆點,它們克服了最大的缺陷,比其他客戶端平臺具有顯著優勢。關注使用原生的JS和瀏覽器渲染來構建單頁Web應用,并提供一個基于常見JS技術架構單頁應用的解決方案。

[關? ? 鍵? ?詞]? 單頁Web應用;JavaScript;瀏覽器;架構設計

[中圖分類號]? TP393? ? ? ? ? ? ? ? ? ? [文獻標志碼]? A? ? ? ? ? ? ? ? ? ? [文章編號]? 2096-0603(2019)36-0266-02

流行的MVC框架關注的是為客戶端提供一頁頁的靜態內容,這是傳統網站慢的原因之一。例如,當瀏覽者在某個傳統網站上點擊鏈接時,頁面會“閃白”,過幾秒鐘后所有的東西都會重新加載:導航條、廣告、標題、文本和文檔底部都會重新渲染,唯一改變的東西只是一些圖片或描述性文字。這些旋轉圖標所消耗的時間成本是驚人的。更糟糕的是,當頁面中的某些元素可用的時候,卻沒有任何提示。對經驗越來越豐富的Web瀏覽者來說,這種遲鈍的、不一致的體驗就變得難以接受。

單頁Web應用(Single Page Web Application,SPA)是目前網站開發技術的熱點,是另一種更好的開發Web應用的方法。很多傳統網站都在或者已經轉型為單頁Web應用,新的單頁Web應用網站(包括移動平臺上的)也大量涌現,如Gmail、Coding、Cloud9等。

一、單頁Web應用

單頁Web應用是只有一張Web頁面的應用,它就是瀏覽器中運行的桌面應用,在使用期間頁面不會重新加載。它適合放在單個可滾動網頁上的Web應用程序或網站,它們會動態地加載合適的內容來響應用戶操作。它們支持在單個頁面上與多個組件進行豐富的交互,具有快速響應的體驗。

單頁Web應用像所有的應用一樣,旨在幫助用戶完成任務,比如“編寫內容”或者“管理Web服務器”。可以認為單頁Web應用是一種從Web服務器加載的富客戶端。

二、原生的JavaScript單頁應用

JavaScript(JS)經過很長一段時間的發展,它的大部分缺點被緩解了,它的價值優勢也水漲船高,目前已成為全球最熱門的編程語言之一。JS具有部署簡單、支持跨平臺開發、運行速度快等優點,尤其適用于絕大多數的單頁Web應用。在超過數十億計的支持現代Web瀏覽器的設備上,都能見到基于JS的單頁應用,并且不需要專有的插件。只要稍許多做點工作,它就可以支持運行很多不同操作系統的各種設備。

原生的JavaScript單頁Web應用,從前端到后端都使用JavaScript來開發,業務和顯示邏輯皆使用JavaScript來編寫,由瀏覽器執行,如圖1所示。JavaScript利用瀏覽器技術來渲染界面,如HTML5、CSS3、Canvas或者SVG,從而構建具有吸引力的、穩健的、可擴展的和易于維護的單頁Web應用。

三、單頁Web應用的架構設計

相較于傳統網站,單頁Web應用最主要的變革發生在瀏覽器端,瀏覽器一開始會加載必需的HTML、CSS、JavaScript,之后所有的操作都在這張頁面上完成,這一切都由JavaScript來控制。因此,單頁Web應用會包含大量的JavaScript代碼,復雜度可想而知,模塊化開發和架構設計的重要性不言而喻。

單頁Web應用可以使用許多服務器技術,但如果將Web應用轉移到了瀏覽器端,對服務器的要求就大大降低了。圖2展示了單頁Web應用中數據庫、服務器、客戶端(瀏覽器)的三層分工,與傳統網站相比,業務邏輯和HTML的生成從服務器遷移到了客戶端(瀏覽器)。

(一)客戶端

在客戶端(瀏覽器),使用用來操作DOM的jQuery,包括歷史管理和事件處理的插件,同時使用TaffyDB2來提供高性能的、以數據為中心的模型,使用Socket.IO提供在服務端和客戶端之間無縫的、近實時的消息傳輸。隨著單頁Web應用的崛起,各種JavaScript框架也層出不窮,如Backbon.js,Ember.js,Angular.js等,還有RequireJS等模塊加載器。但是各個框架有其自身的限制,一旦不符合框架本身的設計哲學,結果可能適得其反。不管是否使用框架庫,單頁Web應用的設計思想都是適用的。

(二)Web服務器端

單頁Web應用服務器最常見的職責是認證與授權、數據驗證和數據的存儲與同步。在服務器端,使用Node.js作為基于事件的Web服務器,Node.js使用Google V8 JavaScript引擎,擅長處理成千上萬的并發連接。在Web服務器上也使用了Socket.IO,這樣可以實現在客戶端和服務器之間快速響應和輕量的全雙工通信。由于單頁Web應用的大多數代碼都在客戶端,后端可以用任何語言編寫,只要它能很好地滿足應用的要求即可。后端使用JavaScript編寫,可以使編程環境保持一致,并能簡化全棧開發。

(三)數據庫

使用數據庫服務器,為數據提供可靠的持久存儲。數據庫要放在服務端,因為客戶端的數據存儲是臨時的,且容易發生應用錯誤、用戶錯誤或篡改用戶。在數據庫端,可使用MongoDB數據庫,它是一種NoSQL數據庫,使用JSON來保存數據和通信,包含JavaScript API和命令行接口。JSON是一種JavaScript原生的數據格式,客戶端使用的也是相同的數據格式。

當然,單頁Web應用可以使用很多其他的服務端和數據庫技術,可以不選擇JavaScript這種方式,不管后端使用的是什么技術,大部分單頁Web應用的架構思想和開發技術都是相通的。

四、原生的JavaScript單頁應用優缺點分析

(一)優點

單頁Web應用具有桌面應用的即時性,也同時具有網站的可移植性和可訪問性。單頁Web應用的最主要的優點是:它提供了更加吸引人的用戶體驗。

1.使用單一的JavaScript語言

在整個開發過程中,使用的語言是JavaScript,使用的數據格式是JSON,使用了單一的語言,這就提供了在客戶端和服務器之間移動并共享代碼的機會,大大減少了代碼的體積和復雜度,同時節省了開發人員的時間,避免了混亂,因為幾乎沒有了語言和數據格式之間的環境切換。

2.單頁Web應用可以和桌面應用一樣渲染

單頁Web應用只需重繪界面上需要變化的部分。相比之下,傳統網站的許多用戶操作都會重繪整張頁面。如果頁面很大,服務器又繁忙,或者網絡連接很慢,當瀏覽器從服務器獲取數據時,頁面會持續好幾秒或者更長時間的“閃白”等待。

3.單頁Web應用可以擁有和桌面應用一樣的響應速度

單頁Web應用盡可能地把工作數據和處理過程從服務端轉移到瀏覽器端,在本地擁有大多數需要決策判斷的數據和業務邏輯,只有數據驗證、授權和持久存儲必須要放在服務端,因此響應時間大幅縮減。傳統網站的大多數應用邏輯在服務端,對大部分的用戶輸入的響應,必須等待一個“請求—響應—重繪”的循環周期。

4.單頁Web應用可以和桌面應用一樣,把它的狀態通知給用戶

當單頁Web應用必須等待服務器響應時,可以動態地顯示進度條或繁忙指示器,用戶不會因為延時而困惑。

5.單頁Web應用與網站一樣,可以隨處訪問且跨平臺

和大多數桌面應用不一樣,精心編寫的單頁Web應用可以在提HTML5瀏覽器的任何操作系統上運行,用戶可以通過任何網絡連接來訪問單頁Web應用,包括智能手機、平板電腦、電視、筆記本電腦和臺式計算機。

(二)缺點

1.單頁Web應用目前遇到最大的挑戰就是對搜索引擎不友好,JavaScript生成的頁面內容不能被搜索。搜索引擎為網站建立索引的時候,爬蟲機器人并不會執行單頁Web應用用來生成內容的JavaScript,這樣用戶就無法通過搜索引擎找到所需的東西。這對單頁Web應用非常不利,如果不能出現在搜索引擎上,意味著可能會對業務造成打擊。這個棘手的SEO問題需要搜索引擎公司和開發人員的不斷嘗試和配合。

2.單頁Web應用要在一個頁面上為用戶提供產品的所有功能,這個頁面首次加載的時候,需要生成大量的靜態資源,這個加載時間相對比較長。

3.單頁Web應用開發難度相對較高,開發者需要同時對組件化、設計模式有所認識。由于單頁Web應用的很多邏輯從服務器轉移到了瀏覽器端,開發單頁Web應用所需要編寫的JavaScript代碼,在規模上至少要比傳統網站大一個數量級。開發人員所面對的不再是一個簡單的網頁,而是一個運行在瀏覽器環境中的桌面軟件。

五、總結

單頁Web應用的發展造就了H5更為接近原生APP的體驗。對想要保持盡量好的用戶體驗的同時,又要節省研發成本的團隊而言,無疑是一個不錯的選擇。單頁Web應用的開發會遇到很多挑戰,但隨著技術的不斷發展和開發者的不斷努力,這些挑戰會被一一突破。

參考文獻:

[1]埃米頓.A.斯科特.SPA設計與架構:理解單頁面Web應用[M].北京:電子工業出版社,2016:8-9.

[2]本·雷迪.Serverless架構:無服務器單頁應用開發[M].北京:電子工業出版社出版,2017:306-308.

[3]彭玲玲,李詩瑩,馮爽.基于前端的Web性能優化[J].電子技術與軟件工程,2017(24).

[4]仇晶,黃巖,柴瑜晗.基于Node.js中間層Web開發的研究與實現:以微信圖書借閱平臺為例[J].河北工業科技,2017(2).

◎編輯 趙瑞峰

猜你喜歡
頁面數據庫用戶
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
主站蜘蛛池模板: 欧美亚洲欧美区| 国产精品大尺度尺度视频| 国产成人精品在线| 亚洲第一黄色网址| 69国产精品视频免费| 国产一区二区三区免费观看| 亚洲欧美成人综合| 国产亚洲日韩av在线| 91青青草视频| 风韵丰满熟妇啪啪区老熟熟女| 精品国产自在在线在线观看| 亚洲精品国产成人7777| 中文字幕在线不卡视频| 亚洲婷婷丁香| 国产网站免费看| 亚洲中文字幕无码爆乳| 99热这里只有精品国产99| 四虎国产精品永久一区| 69视频国产| 精品亚洲欧美中文字幕在线看 | 亚洲视频免费在线看| 91精品在线视频观看| 香蕉视频在线精品| 欧美亚洲国产视频| 国产精品手机视频一区二区| 国产精品第5页| 日韩少妇激情一区二区| 亚欧成人无码AV在线播放| 久久无码av三级| 色婷婷狠狠干| 国产亚洲高清视频| 国产精品 欧美激情 在线播放| 美女毛片在线| 久久熟女AV| 日韩a级毛片| 999精品视频在线| 亚洲天堂免费| 日韩乱码免费一区二区三区| 国产成人精品日本亚洲| 欧美亚洲国产日韩电影在线| 欧美综合激情| 欧美、日韩、国产综合一区| 国产精品第一区在线观看| 亚洲日韩AV无码精品| 一本一道波多野结衣av黑人在线| 国内精品久久九九国产精品 | 中文字幕 91| 久久伊伊香蕉综合精品| 99无码熟妇丰满人妻啪啪| 韩日免费小视频| 亚洲欧洲自拍拍偷午夜色无码| 97精品国产高清久久久久蜜芽| 国产成人成人一区二区| 欧美视频免费一区二区三区| 91福利在线看| 五月婷婷丁香色| 中文国产成人精品久久一| 国产亚洲高清在线精品99| 免费高清毛片| 欧美日韩中文国产va另类| 久久精品只有这里有| 中文字幕日韩视频欧美一区| 巨熟乳波霸若妻中文观看免费| 国产经典在线观看一区| 国产精品刺激对白在线| 国产精品毛片一区视频播| 中文字幕永久视频| 伊人AV天堂| 91成人在线免费视频| www.亚洲一区| 狠狠ⅴ日韩v欧美v天堂| 国产视频欧美| 欧美A级V片在线观看| 国产专区综合另类日韩一区 | 欧美高清三区| 欧美激情综合| 国产日本视频91| 婷婷综合色| 最新无码专区超级碰碰碰| 婷婷综合色| 白浆免费视频国产精品视频| 午夜无码一区二区三区|