NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

NativeScript 2.4 版本发布,支持 Web Workers 规范

  • 2016-12-01
  • 本文字数:1619 字

    阅读完需:约 5 分钟

NativeScript 2.4 版本发布,该版本将支持 Angular 2.2、Node 6、ES6 和 ES7,同时附带了默认的 CSS 主题。

在 NativeScript 2.4 版本的发布声明中,来自Telerik 的Valio Stoychev 声称:“这是我们有史以来最重量级的一次发布。在过去的两个月里我们增加了很多新的功能,并且对原有功能进行了优化和改进。NativeScript 的插件社区已经拥有超过360 种插件可供开发者使用,插件社区所贡献的代码数量已经远超NativeScript 核心开发团队,这对任何一个开源项目来说,都是一个巨大的里程碑。”

NativeScript 2.4 版本中有一个备受关注的改进,Stoychev 是这样描述它的:“有了这个改进,我们可以在后台线程中执行代码,这样做可以大大减少 UI 线程的压力”。该特性曾在 NativeScript 的 2.2版本中被提到,根据 NativeScript 核心文档对多线程模型的描述,使用 Web Workers 规范的主要目的在于“解决 UI 刷新速度慢的问题,因为 UI 的响应速度和性能是十分重要的”。

开发人员可以使用 NativeScript 提供的解决方案来实现多线程开发——即使用多个工作线程。工作线程是一种在后台线程上运行的脚本,这些脚本运行在一个完全独立的环境中。一些可能花费较长时间来运行的任务应该被放置到工作线程中运行。

下面的图片中展示了 workers/image-processor.js 文件的代码内容

复制代码
require('globals'); // 我们需要在新的线程上来导入这个模块
onmessage = function(msg) {
var request = msg.data;
var src = request.src;
var mode = request.mode || 'noop'
var options = request.options;
var result = processImage(src, mode, options);
var msg = result !== undefined ? { success: true, src: result } : { }
postMessage(msg);
}
function processImage(src, mode, options) {
console.log(options); // 如果在这行语句调用之前,`globals`模块没有被导入,此处则会抛出一个异常
// 图像处理逻辑
// 存储图像,获得图像位置
// 返回处理过的图像地址
return updatedImgSrc;
}
// 这里不使用`onerror`来处理错误
// 这些错误则会直接传播到主线程的 Worker 实例

为了帮助开发人员在设计应用程序时更有效率,NativeScript 的代码示例项目现在已经有超过30 个代码示例,这些示例专门为常见的移动设备屏幕和功能而设计。NativeScript 现在默认附带了自己的CSS 主题。Stoychev 说,由于这些CSS 主题使用SASS 作为CSS 预编译器,开发人员可以通过改变SASS 变量来更换他们应用程序的主题颜色。

NativeScript 默认携带的主题有各种各样的 CSS 类可供开发人员直接使用,包括:标题、文本、字体、填充和边距、分隔线、工具、上下文颜色、滑块、开关、Tabviews 类等等,这里列出这些类和它们的详细描述。

NativeScript2.4 做到了开箱即用,该版本支持使用 ES6 和 ES7 语法来编写 NativeScript 应用程序,同时也支持 Angular 2.2 和 Node.js v6 LTS,这意味着最新发布的 Angular 开发工具可以得到 Angular SDK 的完美支持。

NativeScript 最新发行版在 JavaScript 社区有着十分高的活跃度。用户 dangoor 在 Reddit 上这样评论道:

我不是 Angular 的粉丝,但我喜欢 NativeScript 这种桥接的方法。 他绑定了平台的整个 API 层,使得这些 API 可以直接用于 JS,所以你基本上不必深入到 Java 或 Objective-C/Swift 语言的内部。虽然我认为这样做会降低应用程序的性能,但我仍然觉得这是一个很好的模型。

NativeScript 是开源的,并遵循 Apache 2.0 许可协议发布。 要升级到最新版本,开发人员可以访问 http://docs.nativescript.org/releases/upgrade-instructions

查看英文原文 NativeScript 2.4 Brings Web Workers Specification


感谢薛命灯对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-12-01 18:001850

评论

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

什么是低代码?哪些平台适合业务人员?用来开发系统靠不靠谱?

优秀

低代码 低代码平台

研发效能的道法术器

laofo

DevOps cicd 研发效能 基础设施 持续交付

一文读懂Okaleido Tiger近期动态,挖掘背后价值与潜力

西柚子

深开鸿:万物智联的大江上,升起一轮开源鸿蒙月

脑极体

英特尔数据中心GPU正式发货,以开放灵活提供强劲算力

科技新消息

Prometheus 的 API 稳定性保障

耳东@Erdong

Prometheus API 7月月更

PlatoFarm社区生态福音,用户可借助Elephant Swap获得溢价收益

股市老人

融合数据库生态:利用 EventBridge 构建 CDC 应用

阿里巴巴云原生

阿里云 云原生 事件总线 CDC EventBridge

基于java springboot失物招领微信小程序源码

清风

计算机毕业设计 失物招领小程序

基于对象的实时空间音频渲染丨Dev for Dev 专栏

声网

Dev for Dev 空间音频 实时互动

PLATO上线LAAS协议Elephant Swap,用户可借此获得溢价收益

EOSdreamer111

【周周有奖】云原生编程挑战赛“边缘容器”赛道邀你来战!

阿里巴巴云原生

阿里云 边缘容器 云原生编程挑战赛

学习Typescript(二)

bo

前端 ts 7月月更

openEuler Embedded SIG | 分布式软总线

openEuler

开源 分布式 操作系统 嵌入式 openEuler

requestVideoFrameCallback() 简单实例

devpoint

3D 视频处理 7月月更

一文读懂Okaleido Tiger近期动态,挖掘背后价值与潜力

股市老人

Baklib|为什么说企业需要重视客户体验?

Baklib

编码用这16个命名规则能让你少写一半以上的注释!

岛上码农

flutter ios 前端 安卓开发 签约计划第三季

智能电视与小程序的结合

Geek_99967b

物联网

PLATO上线LAAS协议Elephant Swap,用户可借此获得溢价收益

鳄鱼视界

第二轮Okaleido Tiger热卖的背后,是背后生态机构战略支持

EOSdreamer111

一文读懂Okaleido Tiger近期动态,挖掘背后价值与潜力

小哈区块

DDD领域驱动设计如何进行工程化落地

慕枫技术笔记

DDD 架构设计 7月月更

怎样搭建企业内部维基百科

Baklib

被忽视的智能电视小程序领域

Geek_99967b

物联网

leetcode 763. Partition Labels 划分字母区间(中等)

okokabcd

LeetCode 数据结构与算法 贪心算法

SpringBoot基于异常处理exception发送邮件消息提醒

宁在春

springboot 7月月更

快手重点整治搬运、洗稿等方式的养号行为,自媒体平台如何净化内容生态

石头IT视角

React Refs 笔记📝

程序员海军

React 7月月更

第二轮1000个Okaleido Tiger,再次登录Binance NFT 1小时售罄

BlockChain先知

Bootstrap Affix和过渡效果插件的详细使用【前端Bootstrap框架】

恒山其若陋兮

7月月更

NativeScript 2.4版本发布,支持Web Workers规范_JavaScript_James Chesters_InfoQ精选文章