Web Worker importScripts 方法可以访问主线程缓存的脚本吗?
实际上有多个问题:
importScripts
是否始终使用 GET 请求加载脚本,或者是否可以缓存脚本?importScripts
可以访问主线程或浏览器上下文中缓存的脚本吗?worker可以缓存脚本供主线程访问吗? (正好相反)
Multiple questions actually:
Will
importScripts
always load the scripts with a GET request or can it cache scripts?Can
importScripts
access scripts cached in the main thread or browser context?Can the worker cache scripts for the main thread to access? (simply the other way around)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您正确指定“Expires”或“Cache-control”等 http 缓存标头,importScripts 将不会再次加载脚本,请参阅Google 推荐 相关内容
之间有一种“网关过滤器”线程,允许布尔值、字符串等原语通过,但不允许对象/函数通过。如果您通过 XHR 在主线程中将脚本作为字符串加载,您可能能够将其发送到工作线程并在那里进行评估。
查看答案#1
importScripts will not load the script again if you specify http cache headers like 'Expires' or 'Cache-control' properly, see google recomendations about that
There is a kind of 'gateway filter' between threads, that allows primitives like booleans, strings to go through but not objects/functions. If you load your script via XHR as a string in main thread, you'll probably be able to send it to the worker thread and eval there.
See the answer #1