草庐IT

hadoop-worker

全部标签

javascript - 如何让 service worker 只在第一次访问时注册?

您好,我在express上有一个生成HTML的ejs模板。我在这个模板中写了我的serviceworker注册码,这个模板对网站的所有页面都是通用的,因此,注册码最终出现在网站的每个页面上。因此,在每次用户访问时,都会运行serviceworker注册代码,我认为这是不好的。如何让这段代码只在用户第一次访问时运行?请在下面找到我的代码:if('serviceWorker'innavigator){window.addEventListener('load',function(){varhashes={};["appCss","appJs"].map((val,idx)=>{letpro

javascript - 将 Javascript 对象传递给 Web Worker

我有一个这样的对象:functionA(id){this.id=id;}A.prototype.getId=function(){returnthis.id;}它作为文件(“objects.js”)包含在html页面中,也包含在带有importScript(“objects.js”)的网络worker中。现在,我使用“vara=newA()”在html页面中创建一个A实例,并使用“postMessage()”将其发布到WebWorker。有趣的是,在worker中它仍然具有属性“id”及其值,但原型(prototype)函数丢失了。我猜原因可能是原型(prototype)函数“绑定(b

javascript - 查看服务 worker 内部的请求是否成功

我的serviceworker中有以下代码:self.addEventListener('fetch',function(event){varfetchPromise=fetch(event.request);fetchPromise.then(function(){//dosomethinghere});event.respondWith(fetchPromise);});但是,它在开发控制台中做了一些奇怪的事情,似乎使脚本加载异步而不是同步(在这种情况下是不好的)。有什么方法可以在不手动调用fetch(event.request)的情况下监听请求何时完成?例如://Thisdoes

javascript - 为什么我的 Web Worker 终止了?

当我遇到一个非常奇怪的行为时,我正试图了解网络worker。出于某种原因,它会在几秒钟后终止,即使我有正在运行的代码。这是我的代码;主要JavaScript文件:$(document).ready(function(){varworker=newWorker("js/TestWorker.js");worker.addEventListener('message',function(event){console.log(event.data);});worker.addEventListener('error',function(event){console.log(event);})

javascript - Web Worker 会增加(或减少)安全性吗?

WebWorker是否减轻或加剧了任何JavaScript和浏览器环境的已知安全问题? 最佳答案 根据MozillaWebWorkers安全审查:工作人员在严格控制的沙箱中执行。无法访问组件或其他全局JS组件。只有基本的JS(数学、日期等)、超时、XHR和importScripts。脚本加载受与主程序相同的限制主题(内容政策、同源限制等)。XHR使用与主线程相同的代码。这些回答了我所有的安全考虑。 关于javascript-WebWorker会增加(或减少)安全性吗?,我们在StackO

javascript - 使用 CSP 在 Web Worker 中启用 'new Function'

我无法让newFunction在WebWorker中工作。我有一个生成WebWorker的HTML页面。这个WebWorker通过newFunction(str)执行代码。我正在尝试在打包的Chrome应用程序中使用它,这需要使用eval类代码的页面在list中明确列为沙盒页面。现在,有两个选择:Do列出要沙盒化的页面。如果这样做,我可以使用newFunction,但我无法生成WebWorker,因为我无法发出任何请求(沙盒页面具有唯一来源)。newWorker(...)抛出一个SECURITY_ERR。newFunction在沙箱中工作newWorker由于唯一来源而在沙箱中失败不要

javascript - Web Worker 开销指标

我正在做一个可能需要多个webworker的项目,我需要知道同时运行多个webworker是否负担得起(比如超过4或8个worker)以及两个cpu的成本是多少和ram启动它们并让它们挥之不去。我一直在谷歌上搜索,但我没有找到关于他们的CPU和内存开销的任何指标。我找到了一些性能基准,但这不是我感兴趣的。任何人都可以指出至少给出近似值的规范或研究吗?我至少需要有一些大概的值来处理,而不是仅仅假设我从ProcessExplorer中看到的任何内容都是准确或可靠的。编辑-似乎人们的印象是错误的。我不是寻求有关如何解决问题的建议,而是寻求有关网络worker开销的技术信息来源(如果存在)。

javascript - 从 Web Worker 内部运行 window.crypto.getRandomValues()

我已经无计可施了。知道网络worker无法访问window对象,有什么办法可以做到这一点吗?请帮忙! 最佳答案 我知道这是一个老问题,但我偶然发现了这个问题,事情发生了变化。大多数浏览器现在都支持网络worker中的加密。在webworkers中,您可以访问self,它不包含所有“窗口”属性(尤其是与dom无关的属性),但包含加密函数等API方法。因此,您可以从webworker中简单地访问self.crypto.getRandomValues()。我做了一个fiddle作为例子:http://jsfiddle.net/jbrosi

javascript - 使用 Service Worker 离线处理文件上传

我们有一个网络应用程序(使用AngularJS构建),我们也在逐渐添加PWA“功能”(服务worker、可启动、通知等)。我们的Web应用程序的其中一项功能是能够在离线时完成Web表单。目前,我们在离线时将数据存储在IndexedDB中,并简单地鼓励用户在他们在线时将该数据推送到服务器(“此表单已保存到您的设备。现在您重新在线,您应该保存它到云端……”)。我们会在某个时候自动执行此操作,但目前没有必要。我们正在为这些Web表单添加一项功能,用户可以借此将文件(图像、文档)附加到表单,可能在整个表单的多个位置。我的问题是-serviceworker有没有办法处理文件上传?以某种方式-也许

javascript - 网络 worker 有自己的垃圾收集器吗?

我有一些处理过程不一定是CPU密集型的,但是会创建很多临时对象,这会导致垃圾收集器在动画期间出现令人不快的问题等。将临时对象创建过程卸载给网络worker是否有助于缓解这种情况?换句话说-GC问题会被隔离到Web工作线程而不影响我的主线程,还是GC会影响两个线程? 最佳答案 ECMAScript规范没有规定任何形式的内存管理,垃圾回收仅在非规范部分提及。类似地,webworker规范除了wrt之外并没有太多关于垃圾收集的内容。某些对象必须存活多长时间。所以这是特定于实现的行为。即使实现实现了每个工作人员的GC并在一般情况下避免了共享