Web Worker 中的传感器读取

2023-12-07

看来我们无法在网络工作者中获取传感器数据。我想知道其背后的原因。用例是我正在考虑在工作线程中获取地理位置数据,并且仅将处理后的版本发送到主线程。

对于 GPS,这post说工作线程不支持它(没有给出原因)。我仔细检查了一下,网络工作人员不支持 navigator.geolocation 。对于加速器和陀螺仪,我们有 DeviceOrientationEvent 和 DeviceMotionEvent。但我们需要通过窗口对象来使用它们,而工作线程无法使用它们。同样的情况也适用于环境光事件。

所以我的问题是:

  1. 为什么 Web Worker 不支持 navigator.geolocation?我没有看到任何理由在工作线程中阻止它。我想应该不会有线程安全或者安全问题。
  2. navigator.geolocation 属于 navigator 吗?这看起来是个愚蠢的问题。但我无法很快在网上找到一个好的解释...网络工作人员可以访问导航器对象。我很困惑为什么不支持 navigation.geolocation 。
  3. 为什么我们没有来自加速器和陀螺仪的原始传感器读数?我知道抽象事件很有用。但有些情况我们想使用原始数据进行处理。我发现 PhoneGap 提供了访问原始传感器数据的方法,例如,通过导航器.加速度计。但我的理解是这样的API不属于标准化的HTML规范。
  4. 有哪些相关的设计决策来决定是否general工作线程是否应该支持传感器读取?目前,HTML 中的通用传感器读取支持已被搁置W3C 设备 API 工作组。看到当前的传感器支持(GPS、加速器、陀螺仪),我认为我们将获得抽象的 DOM 事件。并且它可能通过导航器对象读取原始传感器数据。

好的。阅读了一些 Chromium 代码后,我现在有了问题 2 的答案。其他3个问题我还是没有答案...

问题2的回答:navigator.geolocation属于navigator吗?

navigator.geolocation 仅属于主线程中的 navigator,但不属于工作线程中的 navigator。

主要原因是,尽管工作线程中的导航器看起来与主线程中的导航器完全相同,但这两个导航器在 C++ 端具有独立的实现。这就是工作线程中不支持 navigator.geolocation 的原因。

相关代码在导航器.idl and WorkerNavigator.idl在 Chromium 代码中。可以看到.idl文件中它们是两个独立的接口。它们在绑定的 C++ 端有独立的实现。导航器是一个属性DOM窗口,而 WorkerNavigator 是一个属性工人全球范围.

