繁体   English   中英

在NativeScript中以后台运行任务

[英]Run tasks in background in NativeScript

我正在使用NativeScript 2.0 ,我正在开发一个不允许在主线程中运行Android模块!

是否有一个模块可用于在后台线程中运行函数?

或者是否可以在“本机”JavaScript代码(非TypeScript!)中使用类似AsyncTask类的东西?

nativescript添加了web worker。 https://docs.nativescript.org/angular/core-concepts/multithreading-model.html

var worker = new Worker('myWorker');
worker.postMessage('hello');
worker.onmessage = function(msg) {
      console.log('answer from worker',msg.data);
}

在工作者myWorker.js

    require('globals'); // necessary to bootstrap tns modules on the new thread
    onmessage = function(msg) {
        postMessage('bye');
    }

有关背景知识,请参阅此文章: http//developer.telerik.com/featured/benefits-single-threading-model-nativescript/

也就是说,目前你最好的选择是使用这个模块来实现和运行WebWorkers: https//github.com/NathanaelA/nativescript-webworkers

我想你的答案可以在这篇文章中找到http://developer.telerik.com/featured/benefits-single-threading-model-nativescript/

基本上,目前支持的唯一选择是将代码封装到用原生Android编写的插件中。 该团队正在努力支持Web工作者的某种线程选项,但目前还没有任何支持。

正如Nativescript demo所证明的那样App单线程模型就好了,因为在UI线程上运行一切都非常快。 但是,如果你需要时间操作的后台任务,Nativescript引入了Workers API

我们知道,作为Web世界中的Web Workers。 重要的是要记住,每次启动新的工作线程时,都会增加应用程序的资源和内存占用量。

如需进一步阅读,请参阅博客。

那么你应该看看网络工作者:

Web Workers为Web内容提供了一种在后台线程中运行脚本的简单方法。 工作线程可以在不干扰用户界面的情况下执行任务。

在此处查看更多信息: https//developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM