编程语言
首页 > 编程语言> > javascript – 在HTML5 Web Worker中使用Geolocation

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