javascript – 在HTML5 Web Worker中使用Geolocation
作者:互联网
我想使用HTML5网络工作者定期向一个宁静的服务器报告经度和纬度 – 即使标签不在焦点上.我的问题是,我通常访问HTML5 geolocation功能的方式在Web工作者中不可用.
我尝试过的是将地理位置对象从我的主文件发送到Web worker.但是,这不起作用,我得到以下错误:
Uncaught DataCloneError: Failed to execute ‘postMessage’ on ‘Worker’:
An object could not be cloned.
接下来我尝试导入一个JavaScript库,它提供名为Geolocator的地理定位服务.但后来我发现我无法访问worker中的库(我认为因为worker没有访问DOM的权限).
因此,为了解决这个问题,我将这个JavaScript库的源代码直接添加到了worker文件中,但是这不起作用,因为我无法访问在Geolocator的源代码中重复使用的窗口.
我正在尝试做什么?有什么替代品可供我使用吗?
解决方法:
主线程contains a geolocation
property中的导航器对象,即访问所有地理定位功能的方式.
Worker包含一个different navigator
object, known as WorkerNavigator
,它只包含主线程中导航器属性的子集.
由于WorkerNavigator缺少Geolocation对象,并且Geolocation对象无法序列化为worker,因此您似乎无法在Web worker中使用Geolocation.相反,您必须从主线程进行报告.
标签:javascript,html5,geolocation,web-worker 来源: https://codeday.me/bug/20190623/1269731.html