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

Node.JS平臺下Web前端架構的研究

2013-12-31 00:00:00鐘強
無線互聯科技 2013年12期

摘 要:高性能前端架構技術逐漸成為Web復雜產品開發的應用趨勢,然而針對目前流行的Node.js平臺下的高性能前端架構技術目前還未形成具體的技術規范。本文從介紹Node.js平臺,重點研究了前端MVC模式開發、模塊化開發、自動化構建管理、自定義廣播機制的關鍵技術。最后,通過點點手機助手應用產品的開發實踐,驗證了Node.js平臺下前端架構技術的可行性。

關鍵詞:Node.js;Web前端;前端架構;點點手機助手

1 引言

到目前為止,Web前端正處于發展的高峰期。在Web應用程序的用戶體驗越來越被重視的今天,Web前端開發的地位也上升到了前所未有的高度,更多的挑戰也隨之而來。為了將前端開發者繁重的工作變得更加簡單,架構也應運而生。

總體上看Web前端的發展已經進入了高速發展時期,前端開發已經越來越工程化,前端架構的概念只是開始流行起來,為了更好的解決Web前端所面臨的工程性問題,在Node.js平臺下的前端架構更是少之極少,因此針對解決前端日益工程化問題,以此作為本文研究出發點。

2 Web前端架構關鍵技術

2.1 模塊化開發

Sea.js是一個成熟的開源項目,核心目標就是為我們前端開發者提供簡單、極致的模塊化開發體驗。在使用Sea.js,進行書寫的時候,我們要嚴格遵守CMD(Common Module Definition)模塊定義規范。

通過exports,就可以向外提供接口。我們可以通過reqiure(‘./util.js’)就可以拿到util.js中通過exports暴漏的接口。這樣我們的前端開發就能像后端開發工程師一樣。使得JavaScript語言也擁有Java、Ptyhon、C#等語言所擁有的include、import等功能。有效的解決我們實際開發項目中命名沖突和繁瑣的文件依賴問題。

2.2 MVC開發模式

MVC(Model-View-Controller)是目前廣泛流行的軟件設計模式[1]。現在我們通過Backbone.js框架實現前端JS架構的MVC模式。

一個Model通常包含應用程序的狀態state,起到管理和接受狀態/數據發生changes的一系列基本功能。并且,我們可以通過Model可以協調這些state/data組成內容,并且持續的把它們傳送到服務器,達到數據同步的功能。

我們通過組合同一類的Model來實現Collection。這樣我們處理的Collection包含多個模型Model,根據Backbone為Collection提供的特定功能。

我們可以通過View來實現呈現模型和集合中state/data交互UI的邏輯關系。通過View允許state/data脫離DOM,使得多樣的View能使用相同的模型和集合。模型與控制器和視圖相互分離,極大地降低了耦合性。

2.3 自定義廣播機制

模塊化開發,往往最大的問題就是解耦。本文采用的是廣播機制來實現模塊之間的通信。也就是模塊之間通過發送廣播的方式和接受廣播事件的方式來實現通信,事件發起者只需要派發事件,而不必關心事件是否被接受(訂閱)。通過應用觀察者模式使得模塊之間劃分了一個清晰的界限,大大提高應用程序的可維護性和重用性。

由于對象(Object)是組成JavaScript的基本組成單元,實際上,JavaScript中的一切都是對象[2],在JavaScript中無論數據和代碼多么復雜,我們都可以將其組織成Object形式的對象[3],所以這里具體實現的方案是我們通過對象的形式,來存放被觀察對象(Subject)。隊列實現了先進先出(first-in,first-out,縮寫FIFO)的策略[4],所以使用隊列的形式存放監聽了被觀察對象(Subject)的觀察者。

2.4 自動化構建管理

為了讓程序員更加專注于編碼,大大提高前端開發人員的工作效率,前端架構設計通過Grunt工具可以實現自動化構建管理。Grunt工具設計的兩個關鍵文件是package.json和grunt.js。package.json該文件用來為npm(Node Package Manager)存放項目配置的員數據,與grunt關系最大的配置在于devDependencies中。

上面的配置就展示了,我們項目中需要的依賴工具,也就是通過npm管理的相關工具包。進行上面的package.json配置后,我們通過命令行進入項目所在目錄,鍵入npm install,npm就會根據devDependencies中的配置,將需要的工具包以及插件下載到你的項目目錄中。

現在有了項目中有了工具包了,我們該如何有效地使用工具包來為我們實現自動化工作流程。實現的關鍵就在于另一個配置文件Grunt.js文件的配置。通用Gruntfile.js寫法如下:

Grunt配置的主體都在grunt.initConfig中,其中我們看到pkg:grunt.file.readJSON(‘package.json’)是為了以后再其他任務(task)中方便讀取package.json已經定義好的值。下面我們來看看如何配置任務(task):Grunt配置的主題都在grunt.initConfig中,其中我們看到

