写点什么

姗姗来迟的 Ember.js 1.6 版本

  • 2014-07-24
  • 本文字数:1282 字

    阅读完需:约 4 分钟

Ember.js 团队于近日发布了其 JavaScript 框架的 1.6 版本,由于增加了 AMD 加载器而导致了此次的发布延误。

官方声明中,Ember 核心团队成员Robert Jackson 描述了Ember.js 1.6 版本以后的构建如何通过 es6-module-transpiler 转换为 AMD 模块。据 Jackson 说,增加了小型 AMD 加载器来加载转换后的模块,影响了原来移动客户端的启动速度。他说:

在 1.6.0 将要发布时(5 月底)该影响引起了我们的注意,我们决定推迟发布,一直到我们修复该问题。

现在回想起来这个决定非常不明智。此修复花费了比预想更长的时间,同时人们也只能继续使用 1.5.1 版本。我们很多用户,要么没有受到影响,要么并不在意此问题,但他们为了获得本该包括在 1.6 版本中的其他修复,被迫使用 beta/canary(金丝雀)通道上的版本。

用户 Xtian 在评论声明时说:“我不大明白声明的开始几段:启动性能问题已经解决了呢?还是依然存在?”

Jackson回复内容为“还没有修复,但我们会尽快修复,并把它反向移植到1.7 beta 分支中”。

又一Ember.js 团队核心成员Stefan Penner详细描述了该问题

该修复会成为 Brian Donovan 所主导项目 square/es6-module-transpiler 下的新 bundle 格式。该修复删除了整个 AMD 加载器,同时产生更小的整体构建。这样该 bug 中的阻塞问题也会得到改善,并且删除了 ember-core 中的不当循环。

此外,启动问题貌似不会影响桌面浏览器,但是在 Android 浏览器中会消耗大量时间。

虽然此次发布有所延迟,但是 Ember 社区并没有在意,因为 1.6 版本带来的新功能以及 1.7 版本承诺的功能着实令人振奋。

在最新发布的功能中,最显著的变化有更新了 Ember.computed.empty,改善了缓存查找吞吐量,对测试友好的承诺,以及大量的 bug 修复。Jackson 特别指出,更新后的 Ember.computed.empty 会自动识别数组,不需要用户显式指定 array.[] 作为依赖键。

为了描述 Ember 的对测试友好的承诺特性,Jackson 说道:

使用 1.5.1 版本,测试时你必须在 Ember.run 循环中封装任何承诺解析,和 / 或拒绝调用,但是正常操作时相同的代码却不需要封装在循环中。在 1.6 中,在做承诺测试时,你再不需要将承诺封装在循环中。

在 1.6 版本的发布声明中,还包含了 1.7 版本的 beta 版本,该版本包含了对查询参数的支持,并且在 1.7 中默认开启。社区用户非常欢迎此功能,NetNames 的软件工程师 Adrian Meredith评论说

我将应用更新并使用了最新的查询参数,能够正常运行!(需要进行必要的更新)。看起来比我使用一个月前的 canary 通道上的版本要好得多。好样的!

Ember 1.7 的其他改进包括:

  • ember-routing-consistent-resources 功能。
  • uuid 可以跨项目使用。
  • Ember.uuid 作为内部函数使用,代替以前作为 Ember 的属性的做法。

Ember.js 基于 MIT 协议发布。InfoQ 读者可以通过 GitHub 项目向 Ember.js 贡献自己的力量。1.7 版本有望如期发布。

查看英文原文: Delayed Ember.js 1.6 released


感谢曹知渊对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-07-24 21:542750
用户头像

发布了 28 篇内容, 共 12.4 次阅读, 收获喜欢 0 次。

关注

评论

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

第1周作业提交

cqyanbo

关于研发效能推进提升的一点感受

homber

DevOps 研发效能 签约计划第二季

Prometheus Exporter (十七)JMX Exporter

耳东@Erdong

JMX Prometheus 28天写作 exporter 12月日更

JavaScript 数据结构之 Map

devpoint

set map ES6 内容合集 签约计划第二季

JavaScript 数据结构之 Set

devpoint

set ES6 内容合集 签约计划第二季

架构实战营-毕业设计

娜酱

架构实战营,第一周作业

Jude

架构实战营

左耳听风,右手敲码

homber

成长 感悟 竞争力 签约计划第二季

http协议

en

HTTP

搭建基本Jest测试框架,解读覆盖率实现原理

梁龙先森

签约计划第二季

JavaScript 数据结构之 Object

devpoint

ES6 Object 内容合集 签约计划第二季

Go error 的四种处理方式

Rayjun

Go Error

斯诺克

Tiger

28天写作

从一个乙方视角聊聊敏捷项目

Bruce Talk

Scrum 敏捷 随笔 Agile

什么是QA

homber

QA 测试开发 职场新人 签约计划第二季

netty系列之:手持framecodec神器,创建多路复用http2客户端

程序那些事

Netty HTTP 程序那些事 http2 12月日更

JavaScript 数据结构之 Number

devpoint

ES6 math 内容合集 签约计划第二季

idea-如何解决代码合并冲突?

Java个体户

IDEA

架构实战营毕业总结

Geek_d18264

架构实战营

华为中国大学生ICT大赛2021实践赛网络赛道晋级赛试题解析(答案版)

小韩

华为 网络 ICT

【Redis权威指南】「特性分析」Sentinel的特性分析典籍指南(1)

码界西柚

redis哨兵模式 redis哨兵 redis sentinel Redis 核心技术与实战 12月日更

从0到1普及前端知识 | 内容合集

你好bk

内容合集 签约计划第二季

实用机器学习笔记四:数据标注

打工人!

机器学习 学习笔记 12月日更 实用机器学习

音视频理论(2)- 音视频传输协议之 RTMP

liuzhen007

签约计划第二季

音视频实战(2)- 如何在网页端给视频添加硬水印

liuzhen007

签约计划第二季

4.《重学 JAVA》—基础语法

杨鹏Geek

Java 25 周年 28天写作 12月日更

勿拖延

Nydia

Go并不需要Java风格的GC

Robert Lu

Go 垃圾回收

架构实战营模块九作业

Geek_d18264

架构实战营

如何通过Kubernetes事件来报告错误

Robert Lu

#Kubernetes#

姗姗来迟的Ember.js 1.6版本_JavaScript_James Chesters_InfoQ精选文章