然而,在 JavaScript 方面,它们具有相同的名称:navigator。嗯,我知道这两个导航器位于两个不同的范围内,因此不存在名称冲突。但是,当我在 JavaScript 中使用 API 时,如果主线程和工作线程具有相同的名称,我预计它们会出现类似的行为。歧义就是这样发生的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Web Worker 中的传感器读取 的相关文章

  • iPhone 允许光传感器作为输入吗?

    我只是想知道 iPhone 的开发是否允许使用光传感器 作为按钮或动作元素 我在网上找到了这个链接 可以使用光传感器作为按钮吗 存档 Touch Arcade 如果有人能阐明这个问题 我将不胜感激 Apple 代表的官方答复位于苹果开发者论
  • 如何去掉单词末尾多余的连字符

    我有句话我已经放了 shy 里面 它可以使用连字符 直到我达到足够小的屏幕尺寸 然后它在末尾添加一个额外的连字符 编辑 无法在 jsfiddle 中重现它 因为它似乎对 html 的解释不同 不过我可以展示问题的图片 h3 Flu shy
  • 您可以将现有的 div 复制到模式对话框吗

    我有一个带有多个面板的仪表板来显示不同的信息 我希望能够添加一个按钮来以模式显示面板 我正在使用引导程序 我所能找到的只是已经编写的模态 我想复制作为面板的 div 标签的内容 然后将其显示在模型中 但我不确定如何进行 该面板的 html
  • 如何覆盖 bootstrap 表 td 样式?

    我正在使用 Bootstrap 3 3我有一个 HTML 代码如下 div table class table table striped tr td 03 td td 04 td td 05 td td 06 td td 07 td td
  • 在按钮之间添加空间?

    嗨 我这里有一个代码 除了一件事之外 一切都很完美 代码中每个按钮之间没有空格 我尝试过 margin 但不幸的是它是一个无序列表 所以我有点困惑 我将添加或替换什么以在两个按钮之间留出空间 帮助
  • 用于渲染 html 子集的 Django templatetag

    我有一些 html 在本例中是通过 TinyMCE 创建的 我想将其添加到页面中 但是 出于安全原因 我不想只打印用户输入的所有内容 有谁知道模板标签 最好是过滤器 只允许呈现 html 的安全子集 我意识到 Markdown 和其他人就是
  • 如何使用 JavaScript 获取元素的填充值?

    我有一个textarea在我的 HTML 中 我需要获取整数或浮点形式的填充数值 以像素为单位 我如何使用 JavaScript 获取它 我没有使用 jQuery 所以我正在寻找纯 JavaScript 解决方案 这将返回padding l
  • Android中webview的截图方法

    我在 webview 中的 html5 canvas 上画了一些线 并尝试使用下面的代码截取 webview 的屏幕截图 WebView webView WebView findViewById R id webview webView s
  • 在具有多级分组的 HTML 表格中显示数据

    我必须通过使用 rowspan 进行分组来显示 HTML 表中的一些数据 下面是预期的 GUI 我有如下所示的 JSON 数据 JSON数据here https jsoneditoronline org id 1014438e5489485
  • Javascript 播放声音性能重吗?

    我正在用 Javascript 制作一个简单的游戏 当一个物体与墙壁碰撞时 它会发出 砰 的声音 声音的响度取决于物体的速度 速度越高 gt 声音越大 播放功能 playSound function id vol ID of the sou
  • 增加数字输入、CSS、HTML 上的向下和向上箭头的大小

    有没有办法利用CSS来增大数字输入框右侧的上下箭头的大小 只是向上和向下箭头 而不是整个输入框 或者至少是按比例的 看这个例子 size 36 font size 36px size 12 font size 12px
  • 动态表单标签宽度的 CSS

    我目前正在重构我们的表单控制器之一 以便我们可以将其用于面向公众的网站 目前它正在为表单生成表格布局 但我正在尝试使用 CSS 表单来完成它 我正在尝试重现看起来像这样的东西http www stylephreak com uploads
  • CSS设置默认滚动位置

    有没有办法将滚动位置设置为默认值 我知道如何在 javascript 中做到这一点 例如使用 jquery div divWithScroll attr scrollTop 200 但我只想用CSS来做 我不知道是否可行 不 CSS 中没有
  • 在 HTML5 中创建可拖动和可缩放的网格

    与其他 HTML5 不同如何创建网格问题 我想知道如何制作一个可拖动且可扩展的 绘制网格非常简单 var c document getElementById canvas var ctx c getContext 2d var width
  • 使用 jQuery 清除 IMG

    我正在尝试从 a 中删除加载的图像 img 元素 但清除或删除 src 不会执行此操作 该怎么办 HTML img src https www google com images srpr logo3w png JQUERY img att
  • 如何使用 a-href 标签链接回文件夹? [复制]

    这个问题在这里已经有答案了 好吧 我在文件夹中有一个页面 该页面称为 jobs html 该文件夹简称为 jobs 它是我的 网站 文件夹的子文件夹 在 main 文件夹的主目录中是我的 home html 文件 当我尝试做的时候 a hr
  • 在网页上的文本框中键入内容时删除所有空格

    我如何在用户打字时即时删除输入到文本框中的空格 function var txt myTextbox var func function txt val txt val replace s g txt keyup func blur fun
  • 如何使用canvas.toDataURL()将画布保存为图像?

    我目前正在构建一个 HTML5 Web 应用程序 Phonegap 本机应用程序 我似乎不知道如何将画布保存为图像canvas toDataURL 有人可以帮我吗 这是代码 有什么问题吗 我的画布被命名为 canvasSignature J
  • 我可以停止 :hover 应用于元素吗?

    假设我有一些 CSS button hover font weight bold 我怎样才能防止 hover随意应用样式 我的目标用例是当元素被禁用时 例如 使用这个 HTML
  • 三级十进制有序列表 CSS

    我有一个 html 中的三级有序列表 我想为其提供如下样式 1 Item 1 1 1 Item 2 1 1 1 Item 3 下一个 plunker 中有一个 html 示例 http plnkr co edit DqhZ5pJILTUHG

随机推荐

  • 将一行转置为多行 Oracle

    我有一个总是返回一行的查询many列 我想把它变成 2 列和许多行 原始结果 Col1 Col2 Col3 Col4 val1 val2 val3 val4 我想要的是 ColName Value Col1 val1 Col2 val2 C
  • 了解 Chrome 网络日志“停滞”状态

    我在 Chrome 中有以下网络登录 我不明白其中的一件事 填充的灰色条和透明的灰色条有什么区别 谷歌对这些字段进行了细分评估网络性能他们的 DevTools 文档的部分 摘自资源网络时序 停滞 阻塞 请求在发送之前等待所花费的时间 该时间
  • 为什么不调用成员变量的移动构造函数?

    考虑以下课程 如果我自己实现移动构造函数如下 为什么是 bar 成员b不是移动而是复制 但如果我使用默认的移动构造函数 那么b被感动了 为什么b rhs b 不打电话bar bar 我使用 g 9 2 1 和 std c 11 class
  • jQuery滚动显示隐藏内容

    如何使默认情况下页面上显示 6 个 div 元素 并且当用户滚动到页面底部时 再加载 6 个元素 如果你看到这个example 它有多个div 我希望最初只显示其中 6 个 每次用户到达页面底部时 我希望再加载 6 个 直到您 用完 div
  • 使用什么语法从 JavaDB 数据库中选择常量字段值?

    我在用着UNION ALL结合几个结果SELECT查询成一ResultSet 我使用常量字段值来标识哪条语句生成了每一行 这适用于 MySQL 但 Java DB 会抛出异常SQLSyntaxErrorException 指向第一个常量字段
  • Mac OSx 10.8 上 IDLE (Python 3.3.2) 中的 NumPy

    我知道这可能是一个重复的问题 但我在这里找到的所有答案都超出了我的想象 我对 Python 很陌生 但我想在 IDLE 中使用 NumPy python 3 3 2 IDLE 似乎无法访问 OSX 10 8 即 python 2 7 附带的
  • 按关键字对数组中的元素进行分组

    我正在 AngularJS 1 上开发一个应用程序 但我不知道如何按项目拆分另一个数组中的项目数组 我的意思是我有一系列不同的项目 我会按 uuid 对项目进行分组 如下所示 name toto uuid 1111 name tata uu
  • 做 {...} while(false)

    我正在查看一个人的一些代码 注意到他的函数中似乎有一个模式
  • 可以使用“new”位置来更改“const”数据吗?

    这是后续memcpy 可以用来更改 const 成员数据吗 And 声明 C 不可变类的惯用方式真正解决这个问题 尤其是this回答 在围绕不可变数据设计的语言中 它知道它可以 移动 您的数据 尽管它具有 逻辑 不变性 Given a st
  • 如何在 AutoFixture 中设置更复杂(类似 IoC)的注册

    使用 AutoFixture 时 是否可以在集成测试中重用生产 IoC 容器注册 问题是 如果未注册依赖项并注入 真实 数据库相关依赖项 我需要以下固定装置设置来注入模拟 var fixture new Fixture WithMocks
  • 使用 JavaFX 将渐变应用于球体对象

    我正在 JavaFX 中工作 我正在尝试将渐变应用于球体 但是 显然 我不知道该怎么做 我被困住了 因为我知道球体是一个对象 所以它需要有一种材质 但是 就颜色而言 PhongMaterial 只采用一种颜色 所以它不会采用渐变 因为渐变是
  • pyQt Matplotlib 小部件实时数据更新

    使用 pyQt 4 8 5 在 Python 2 7 中编写 如何在 pyQt 中实时更新 Matplotlib 小部件 目前 我正在对数据进行采样 现在是 random gauss 附加此数据并进行绘图 您可以看到我每次都会清除该数字并为
  • 将具有多个键的字典按一个键求和的最有效方法是什么?

    我有以下字典结构 product1 product tmpl id product id qty product uom qty price price unit subtotal price subtotal total price to
  • 在appdomain中加载静态类

    我在 C AppDomain 中遇到了一个大问题 我需要在 dll 文件中加载静态类并执行其方法 当我尝试通过以下方式加载它们时 Assembly LoadFrom XXXXX XXXXX is the full path of dll d
  • Laravel 递归关系

    我正在做一个项目Laravel 我有一个可以有父母或可以有孩子的帐户模型 所以我的模型设置如下 public function immediateChildAccounts return this gt hasMany Account ac
  • 仅对特定像素着色

    我有一个代表大脑图像的矩阵 每个 i j 位置的值都在 0 和 1 之间 我正在应用颜色图 以便那些值为 1 的像素为红色 0 为黄色 介于两者之间的像素得到中介值 现在 我想要的是那些值高于 0 8 的像素根据颜色图获得颜色 其余的变得透
  • 在另一个程序集中找到 Razor Pages

    我想在另一个程序集中找到 我的项目 Razor 页面 为此 我编写以下代码 public void ConfigureServices IServiceCollection services var adminAssembly Assemb
  • 应该避免 query_posts() 吗?

    我正在读那个query posts 应避免有利于wp query and pre get posts 我对弄乱循环没有信心 也不完全理解法典 下面的代码是否使用query posts 如果是的话 从那时起query posts 应该避免 你
  • 如何将一组变量放置在 gcc 的特定部分中,arm 是否有类似 #pragma default_variable_attributes 的内容

    下面的链接https www iar com support tech notes linker how do i place a group of functions or variables in a specific section
  • Web Worker 中的传感器读取

    看来我们无法在网络工作者中获取传感器数据 我想知道其背后的原因 用例是我正在考虑在工作线程中获取地理位置数据 并且仅将处理后的版本发送到主线程 对于 GPS 这post说工作线程不支持它 没有给出原因 我仔细检查了一下 网络工作人员不支持