【发布时间】:2019-05-21 06:34:06
【问题描述】:
我在 Chrome 71 上遇到问题: 在 Firefox 中它工作正常,也在 Chrome announcement at Google,我们应该期待我们使用 service workers 和 cache storage api 的方式会有两个小的变化。 但是新版本破坏了我的 importScripts,我还不知道如何解决它。
我有一个名为 pdfmake-worker-blob.js 的文件,它生成:
importScripts('./pdfmake.min.js');
importScripts('./vfs_fonts.js');
onmessage = function(req) {
pdfMake.fonts = {
Courier: { normal: 'cour.ttf',bold: 'cour-bold.ttf' },
Arial: { normal: 'arial.ttf',bold: 'arial-bold.ttf' }
};
try {
var pdf = pdfMake.createPdf(req.data);
pdf.getBlob(function(output) {
postMessage(output);
});
} catch(err) {
throw err;
}
}
然后我们在使用之前像这样在另一个服务中创建工作者:
var pdfmakeWorkerBlob = new Worker('scripts/pdfmake-worker-blob.js');
您可以在 chrome 调试器模式下看到这一点(让我再次提醒您,代码在 firefox 和 chrome 70 及以下我猜可以正常工作):
在控制台中出现以下消息,我的工人不再做他的工作:
pdfmake-worker-blob.js:1 已弃用:未来版本将拒绝 从执行脚本 'http://myserver_name.company.com/application_name/scripts/pdfmake.min.js' 因为它的 MIME 类型('text/x-js')是不可执行的。
我没有设置这个 Mime 类型,或者我只是做了一个 importscripts 而已。我希望现在更清楚了。
【问题讨论】:
-
您能向我们展示更多您的工作代码吗? importScripts 是否像文章所说的那样在处理程序中异步调用?
-
你为什么要设置那个 mime 类型?
-
@Josh Lee:我没有。我只是导入脚本
-
@Novy 浏览器显然认为您将 MIME 类型设置为无效。请在问题中包含您实际设置的内容。
-
感谢@LShapz 的帮助
标签: javascript google-chrome mime-types web-worker