Реализован веб-работник в одном семействе сайтов (другое веб-приложение), и он отлично работает, скопировал тот же код и внедрен в другое семейство сайтов, и он вообще не работает.Есть ли какие-то функции, сервисы, которые нужно активировать.Я почти уверен, что это не ошибка кода, но код, как показано ниже.
на главной странице.
var worker = new Worker("/SiteAssets/Scripts/js-xlsx-master/xlsxwork.js");
worker.onmessage = workerResultReceiver;
worker.onerror = workerErrorReceiver;
worker.postMessage({"Message":"message"});
function workerResultReceiver(e) {
console.log(e.data.t);
console.log(e.data.d);
switch(e.data.t) {
case 'ready': break;
case 'e': console.error(e.data.d); break;
case 'xlsx': cb(JSON.parse(e.data.d)); break;
}
}
На работника .js
self.postMessage({t:"ready"});
self.addEventListener('message', function(evt) {
try {
var evt = {e.d:data, b:false?'binary':'array'}
workbook =XLSX.read(evt.data.d, {type: evt.data.b});
var result = {};
workbook.SheetNames.forEach(function(sheetName) {
var roa = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName], {raw:true});
if(roa.length) result[sheetName] = roa;
});
var results = result.Sheet1;
self.postMessage({t:"xlsx", d:JSON.stringify(results)});
}catch(e) { self.postMessage({t:"e",d:e.stack||e});}
}, false);