什么是实时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对比相关推荐

  1. 10 个优秀的JavaScript开发框架

    实用的Javascript开发框架 JavaScript基本上是一个面向对象的脚本语言,创建web应用程序和互动网站.Javascript框架也被称为Javascript库.JavaScript框架很 ...

  2. 移动WebApp开发框架 Clouda!

    官方地址:http://baidu.csdn.net/ 实例地址:http://cloudajs.org/docs/step1_getting_started 一.定义 Clouda是简单,可依赖的实 ...

  3. es mysql 同步插件_[es和数据库怎么同步]mysql与elasticsearch实时同步常用插件及优缺点对比(ES与关系型数据库同步)...

    目前mysql与elasticsearch常用的同步机制大多是基于插件实现的,常用的插件包括:elasticsearch-jdbc,elasticsearch-river-MySQL,go-mysql ...

  4. 《JavaScript开发框架权威指南》——1.4 查找、添加和删除Bower包

    本节书摘来自异步社区<JavaScript开发框架权威指南>一书中的第1章,第1.4节,作者:[美]Tim Ambler , Nicholas Cloud著,更多章节内容可以访问云栖社区& ...

  5. 《JavaScript开发框架权威指南》——2.4 处理任务

    本节书摘来自异步社区<JavaScript开发框架权威指南>一书中的第2章,第2.4节,作者:[美]Tim Ambler , Nicholas Cloud著,更多章节内容可以访问云栖社区& ...

  6. 中文书籍对《人月神话》的引用(20211105更新161-165本):大师品软件、JavaScript开发框架权威指南

    中文书籍对<人月神话>的引用(第001到160本)>> <人月神话>于1975年出版,1995年出二十周年版.自出版以来,该书被大量的书籍和文章引用,直到现在热潮不 ...

  7. 推荐一些优秀的JavaScript开发框架

    JavaScript基本上是一个面向对象的脚本语言,创建web应用程序和互动网站.Javascript框架也被称为Javascript库.JavaScript框架很容易提高设计web开发工作,提供了许 ...

  8. 2015年最新出炉的JavaScript开发框架

    前端框架简化了开发过程中,像 Bootstrap 和 Foundation 就是前端框架的佼佼者.在这篇文章了,我们编制了一组新鲜的,实用的,可以帮助您建立高质量的 Web 应用程序的 JavaScr ...

  9. python和javascript详细对比_python与javascript 引入模块的方法对比

    1.引入整体模块对比 python 方法一: #引入全部函数 from xxx import * #直接使用模块里面的各函数或者属性 test() 方法二: #引入全局的模块 importglobal ...

  10. 逐行分析鸿蒙系统的 JavaScript 开发框架

    近日,鸿蒙终于发布了,开发者们也着实"沸腾"了.笔者也第一时间下载了源码,研究了一个晚上,顺带写了一个 hello world 程序,还顺手给鸿蒙文档提了 2 个 PR. 当然我最 ...

最新文章

  1. linux 查看端口被哪个程序占用
  2. rust风化速度_反驳《Golang、Rust的执行速度的对照,让人大吃一惊。》——不会别瞎说...
  3. java输出的文本内容不对_java 字符串写入文件后再读出不一样? 有什么解决办法吗?...
  4. 深入大数据安全分析(1):为什么需要大数据安全分析?
  5. ubuntu安装chrome及firefox
  6. uniapp延迟执行_uni-app android 调试运行首页一直卡在加载中
  7. 3.sf2 核心目录及文件结构
  8. 键盘视频鼠标(KVM)切换器基础知识
  9. 关于VMware的Server版卸载须知
  10. linux安装搜狗错误,centos安装sogou出错
  11. java ee课程设计_javaee课程设计
  12. 投入大小的伪原创工具
  13. 网站页面要怎么设计?
  14. AI绘图打开二次元世界
  15. 数据库1NF 2NF 3NF范式解释
  16. CSharp + OpenCvSharp实现医学图像拼接
  17. 力扣209. 长度最小的子数组
  18. java中使用tika_【Tika基础教程之中的一个】Tika基础教程
  19. 深度:传统服装品牌大量进入,老年身体机能变化催生数千亿中老年服装市场!
  20. 「多语言图像描述」最强评估基准XM3600来了!涵盖36种语言

热门文章

  1. OPC DA 到 OPC UA
  2. Codeforces::GYM 102896E Easy Measurements
  3. Allure测试报告定制化
  4. ReportNG测试报告的定制修改
  5. fireworks html制作,fireworks怎么制作网页
  6. oracle 11 ora 12514,oracle 11g ORA 12514错误,我的解决办法
  7. 系统分析和设计方法之输出设计和原型化
  8. (附源码)node.js外卖平台 毕业设计 151448
  9. 万网域名修改 DNS 方法
  10. Unity Resource文件夹的使用