BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Reactive Extensions for JavaScript瘦身不再支持旧浏览器

| 作者 Jonathan Allen 关注 530 他的粉丝 ,译者 姚琪琳 关注 0 他的粉丝 发布于 2013年12月31日. 估计阅读时间: 3 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

RxJS 2.2进行了瘦身,在默认构建中只支持ECMA Script 5浏览器。这意味着使用Reactive Extensions for JavaScript需要IE 9、Firefox 4、Safari 6、Chrome 19或更新的版本。要想支持旧版本需要使用rx.compact.js来提供缺失的Polyfills

要进一步瘦身,开发者可以使用Rx-Lite(也叫rx.lite.js)。该库只包含最常用的特性。Rx团队的博客中这样说道,

为了避免RxJS中点菜式的传统,仅使用需要的部分,该版本只包含最常用的工厂方法中的操作符、标准查询操作符、基于时间的操作符、绑定操作符(如广播)和异步操作符(如Rx.Observable.fromEvent、Rx.Observeable.fromPromise等)。还有一个兼容版本rx.lite.compat.js,支持老一些的浏览器。整个库压缩后只有7kb大小,这在没有多少成本的情况下提供了很多可能性。

和完整版一样,Rx-Lite也是为ECMAScript 5而设计,并为老浏览器提供了可选的兼容库。

RxJS 2.2中还有一些其他方面的重大改变。首先是Rx.Observable.prototype.scan的行为,“因其属于Reactive Extensions for .NET,所以也发生了改变”。声明中还说道,

这是为了反映其他语言中的行为,如F#、Haskell等。基本规则是,如果有一个空的且有种子的可观察序列,那么应该产生(yield)这个种子。或者如果序列为空且没有种子,那么它就应该是一个空序列。这与旧版本不同,在旧版本中,即使空序列有种子,也不会产生任何东西。

其他方便的变动是将四个函数移动到新的库中:

  • Rx.Observable.toAsync移动到rx.async.js
  • Rx.Observable.start移动到rx.async.js
  • Rx.HistoricalScheduler移动到rx.virtualtime.js
  • Rx.VirtualTimeScheduler移动到rx.virtualtime.js

同样,这也是为了降低核心文件的大小。我们将在关于RxJS未来的报道中深入介绍rx.async.js。

原文链接:Reactive Extensions for JavaScript Loses Weight and Older Browsers

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT