实时Javascript开发框架Clouda、Meteor、Firebase对比
什么是實時Javascript開發框架?
自從2009年Node.js橫空出世以來,吸引了無數程序猿們的眼球:前端后端都用一樣的語言來做開發是多么和諧完美的一件事兒,前端工程師們再也不用找寫后端的大爺們配合調代碼了。Node.js的強勢是無須質疑的,基于Chrome的V8引擎、超低學習門檻、事件驅動、Socket.io、良好的模塊管理工具,給Node.js帶來了無限的想象空間。
實時開發框架里面的Realtime的意思是,前端和后端的數據交換是實時的,也就意味著一旦服務器在有了最新的數據時,前端會實時得到數據并呈現在用戶面前。據測試,這一速度可以達到10ms這一個級別。10ms什么概念?App上一次接收到數據都還沒來得及展示到用戶的屏幕上,由此帶來的用戶體驗革命可想而知:-)。
這巨大的突破來源于Node.js 的架構與 Django, Rails 等傳統的 Framework的本質的不同,它不需要放在 Nginx / Apache 后,利用 WSGI、 CGI 之類的接口一板一眼的 [接受Request] -> [運行程序邏輯] -> [生成并返回Response],而是跟前端的直接對話。這是一個巨大的變化,之前一些無法想象的功能都有可能實現了。比如 https://github.com/Miserlou/DirtyShare 可以用瀏覽器實現 P2P 的文件傳輸。正因為Node.js 可以更精細的控制 Request 和Response 的時間和內容,WebSocket 似乎天生就是為 Node.js 而生的,而配合 http://socket.io 這個神奇的庫之后,在Realtime WebApp 這個領域,Node.js 已經沒有對手了。[1]
?
介紹完實時JS開發框架的概念,該上干貨了,歡迎圍觀Clouda、Meteor、Firebase的大PK,圍觀之前請自備Node.js及MongoDB基礎知識:
共同優點:
1.? 前后端統一,只用Javascript一門語言,抹平云端界限,一份代碼處處運行。
2.? 實時數據同步,所有數據實時推送的基礎設置,每個終端都無延遲同步響應。
3.? 前端隨動反饋,面向數據的編程模型,數據實時推送后,界面會自動更新。
4.? 省流量,省掉了通過Ajax請求建立和關閉連接時的暫用的額外流量。
5.? 跨平臺,iOS、Android、PC端一應俱全。
6.? 代碼簡潔,輕輕松松幾分鐘內實現一個聊天室或TodoList的跨平臺應用。
不算缺點的缺點:
1.? 沒有Web UI,得自行解決UI問題。
2.? 前后端混合編程可能剛開始有點難以理解。
?
Clouda (開發框架):http://cloudajs.org/
優點:
1.? 專為移動,全面兼容手機、平板、PC。
2.? 高兼容性,標配數據同步工具,兼容已有服務;同時兼容Backbone等開源框架。
3.? SEO能力,原廠匹配主流搜索引擎,每個APP場景都可以被搜索引擎爬蟲抓取。(度娘的良心!)。
4.? 中文框架,簡單語法搭配豐富教程與文檔,保證快速上手,還配有5分鐘教程。
5.? 多種渲染模式,支持客戶端和服務端渲染,節省服務端或客戶端的運算資源。
6.? MVC結構,便于代碼管理及擴展開發。
缺點:
1.? 新框架,學習資料偏少。
2.? 目錄結構略微復雜,上手難度高。
3.? 完善度不高,部分代碼難以理解。
Meteor (開發框架):http://www.meteor.com
優點:
1.? 結構簡單,上手較容易(非MVC框架)。
2.? 實時代碼更新,在服務器代碼更新后,客戶端無須用戶干預,實時更新。
3.? 延遲同步機制,用戶提交的數據實時反饋在屏幕上,如果因為網絡原因數據提交失敗,數據會在網絡重新連接后上傳。
4.? 便捷發布,打包后的程序中會包含所有依賴項,讓代碼可以在任意裝有Node.js的機器運行。
5.? 互通性,支持通過DDP協議連接到NativeAPP、數據庫甚至是Arduinos。
6.? 兼容性,可以輕松的兼容其他模板框架、測試框架、Dom操作框架等。
?
Firebase (數據服務):https://www.firebase.com/
優點:
1.??????Api簡單,使用起來非常的方便,可大大減少代碼量。
2.??????可通過網頁對數據進行管理,很方便。
3.??????支持SSL、權限認證、數據安全機制。
缺點:
1. 數據結構和數據庫存儲方式不一致(由于想支持REST方式讀取數據)
2. 不能部署自己的數據庫(很多項目都需要自己維護數據庫的)
3. 目前數據操作能力較弱(有很多需求(稍微復雜點的查詢)目前Firebase很難支持)
4. 數據分析功能很弱,只能查看流量和當前在線人數(獨立數據庫的話,這部分很容易做的更強大)[2]
?
總的來說,Cloudajs具備較大的本土化資源優勢、支持SEO,Meteor的功能更強勁,Firebase更傾向于數據服務而非開發框架。
?
引用:
[1] http://www.zhihu.com/question/19653241
[2] http://cnodejs.org/topic/51f0edf7f4963ade0e082c19
總結
以上是生活随笔為你收集整理的实时Javascript开发框架Clouda、Meteor、Firebase对比的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 黑洞木马实验
- 下一篇: java的duplicate用法_Jav