草庐IT

javascript - 我应该在服务 worker 中缓存 manifest.json

我正在使用服务worker。我应该缓存我的manifest.json文件吗?这有意义吗?还有浏览器获取此文件的频率。 最佳答案 是的,您应该缓存您的manifest.json文件,因为如果您要构建PWA,那么它必须具有添加到主屏幕的功能。在您的list文件中,它包含一个start_url需要由serviceworker缓存并且在离线时应该返回200响应。假设任何人正在离线浏览您的应用程序并且没有在主屏幕上添加网络应用程序,那么它会询问用户他/她是否想要添加到主屏幕,前提是您已经缓存了您的list文件。

javascript - 我可以使用 Web Workers 做什么?

我有几个关于网络worker的问题工作人员是否可以访问存储空间?indexedDB/webSQL和启动工作程序的文件的本地存储?我如何在worker中包含一个文件?我有一个functions.js,它有很多快速应用程序相关的功能,它真的没有意义将文件的内容复制粘贴到一个工作人员中,只是为了让两个不同的地方更新我的功能。我可以在worker中使用DOM吗?例如在临时音频标签中加载音频文件以读取其持续时间以及是否可播放。不访问父页面的dom,但在worker本身有一个DOM。如果任何问题的答案是否定的,那么如何/应该手动完成?这是一个chrome应用程序,所以我可以访问最新的ChromeA

javascript - 共享 Web Workers 是否在单个页面重新加载、链接导航中持续存在

SharedWebWorkers旨在允许来自同一站点(来源)的多个页面共享一个WebWorker。但是,如果您只有一个窗口/选项卡来自该站点并且您导航到同一站点上的另一个页面,那么从规范(或其他教程和有关SharedWorkers的信息)我不清楚SharedWorker是否会持续存在.这在来自SharedWorker的WebSocket连接的情况下最有用,该连接在站点导航时保持连接。例如,假设一个股票代码或聊天区域即使在浏览网站时也会持续存在(无需重新连接WebSocket)。 最佳答案 我做了一些测试,以在实践中找出这个问题的答案

javascript - Web Workers 可以 100% 地利用多核 CPU 吗?

我一直在尝试找出网络worker在分配处理器负载方面的能力。我还没有找到任何似乎能够让我的四核2600k达到50%的演示,更不用说100%了。这是我尝试最大化CPU的WebWorker演示:http://nerget.com/rayjs-mt/rayjs.html(如果您使用firebug/chrome-inspect-element进入页面的HTML并使Canvas更大,您可以使其光线追踪更大的图像-我将我的设置为1920x1080)即使选择了4、8、16个工作器,我的CPU利用率也不可能超过每个内核25%左右。有谁知道是否可以通过webworker100%地利用CPU?(我使用的是

Ajax vs. Web sockets vs. Web Workers

这三者有什么区别?他们似乎在做同样的事情。您为什么以及何时会选择使用一种方法而不是另一种方法? 最佳答案 AJAX和websockets执行类似的任务——它们都建立了一个与服务器的通信channel。Webworkers与它们中的任何一个都无关,它们只是JS执行的独立线程。AJAX比websockets更成熟——它存在的时间更长,并且拥有更广泛的浏览器支持。AJAX是面向请求的——您向服务器发出请求,服务器响应,然后关闭连接。另一方面,Websocket与服务器建立持久连接,您可以通过该连接双向交换多条消息。如果您想在不阻塞浏览器界

JavaScript:如何知道与共享 worker 的连接是否仍然存在?

我正在尝试使用共享worker来维护Web应用程序的所有窗口/选项卡的列表。因此使用以下代码://livesinshared-worker.jsvarconnections=[];//thisrepresentsthelistofallwindows/tabsonconnect=function(e){connections.push(e.ports[0]);};每次创建窗口时,都会与shared-worker.js建立连接worker和worker将与窗口的连接添加到connections列表。当用户关闭一个窗口时,它与共享worker的连接就会过期,应该从connections中删

html - Application Cache 或 Service Worker——在 2016/Q2 中使用哪个?

真正需要讨论的快速问题,因为我想听取不同人的意见。我正在开发一个必须离线可用的网页应用程序。现在要做到这一点,据我所知,您将着手使用应用程序缓存功能或使用服务worker。然而,这是我遇到的难题。在研究应用程序缓存时,theMDNclearlystates:Deprecated:ThisfeaturehasbeenremovedfromtheWebstandards.Thoughsomebrowsersmaystillsupportit,itisintheprocessofbeingdropped.Donotuseitinoldornewprojects.PagesorWebappsu

html - 为什么 Web Worker 不能直接调用函数?

我们可以像这样在HTML5中使用网络worker:varworker=newWorker('worker.js');但是为什么我们不能这样调用函数呢?varworker=newWorker(function(){//dosomething}); 最佳答案 这就是网络worker的设计方式。他们必须有自己的外部JS文件和由该文件初始化的自己的环境。由于多线程冲突原因,它们无法与您的常规全局JS空间共享环境。不允许网络worker直接访问您的全局变量的一个原因是它需要两个环境之间的线程同步,这是不可用的(并且会使事情严重复杂化)。当we

javascript - importScripts(网络 worker )

我曾尝试使用importScripts将第二个JavaScript文件加载到我的WebWorker中,但虽然没有发生错误,但它没有用。我将问题缩小到这种非常简单的情况:在主HTML文件中:varw=newWorker("script1.js");w.addEventListener("message",function(e){alert(e.data);})w.postMessage();在script1.js中:self.addEventListener("message",function(e){vara=5;importScripts("script2.js");self.pos

jquery - HTML Web Worker 和 Jquery Ajax 调用

我想知道我是否可以在webworker文件中使用jQuery。GoogleChrome给我这个错误:“UncaughtReferenceError:$isnotdefined”。代码如下:父文件:varloader=newWorker(BASE_URL+"js/rss_loader_worker.js");//AsktheworkertostartloadingtheRSSfromtheserverloader.postMessage("loadRss");//Whenreceivetheresponsefromtheserverloader.onmessage=function(ev