transport就是一個任務(task),她是這次spm2所提供的一系列grunt構建插件的其中一個,該插件主要是負責提取模塊中的依賴,并為每個模塊設置模塊ID。dialog是任務的其中一個目標,files中定義了要對哪些文件執行該任務,以后的執行任務后,對于生成的文件應該放在什么地方(dest)。接下來,我們需要加載grunt需要的插件:

最后我們配置命令來執行我們上面配置好的任務。

3 點點手機助手前端架構介紹

點點手機助手是一個手機管理的桌面軟件,運行于Windows平臺。該款軟件采用了Chromium Embedded Framework(CEF)+Web的方式開發。點點手機助手的前端架構環境就是按照本文研究的架構環境進行搭建和開發。

整體前端的設計原則是一致性、復用性、可擴展性。所有的設計需要滿足這三個條件。因為整個項目都是Simple Page,采用Backbone.js實現MVC模式開發,實現業務和邏輯分離效果。采用了Sea.js實現模塊化開發。模塊化開發雖然能解決命名沖突、文件依賴、文件管理的問題,但是出現了耦合度高的難點,各個模塊之間必須完成解耦,不能相互調用形成依賴,所以采用觀察者模式設計廣播機制來通過廣播消息來出傳遞指令。

4 結論

本文在詳細分析高性能前端架構的具體研究,對于前端架構的模塊化開發、自動化構建管理實現、前端MVC模式的實現、廣播機制實現做了具體分析。后面為了更好地驗證本文研究的重要意義,以點點手機助手前端的具體實現為實例做了實踐證明。本文設計的前端架構也需要不斷的借鑒國內外先進的應用手段,在遵循Web標準化,達到兼容更多、更新瀏覽器,實現更好地提升用戶體驗效果,前端性能更進一步得到提升的目標,我們還需要不斷努力。

[參考文獻]

[1]Mike Cantelon,TJ Holowaychuk.Node.js in Action.Manning.2013.7(49).

[2]JohnResig.精通JavaScript.人民郵電出版社.2008.4(16).

[3]李戰.悟透JavaScript.北京:電子工業出版社.2008.12(13).

[4]Thomas H.Cormen,Charles E.Leiserson,Ronald L.Rivest, Clifford Stein.Introduction to Algorithms(Second Edition).機械工業出版社2006,9(200).

主站蜘蛛池模板: 欧美成人二区| 久久午夜夜伦鲁鲁片无码免费| 第一区免费在线观看| 色综合中文字幕| 免费无码又爽又黄又刺激网站 | 国产欧美日韩资源在线观看| 亚洲天天更新| 欧美中文字幕在线二区| 麻豆精品视频在线原创| 国产精品无码AV片在线观看播放| 日韩免费成人| 欧美日韩中文国产va另类| 欧美成人免费一区在线播放| 国产va视频| 亚洲精品无码不卡在线播放| 波多野吉衣一区二区三区av| 国产凹凸视频在线观看| 国产丝袜精品| 国产全黄a一级毛片| 亚洲综合一区国产精品| 精品少妇人妻无码久久| 免费无遮挡AV| 国产午夜精品鲁丝片| 青青操国产| 中文字幕免费视频| 在线视频亚洲欧美| 国产精品微拍| 精品视频在线一区| 91麻豆精品国产高清在线| 国产噜噜噜| 午夜精品久久久久久久2023| 久久夜色精品国产嚕嚕亚洲av| 在线日本国产成人免费的| 亚洲成aⅴ人片在线影院八| 伊人久久婷婷五月综合97色| a亚洲视频| 福利在线一区| 91无码人妻精品一区| 久久午夜夜伦鲁鲁片无码免费| 久久综合AV免费观看| 中国精品自拍| 99人体免费视频| 国产精品男人的天堂| 久久99国产乱子伦精品免| 日韩亚洲高清一区二区| 国产又粗又猛又爽视频| 四虎影视8848永久精品| 99热这里只有免费国产精品| 91年精品国产福利线观看久久 | 色欲色欲久久综合网| 香蕉综合在线视频91| 亚洲天堂免费| 国产在线自在拍91精品黑人| 中美日韩在线网免费毛片视频| 有专无码视频| 亚洲女同一区二区| 亚洲视频在线观看免费视频| 在线观看亚洲国产| 亚洲色图另类| 熟妇丰满人妻| 久久综合五月| 精品人妻一区无码视频| 亚洲 日韩 激情 无码 中出| 国产日韩久久久久无码精品| 精品国产成人高清在线| jizz国产在线| 午夜三级在线| 波多野结衣亚洲一区| 免费一极毛片| 天堂久久久久久中文字幕| 亚洲嫩模喷白浆| 亚洲中文字幕手机在线第一页| 中文字幕无线码一区| 日本高清视频在线www色| 欧美不卡二区| 欧美成a人片在线观看| 日本一区高清| 亚洲码在线中文在线观看| 色首页AV在线| 在线毛片免费| 高清精品美女在线播放| 国产精品自在在线午夜|