写点什么

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

  • 2013-12-30
  • 本文字数:771 字

    阅读完需:约 3 分钟

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

2013-12-30 04:462101
用户头像

发布了 59 篇内容, 共 25.8 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

Linux开发_介绍BMP图片上下翻转、添加水印

DS小龙哥

6月月更

【Python技能树共建】selenium入手篇

梦想橡皮擦

Python 6月月更

【Python技能树共建】文件模块

梦想橡皮擦

Python 6月月更

M_8:设计消息队列存储消息数据的 MySQL 表格

Jadedev

架构训练营

在 Golang 中构建 CRUD 应用程序

宇宙之一粟

6月月更

spring4.1.8扩展实战之二:Aware接口揭秘

程序员欣宸

Java spring Spring Framework 6月月更

FFmpeg原理

Loken

ffmpeg 音视频课程

InfoQ 极客传媒 15 周年庆征文|ZooKeeper进阶(一):Zookeeper简介

No Silver Bullet

zookeeper 运维 6月月更 InfoQ极客传媒15周年庆

数据库每日一题---第10天:组合两个表

知心宝贝

前端 后端 6月月更

iShot

IT蜗壳-Tango

6月日更 6月月更

细数攻防演练中十大关键防守点

穿过生命散发芬芳

6月月更 攻防演练

JavaScrip模块模式

大熊G

JavaScript 前端 6月月更

【建议收藏】通俗易懂图解网络知识-第一篇

利志分享

设计消息队列存储消息数据的 MySQL 表格

踩着太阳看日出

架构训练营

设计消息队列存储信息数据的MySQL表结构

dan629xy

数组

Jason199

数组 js 数组操作 6月月更

Springboot 升级到 2.6.1 的坑

Damon

微服务 微服务架构 Spring Cloud 6月月更

应用最广泛的动态路由协议:OSPF

wljslmz

OSPF 动态路由 6月月更

【愚公系列】2022年06月 面向对象设计原则(七)-迪米特法则

愚公搬代码

6月月更

C#入门系列(十三) -- 初识结构体

陈言必行

C# 6月月更

ConcurrentHashMap 源码分析-初始化

zarmnosaj

6月月更

Flutter库推荐Sizer 可帮助您轻松创建响应式 UI

坚果

6月月更

InfoQ 极客传媒 15 周年庆征文|简述构建微服务架构的四大挑战

阿泽🧸

微服务 6月月更 InfoQ极客传媒15周年庆

前端之uni-app研究学习day_1

恒山其若陋兮

6月月更

【Java Web系列】Cookie工作流程及基本使用

倔强的牛角

Java javaWeb Cookie 6月月更

『Three.js』场景 Scene

德育处主任

canvas three.js 6月月更

深入剖析 | 应用层Protocol的标准设计

九叔(高翔龙)

架构 协议 TCP/IP dubbo源码 粘包/拆包

vivo大规模 Kubernetes 集群自动化运维实践

vivo互联网技术

Kubernetes operator ansible kubeadm Kubevirt

flutter系列之:flutter中常用的GridView layout详解

程序那些事

flutter 程序那些事 6月月更

linux环境下实现银行间算法

乌龟哥哥

6月月更

MySql索引

工程师日月

6月月更

Reactive Extensions for JavaScript瘦身不再支持旧浏览器_JavaScript_Jonathan Allen_InfoQ精选文章