是否可以访问.vue组件内的Web Workers

贾瓦德·艾哈迈德(Jawad Ahmed)

因此,我正在考虑创建一个使用这个我发现的Web工作程序的应用程序,该程序会生成rubik的多维数据集争夺(实际上是一个密集的过程,以生成随机状态争夺,尤其是对于较大的多维数据集,因此对于这种情况Web工作者是必需的)。我想知道是否可以从Vue组件内部访问此Web Worker(在提供Worker文件或访问它时是否存在任何问题。如果可能,我将如何使其工作?

布莱克斯

是的,可以,这是一个演示:

Vue.component('my-component', {
  template: '#my-component',
  data() {
    return {
      cube: '-- no data yet --',
      worker: null
    };
  },
  created() {
    this.initWorker();
  },
  beforeDestroy() {
    this.destroyWorker();
  },
  methods: {
    initWorker() {
      // Here, just for this demo to work, I'm not using an external file
      // for the worker. Instead, I use a Blob. It's still a real Worker!
      // See https://stackoverflow.com/a/6454685/1913729
      const scriptBlob = new Blob(
        [ document.querySelector('#worker-script').textContent ],
        { type: "text/javascript" }
      );
      this.worker = new Worker(window.URL.createObjectURL(scriptBlob));
      this.worker.onmessage = e => this.onCubeReady(e.data);
    },
    destroyWorker() {
      this.worker.terminate();
    },
    scrambleCube() {
      this.cube = '-- Scrambling cube... --'
      this.worker.postMessage('Gimme a cube');
    },
    onCubeReady(cube) {
      this.cube = cube;
    }
  }
});

var vm = new Vue({
  el: '#app'
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.21/vue.min.js"></script>

<div id="app">
  <my-component></my-component>
</div>

<template id="my-component">
  <div>
    <button @click="scrambleCube">Scramble cube</button>
    <pre>{{cube}}</pre>
  </div>
</template>

<!-- This is just for the demo, and won't be parsed
     because of type="javascript/worker".
     we load it into a Blob to make it a worker -->
<script type="javascript/worker" id="worker-script">
self.addEventListener("message", onMessageReceive);

function onMessageReceive(e) {
  console.log(`Worker received a message`);
  const res = heavyProcessing();
  self.postMessage(res);
}

function heavyProcessing() {
  const endTime = Date.now() + 2000;
  while (Date.now() < endTime) {}
  return 'CUBE MADE BY A WORKER';
}
</script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Web Workers文件句柄可以包含或包含模块?

来自分类Dev

RequireJS Singleton与Web Workers

来自分类Dev

HTML5 Web Workers可以/应该将CORS用于跨域吗?

来自分类Dev

使用组件时是否可以访问组件变量?

来自分类Dev

访问Cloudflare Workers站点的压缩数据

来自分类Dev

访问Cloudflare Workers站点的压缩数据

来自分类Dev

是否可以从其模板中访问Vue组件的索引或其他唯一标识符?

来自分类Dev

是否可以使用 ref 访问数组映射函数内的 React 组件?

来自分类Dev

是否可以从函数内访问 exec 提供的全局字典?

来自分类Dev

是否可以从Web API访问HttpContext.Current.Session

来自分类Dev

是否可以从Java EE Web应用程序访问AudioSystem?

来自分类Dev

按URL划分Heroku Web Workers

来自分类Dev

关于Web Workers并行性

来自分类Dev

Web Workers handling AJAX calls - optimisation overkill?

来自分类Dev

Web Workers的Javascript功能检测模块支持

来自分类Dev

如何使用Web Workers查找交集?

来自分类Dev

我可以使用 Cloudflare Workers 批量处理请求吗?

来自分类Dev

Vue.js-从组件内的根实例访问数据

来自分类Dev

导入不同文件(作为库)时,是否可以访问React组件的状态?

来自分类Dev

是否可以从 Angular 2 Bundle 访问所有路由及其组件数据?

来自分类Dev

Web Workers:SetInterval和SetTimeout可靠性

来自分类Dev

在JavaScript中的Web Workers中使用Synaptic库

来自分类Dev

如何使用webpack处理Web Workers的“标准”语法?

来自分类Dev

使用Firefox扩展程序中的Web Workers的XPCOM

来自分类Dev

在JavaScript中的Web Workers中使用Synaptic库

来自分类Dev

CouchDB:是否可以在过滤器功能内访问链接的文档?

来自分类Dev

是否可以访问通过模板内的JS发送到车把的数据?

来自分类Dev

CouchDB:是否可以在过滤器功能内访问链接的文档?

来自分类Dev

在Django中,是否可以从包含标签内的父模板的上下文访问当前用户会话?

Related 相关文章

  1. 1

    Web Workers文件句柄可以包含或包含模块?

  2. 2

    RequireJS Singleton与Web Workers

  3. 3

    HTML5 Web Workers可以/应该将CORS用于跨域吗?

  4. 4

    使用组件时是否可以访问组件变量?

  5. 5

    访问Cloudflare Workers站点的压缩数据

  6. 6

    访问Cloudflare Workers站点的压缩数据

  7. 7

    是否可以从其模板中访问Vue组件的索引或其他唯一标识符?

  8. 8

    是否可以使用 ref 访问数组映射函数内的 React 组件?

  9. 9

    是否可以从函数内访问 exec 提供的全局字典?

  10. 10

    是否可以从Web API访问HttpContext.Current.Session

  11. 11

    是否可以从Java EE Web应用程序访问AudioSystem?

  12. 12

    按URL划分Heroku Web Workers

  13. 13

    关于Web Workers并行性

  14. 14

    Web Workers handling AJAX calls - optimisation overkill?

  15. 15

    Web Workers的Javascript功能检测模块支持

  16. 16

    如何使用Web Workers查找交集?

  17. 17

    我可以使用 Cloudflare Workers 批量处理请求吗?

  18. 18

    Vue.js-从组件内的根实例访问数据

  19. 19

    导入不同文件(作为库)时,是否可以访问React组件的状态?

  20. 20

    是否可以从 Angular 2 Bundle 访问所有路由及其组件数据?

  21. 21

    Web Workers:SetInterval和SetTimeout可靠性

  22. 22

    在JavaScript中的Web Workers中使用Synaptic库

  23. 23

    如何使用webpack处理Web Workers的“标准”语法?

  24. 24

    使用Firefox扩展程序中的Web Workers的XPCOM

  25. 25

    在JavaScript中的Web Workers中使用Synaptic库

  26. 26

    CouchDB:是否可以在过滤器功能内访问链接的文档?

  27. 27

    是否可以访问通过模板内的JS发送到车把的数据?

  28. 28

    CouchDB:是否可以在过滤器功能内访问链接的文档?

  29. 29

    在Django中,是否可以从包含标签内的父模板的上下文访问当前用户会话?

热门标签

归档