什么是实时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更倾向于数据服务而非开发框架。
引用:
相关推荐
Rocket.Chat是使用Meteor全栈框架以JavaScript开发的Web聊天服务器。Rocket.Chat 是特性丰富的 Slack 开源替代品之一。 主要功能:群组聊天,直接通信,私聊群,桌面通知,媒体嵌入,链接预览,文件上传,语音/视频...
一本有关Meteor JavaScript框架的免费在线书籍,可帮助初级Web开发人员在数小时内用Meteor构建其第一个实时Web应用程序。
流星演示只想看看Meteor框架是什么
meteoris, 新 Meteoris,一个用于 Meteor的MVC和...Meteoris是基于 Meteor 1.2.0的实时 MVC 模块化Javascript框架。 这是Meteoris的最新版本。 在这个版本中,Meteoris仍然没有代码生成器。 如果你喜欢使用旧版本的m
meteor-devtools, 用于 Meteor的非常方便的开发工具 Meteor 玩具Meteor 玩具是应用开发工具中的一组,用于转换你的开发体验。 因为它们是debugOnly包,所以它们不会编译到你的生产构建中。 :玩具提供的功能是什么?...
meteor-electron, Meteor 电子,创建桌面 Meteor 应用程序最简单的方法 电子meteor电子让你轻松地将 Meteor webapp转换为桌面应用。 它的最终目标是构建 meteor add-platform desktop 。它所做的一些事情:自动生成...
Meteor 是一个构建在 Node.js 之上的平台,用来开发实时网页程序。Meteor 位于程序数据库和用户界面之间,保持二者之间的数据同步更新。在过去的几年中,我们一直在开发很多个 Meteor 项目,范围从网站到移动应用,...
很实用的Meteor书籍,很清楚,对自己学习很有帮助,大家可以好好学习一下
Meteor is one of the most popular development platforms available today, allowing you to create and deploy mobile and web applications in a fraction of the time needed by other JavaScript frameworks....
来自于meteor系列博客. API publish and subcribe describe
meteor是一个web APP开发框架,你只需要使用HTML+css+js就可以独立开发一个web APP。你可以轻松完成全栈式开发的所有工作。
Getting Started with Meteor.js JavaScript Framework
MeteorDDP确实有助于使用iOS的本机Swift集成以meteor(用javascript编写的框架)编写的服务器。 Meteor是基于节点的完整堆栈框架,可用于创建React式Webapp,可以轻松将其移植到Android和iOS平台。 响应式Webapp...
Meteor Web Application Development Cookbook Meteor应用开发参考
基于复杂的事情简单化,简单的事情重复做的原则,比如我们一般情况下开发应用时纵向来分,每人一个模块,这样做会把程序员熟悉的不熟悉的各个方面都做到,对于不熟悉的点程序员会花时间去研究,从而导致项目进度慢!...
关于Meteor框架,目前最好的学习教程
meteor-up-legacy, 生产质量 Meteor 部署 Meteor这里版本不再维护。Mupx 是稳定版本。新开发移至以下位置: https://github.com/kadirahq/meteor-up 。产品质量 Meteor 部署Meteor 是一个支持你将任何 Meteor
meteor-electron-client, 使用 Meteor 构建桌面应用程序的样板 ! meteor-electron-client使用 Meteor 构建桌面应用程序的样板 !:为什么要构建带有的电子应用?这个项目是由这个视频启发的 ! Meteor 是在构建...