我想使用HTML5网络工作者定期向一个宁静的服务器报告经度和纬度 – 即使标签不在焦点上.我的问题是,我通常访问HTML5 geolocation功能的方式在Web工作者中不可用. 我尝试过的是将地理位置对象从我的主文件发送到Web worker.但是,这不起作用,我得到以下错误:Uncaught DataCloneError: Failed to execute ‘postMessage’ on ‘Worker’:An object could not be cloned.接下来我尝试导入一个JavaScript库,它提供名为Geolocator的地理...
例如,我可以卸载任务并允许用户在javascript运行时继续浏览我的网站吗? 看来,如果我离开页面,工作人员就会终止.解决方法:浏览器中的“页面导航”意味着过去存在的所有内容(HTML,CSS,JavaScript,插件等)都不复存在,并且新页面的加载就像您打开了一个新的浏览器窗口一样. Web工作者在“Web应用程序”的上下文中比在“Web页面”中更有意义.如果您正在编写位于浏览器中的应用程序,请考虑放弃“页面”隐喻并构建一个不需要在每次更改上...
使用以下代码: HTML文件:<!DOCTYPE html><html><head><title></title><!--<script type="text/javascript" src="worker.js"></script>--><script type="text/javascript" src="run.js"></script></head><body><div id='log'></div></body></html>run.js:window.onload = function(){var worker = new Worker('worker.js');var log = document.getElementById('log');log.innerHTML += "<p>"+"test"+"</p>";worker.addEventListe...
如果您启动两个使用相同JavaScript文件的Web工作者,则Firefox无法区分它们:debugging#workers.您将获得两个相同的条目(在“其他工人”下列出). 对于调试,为web worker分配名称会很方便.例如,在Java中有Thread#setName.在JavaScript的Web worker API中是否有相同的东西?解决方法:Worker() constructor采用可选的options参数,该参数可以包含name属性,例如:let workerOne = new Worker(URL, {'name' : 'nameOfWorkerOne' }),worker...
我已经google了很多,无法确定我是否应该能够从主ui线程和web工作者访问相同的websql数据库. 我正在使用async api,因为我相信这是为web worker和主ui??线程实现的唯一API. 基本上,当两个线程同时针对同一个数据库执行事务时,我会遇到问题. SQLite支持以受控方式访问数据库的多个线程,因此它应该是可能的. 有没有人这样做过?解决方法:Web工作者的功能非常有限.您无法访问websql数据库或localStorage.唯一的解决方法是将消息发送到处...