当前位置: 首页 > 面试题库 >

AngularJS和网络工作者

罗烨霖
2023-03-14
问题内容

angularJS如何使用Web Worker在后台运行进程?我有什么模式可以遵循吗?

当前,我正在使用在单独的Web worker中具有模型的服务。该服务实现的方法如下:

ClientsFacade.calculateDebt(client1); //Just an example..

在实现中,此方法将带有数据的消息发送给工作程序。这使我可以抽象出它是在单独的线程中执行的事实,并且我还可以提供一种对服务器甚至在同一线程中执行此操作的服务器进行查询的实现。

由于我是Java语言的新手,我只是在回收其他平台上的知识,我想知道这是否是您可以做的事情,或者我正在使用的Angular提供了一种实现此目的的方法。由于工作人员必须将更改显式推送到控制器,然后更新其值,然后将其反映在视图中,因此这也会导致我的体系结构发生更改,我是否对此进行了过度设计?令人沮丧的是,Web工作者通过不允许我共享内存等来“保护”我太多,以防万一。


问题答案:

与Web工作者的通信通过消息传递机制进行。拦截这些消息会在回叫中发生。正如您所适当指出的,在AngularJS中,放置Web
Worker的最佳位置是在服务中。解决此问题的最佳方法是使用Promise,Angular可以很好地使用Promise。

这是webworker一个service

var app = angular.module("myApp",[]);

app.factory("HelloWorldService",['$q',function($q){

    var worker = new Worker('doWork.js');
    var defer = $q.defer();
    worker.addEventListener('message', function(e) {
      console.log('Worker said: ', e.data);
      defer.resolve(e.data);
    }, false);

    return {
        doWork : function(myData){
            defer = $q.defer();
            worker.postMessage(myData); // Send data to our worker. 
            return defer.promise;
        }
    };

});

现在,任何访问Hello World服务的外部实体都无需关心HelloWorldService-
的实现细节,HelloWorldService很可能可以通过web workerhttp或在此处进行处理来处理数据。

希望这是有道理的。



 类似资料:
  • 我们提供了一些网络工具来为你操作并使用网路信息提供便捷,比如说获取ip,发送邮件等。 WebUtils 方法原型: getFileFromUrl( $url ) 静态方法, 从网络地址中获取文件路径,也就是把网络地址转换成文件路径。 参数名称 参数类型 参数说明 $url string 要处理的url @return string 返回文件路径 方法原型: getClientIP() 静态方法,获

  • 网络爬虫使用的技术--数据抓取: 在爬虫实现上,除了scrapy框架之外,python有许多与此相关的库可供使用。其中,在数据抓取方面包括: urllib2(urllib3)、requests、mechanize、selenium、splinter; 其中,urllib2(urllib3)、requests、mechanize用来获取URL对应的原始响应内容;而selenium、splinter通

  • 前言 前面章节已经介绍了Shell编程范例之数值、布尔值、字符串、文件、文件系统、进程等的操作。这些内容基本覆盖了网络中某个独立机器正常工作的“方方面面”,现在需要把视角从单一的机器延伸到这些机器通过各种网络设备和协议连接起来的网络世界,分析网络拓扑结构、网络工作原理、了解各种常见网络协议、各种常见硬件工作原理、网络通信与安全相关软件以及工作原理分析等。 不过,因为网络相关的问题确实太复杂了,这里

  • 不了解网络编程的程序员不是好前端,而NodeJS恰好提供了一扇了解网络编程的窗口。通过NodeJS,除了可以编写一些服务端程序来协助前端开 发和测试外,还能够学习一些HTTP协议与Socket协议的相关知识,这些知识在优化前端性能和排查前端故障时说不定能派上用场。本章将介绍与之相关的 NodeJS内置模块。 开门红 NodeJS本来的用途是编写高性能Web服务器。我们首先在这里重复一下官方文档里的

  • 7.1. 查询网络服务和端口 netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。 列出所有端口 (包括监听和未监听的): netstat -a 列出所有 tcp 端口: netstat -at 列出所有有监听的服务状态: netstat

  • 由来 在日常开发中,网络连接这块儿必不可少。日常用到的一些功能,隐藏掉部分IP地址、绝对相对路径的转换等等。 介绍 NetUtil 工具中主要的方法包括: longToIpv4 根据long值获取ip v4地址 ipv4ToLong 根据ip地址计算出long型的数据 isUsableLocalPort 检测本地端口可用性 isValidPort 是否为有效的端口 isInnerIP 判定是否为内