监控Web worker脚本的下载状态

时间:2014-12-31 01:11:34

标签: html5 xmlhttprequest web-worker

考虑拥有一个规模的Web Worker或具有慢速Internet连接的客户,因此下载可能需要一段时间。在此期间,我们希望能够看到客户已经下载了多少以及有多少尚未完成。什么是黄金标准来实现它? Web Worker界面是否提供有关该信息的任何信息?

我可以想象做类似于

的事情
  1. 父站点以Web Worker启动中间脚本:
    new Worker( 'intermediateWorker.js' );并告诉它,实际的工作脚本是什么。
  2. 中级脚本使用XHR下载实际工作人员
  3. 中级脚本通过XHR的progress事件监控进度,并postMessage将其发送到其父站点
  4. 当XHR完成时,它使用eval()执行代码并在评估代码后通知其父站点,最后从所有事件侦听器取消订阅。
  5. 现在可以进行父站点和实际工作者脚本之间的通信,就好像从未有过中间脚本一样。
  6. 但是,出于好的理由,我想避免使用eval和过于复杂的中间脚本:

    • 下载其他脚本的开销
    • 维护其他脚本
    • 使用eval
    • 跨域请求的困难,包括IE中file:协议的错误,托管巨大代码文件的CDN等。

0 个答案:

没有答案