BT

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

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

| 作者 James Chesters 关注 1 他的粉丝 ,译者 于航 关注 1 他的粉丝 发布于 2016年12月2日. 估计阅读时间: 6 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

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)关注我们。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个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