`

实时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

分享到:
评论

相关推荐

    使用Meteor全栈框架以JavaScript开发的Web聊天服务器+即时在线聊天

    Rocket.Chat是使用Meteor全栈框架以JavaScript开发的Web聊天服务器。Rocket.Chat 是特性丰富的 Slack 开源替代品之一。 主要功能:群组聊天,直接通信,私聊群,桌面通知,媒体嵌入,链接预览,文件上传,语音/视频...

    MeteorDemo:只想看看Meteor框架是什么

    Meteor框架,作为一个全栈JavaScript开发平台,自2012年发布以来,已经在Web应用开发领域引起了广泛关注。它以其实时、双向数据绑定和一体化的特性,极大地简化了Web应用的构建过程。本篇文章将通过分析“MeteorDemo...

    用javascript开发的web后台程序框架

    除了Node.js,还有一些其他的JavaScript后台框架,比如Meteor,它是一个全栈框架,提供了实时数据同步和一套完整的开发工具链。Meteor将前端和后端无缝连接,使得开发过程更为流畅,同时其Blaze模板引擎可以轻松创建...

    您的第一个Meteor应用程序:Meteor JavaScript框架的完整入门指南Your First Meteor Application: A Complete Beginner's Guide to the Meteor JavaScript Framework

    一本有关Meteor JavaScript框架的免费在线书籍,可帮助初级Web开发人员在数小时内用Meteor构建其第一个实时Web应用程序。

    Meteor全栈开发.pdf

    Meteor是一个强大的JavaScript框架,它允许开发者使用单一的编程语言和工具链,从后端数据库到前端用户界面,实现快速、高效地构建实时Web应用程序。 全栈开发是指开发者能够处理应用的各个方面,包括服务器端、...

    Discover Meteor: Build Real-Time JavaScript Web Apps 完整版

    标题《Discover Meteor: Build Real-Time JavaScript Web Apps 完整版》中蕴含的知识点主要涉及学习使用Meteor框架构建实时的JavaScript Web应用程序。Meteor是一个基于Node.js的平台,专为构建实时Web应用而设计。...

    meteor系列博客demo-004

    Meteor 是一个全栈JavaScript开发框架,用于快速构建实时Web应用。它允许开发者用单一的编程语言进行前后端的开发,大大提升了开发效率。 在Meteor中,核心概念包括以下几个方面: 1. **实时数据同步**:Meteor的...

    meteor-starter-master.zip_Meteor!_meteor开发案例

    Meteor是一个全栈JavaScript框架,用于快速构建实时Web应用。它结合了数据库、服务器和客户端的交互,让开发者可以用一套语言和工具完成整个应用的开发。"meteor-starter-master.zip"是一个包含 Meteor 开发基础示例...

    meteor-devel.zip

    在 IT 领域, Meteor 是一个备受瞩目的全栈 JavaScript 开发框架,它以其高效、灵活和易用性而闻名。当我们谈论 "meteor-devel.zip" 文件时,我们指的是 Meteor 的开发源码包,这为开发者提供了一个深入了解 Meteor ...

    InspiniaAdmin 2.6.1 Meteor_Full_Version

    总结来说,InspiniaAdmin 2.6.1 Meteor Full Version是结合了强大前端框架与全栈JavaScript开发框架的高效解决方案,它不仅提供了丰富的UI组件和实时的数据同步能力,还通过 Meteor 的便捷性,降低了开发复杂度,...

    meteor-master.zip

    Meteor,作为一个全栈JavaScript开发框架,以其独特的实时性、高效性和易用性在Web应用开发领域独树一帜。当你拿到名为"meteor-master.zip"的压缩包,你很可能已经接触到了这个强大的工具。在本文中,我们将深入探讨...

    Node.js-meteor现在是一个工具让您用一个命令立即部署Meteor应用程

    而Meteor是一个全栈的Web开发框架,它允许开发者快速构建实时的、交互性强的Web应用。Meteor基于Node.js,它将数据库、服务器、客户端紧密集成,使得数据在客户端和服务器之间可以即时同步。 描述中提到的“现在是...

    Getting Started with Meteor.js JavaScript Framework, Second Edition.pdf

    Meteor.js是一个开源的JavaScript框架,专为快速、全栈式开发现代Web应用程序而设计。Meteor框架允许开发者仅使用HTML、CSS和JavaScript就能够构建完整的应用程序,这大大简化了从前端到后端的开发流程。通过内置的...

    前端开源库-meteor-htmljs

    Meteor 是一个全栈的 JavaScript 开发框架,用于构建实时的 web 应用程序。它将数据库、服务器和客户端紧密集成,实现了数据的实时同步。 Meteor HTMLJS 是 Meteor 框架中的一个重要部分,它为模板语言提供了动态和...

    meteoris, 新 Meteoris,一个用于 Meteor的MVC和模块化框架.zip

    meteoris, 新 Meteoris,一个用于 Meteor的MVC和...Meteoris是基于 Meteor 1.2.0的实时 MVC 模块化Javascript框架。 这是Meteoris的最新版本。 在这个版本中,Meteoris仍然没有代码生成器。 如果你喜欢使用旧版本的m

    meteor系列博客demo-003

    Meteor 的这种实时数据同步机制使得开发人员可以构建响应迅速、用户体验良好的应用,无需手动处理数据的更新和刷新。然而,需要注意的是,过多的订阅可能会增加服务器和客户端的负担,因此在设计时应考虑优化数据流...

    无涯教程(LearnFk)-Meteor教程离线版.pdf

    Meteor 是一个全栈的 JavaScript 平台,用于开发现代的Web和移动应用程序。它是完全开源的,并且可以使用纯 JavaScript 进行开发,这意味着开发者不需要学习其他编程语言就能开发出跨平台的应用。 Meteor 的核心...

    前端开源库-meteor-reactive-object-map

    1. **Meteor框架**:Meteor 是一个全栈的 JavaScript 开发框架,它允许开发者用同一门语言进行后端、前端以及数据库的开发,极大地提高了开发效率。Meteor 提供了实时的数据同步机制,使得客户端和服务器之间的数据...

Global site tag (gtag.js) - Google Analytics