草庐IT

mjob_worker

全部标签

javascript - 具有多个参数的 HTML 5 网络 worker

我刚接触HTML5webworkers,现在我想将多个参数传递给我的worker。我的页面中有这个:varusername=document.getElementById("username").value;varserver_url='localhost';w.postMessage(username,server_url);这是我的worker:varusername='';varserver_url='';onmessage=function(e,f){username=e.data;server_url=f.data;}console.log(username);console

javascript - 处理 imageData 的 Web worker 使用 Firefox 而不是 Chrome

当我运行处理将imageData传递给网络worker然后返回的代码时,Firefox运行良好但Chrome给出“未捕获错误:DATA_CLONE_ERR:DOM异常25”谷歌搜索表明旧版本的Chrome曾经可以工作?我又检查了一些,似乎我需要在发送图像数据之前在图像数据上运行JSON.stringify和JSON.parse,但随后它在任何地方都停止工作。在FF9中工作的代码是:图像.js:varmyImageData=context.getImageData(0,0,canvas.width,canvas.height).data;varworker=newWorker("http

html - 强制重新加载/阻止 Web Worker 的缓存

我注意到即使您强制重新加载页面(SHIFT+F5等),大多数浏览器(尤其是Chrome)似乎仍会缓存网络worker脚本。我发现强制更新缓存的唯一可靠方法是将工作脚本的路径键入地址栏并单独强制重新加载它。显然,在尝试开发任何东西时,这都是一种皇家痛苦。有谁知道一种可靠的方法来阻止浏览器缓存工作脚本或强制它以简单的方式重新加载它们? 最佳答案 一个老问题,也是我今天使用的一个老解决方案。开发时,创建webworker,并在worker文件中添加一个随机数查询字符串:varworker=newWorker('path/to/worker

html - 如何从 Web Worker 内部访问 document.cookie?

既然WebWorker无法访问document对象,我如何才能在worker脚本中访问c​​ookie?背景我正在使用Django,我需要在AJAX帖子中传递CSRFtoken。执行此操作的标准方法是从document.cookie获取token并将其作为header传递:xhr.setRequestHeader('X-CSRFToken',readCookie('csrftoken'));(source)Webworker支持XMLHttpRequest并且他们似乎将cookie发送到服务器,但我找不到在脚本本身中获取cookie的方法。 最佳答案

javascript - 在网络 worker 中填充 `window` 和 `document`

是否存在以在初始化后不使用DOM但具有兼容接口(interface)的方式实现window和document对象的解决方案?它们对于在WebWorker中使用MathJax等重量级库非常有用。 最佳答案 有一些方法可以在workers中进行DOM操作:在worker中导入一个DOM副本(非常糟糕的性能),将“文档字符串”解析为新的DOM(性能非常差)和向浏览器发送和接收DOM操作命令(最佳解决方案)。这可能看起来很愚蠢,但您只需将“DOM相关函数”的参数发送到浏览器并将结果返回给您的工作人员即可;

javascript - 限制 Web Worker CPU 利用率?

我正在考虑使用WebWorker编写一个长时间运行的CPU密集型操作,似乎确实有可能将客户端的CPU使用率提高到100%。(参见CanWebWorkersutilize100%ofamulti-coreCPU?)有谁知道有什么有效的方法可以限制webworker的CPU使用率吗? 最佳答案 确实有办法。构建您的计算,以便它们可以通过重复调用在退出前执行部分工作的函数来完成。在退出之前,使用setTimeout在几毫秒内安排对辅助函数的新调用。可以调整等待时间以使用更少或更少的CPU时间。functiondoWork(){vartim

javascript - 在游戏中使用 Web Worker 有意义吗?

我正在开发一款具有AI逻辑、移动等和绘图的游戏。使用WebWorkers计算移动和AI逻辑是否有意义?但是我该怎么做——因为工作人员需要知道很多关于主线程的信息,比如某些物体发生碰撞的位置、子弹的数量等。这感觉是不可能的,因为工作人员与主线程完全分开永远无法访问。我知道有一个postMessage()系统,但感觉很……嗯,很痛苦?例如,我有一个rifleman对象,代表一个具有sprite、位置、生命值等的步枪手。我想让他巡逻。那么,我该如何在worker上执行巡逻代码呢?它几乎需要对该对象的全部访问权限。 最佳答案 我认为将Web

html - 同时最大运行web worker html5

同时运行的webworker是否有最大数量限制?非常感谢。 最佳答案 是也不是。对于WebWorkers,没有硬性限制,但您会受到可用CPU和内存的限制。每个worker都会带来相当大的CPU和内存开销,因此,如果您分拆大量worker,则可能会使机器陷入困境。我认为WebWorker最适合用于100毫秒或更长时间的“长时间运行”后台任务。 关于html-同时最大运行webworkerhtml5,我们在StackOverflow上找到一个类似的问题: http

html - 使用 Shared Worker 的 Chrome 内存泄漏?

我有一个启动HTML5SharedWorker脚本的网页。每次重新加载此页面(按F5)时,Chrome内存使用量都会增加。worker脚本非常简单。每秒(使用setInterval)向连接的端口发送一条消息。每次我按F5时,工作进程似乎都被终止并重新启动。这是我所期望的,因为worker实际上并没有被多个"file"共享。但是,我无法弄清楚为什么每次刷新都会增加内存使用量。有人知道为什么会这样吗?考虑到每次重新加载页面时内存都会增加,这让我觉得我根本无法在Chrome中使用共享worker。有没有人能够在没有内存问题的情况下这样做?更新这是托管HTML:$(function(){var

javascript - 除非清除缓存,否则 Web Worker 不会在 IE 中启动

我的HTML5脚本中有一个非常奇怪的错误。我完全在OData中编写了一个Sharepoint应用程序,它使用一些HTML5webworker在后台进行数字运算。这适用于所有主流浏览器(FF、IE10+Chrome等)。但是,当我执行刷新或再次浏览到该页面时。该脚本在FF和Chrome上仍能正常工作,但在IE上挂起。在我的WebView中,我看到了对Worker.js文件的请求,但响应为304NOTMODIFIED。然后IE就卡在那里,状态为(待定)。只有当我清除浏览器缓存时,这个问题才会得到解决。我使用self.close()正确关闭了所有线程。知道问题出在哪里吗?我不确定这是代码问题