在 HTML5 Web Worker 中使用地理定位
Using Geolocation in a HTML5 Web Worker
我想使用 HTML5 网络工作者定期向 restful 服务器报告经度和纬度 - 即使选项卡未处于焦点。我的问题是我通常访问 HTML5 geolocation 函数的方式在 Web Worker 中不可用。
我尝试的是将地理定位对象从我的主文件发送到网络工作者。但是,那没有用,我收到以下错误:
Uncaught DataCloneError: Failed to execute 'postMessage' on 'Worker':
An object could not be cloned.
接下来我尝试导入一个 JavaScript 库,它提供名为 Geolocator 的地理定位服务。但是后来我发现我没有权限访问 worker 中的库(我想是因为 worker 没有权限访问 DOM)。
因此,为了解决这个问题,我将这个 JavaScript 库的源代码直接添加到工作文件中,但这没有用,因为我无权访问 window
在 Geolocator.
的整个源代码中重复使用
我想做的事情可行吗?有没有我可以使用的替代品?
主线程 contains a geolocation
property 中的 navigator
对象,这是您访问所有地理定位功能的方式。
Workers 包含一个 different navigator
object, known as WorkerNavigator
,它仅包含主线程中 navigator
的属性子集。
因为 WorkerNavigator
缺少 Geolocation
对象并且 Geolocation
对象无法序列化 到 工人,看来你不能在 web worker 中使用 Geolocation
。相反,您必须从主线程进行报告。
在 问题中可以找到您提案的一个工作示例。它目前只能在 Firefox 的后台运行(出于错误的原因),并且在我们在 W3C/IETF.
进行实质性制度变更之前不太可能实施
但是像你一样,在现实世界中有许多这样的要求,我相信我的建议即使不是全部也能满足大多数其中
我想使用 HTML5 网络工作者定期向 restful 服务器报告经度和纬度 - 即使选项卡未处于焦点。我的问题是我通常访问 HTML5 geolocation 函数的方式在 Web Worker 中不可用。
我尝试的是将地理定位对象从我的主文件发送到网络工作者。但是,那没有用,我收到以下错误:
Uncaught DataCloneError: Failed to execute 'postMessage' on 'Worker': An object could not be cloned.
接下来我尝试导入一个 JavaScript 库,它提供名为 Geolocator 的地理定位服务。但是后来我发现我没有权限访问 worker 中的库(我想是因为 worker 没有权限访问 DOM)。
因此,为了解决这个问题,我将这个 JavaScript 库的源代码直接添加到工作文件中,但这没有用,因为我无权访问 window
在 Geolocator.
我想做的事情可行吗?有没有我可以使用的替代品?
主线程 contains a geolocation
property 中的 navigator
对象,这是您访问所有地理定位功能的方式。
Workers 包含一个 different navigator
object, known as WorkerNavigator
,它仅包含主线程中 navigator
的属性子集。
因为 WorkerNavigator
缺少 Geolocation
对象并且 Geolocation
对象无法序列化 到 工人,看来你不能在 web worker 中使用 Geolocation
。相反,您必须从主线程进行报告。
在
但是像你一样,在现实世界中有许多这样的要求,我相信我的建议即使不是全部也能满足大多数其中