У меня есть директива с Canvas, которая общается с webWorker. В Firefox и версиях Chrome < 43.0.2357.65 (64-разрядная версия) все работает хорошо, но в Chrome> = 43.0.2357.65 (64-разрядная) директива не получает сообщения от Рабочего.Работник работает на Firefox и более старую версию Chrome, но не на последнем Chrome
restrict: 'E'
replace: true
templateUrl: 'some.html'
link: ($scope, element, attrs) ->
...
worker = new Worker('js/myworker.js')
...
#
# Initialize Worker with the canvas image
#
initializeWorker = (imgData, imgWidth, imgHeight, length) ->
worker.postMessage(
type: 'init'
imgData: imgData
width: imgWidth
height: imgHeight
length: length
calculateBoundingBox: true
)
...
...
initializeWorker(...)
worker.onmessage = (event) ->
console.log('Worker message', event)
worker.onerror = ->
console.log('error on the web worker')
Даже от фиктивного работника, как это:
var onmessage;
onmessage = function(event) {
return postMessage('message');
};
Я попытался с помощью Blob
вместо загрузки `js' файл Worker, но проблема остается.
В Firefox и Chrome < 43.0.2357.65 (64-разрядная версия) можно увидеть сообщение вроде:
Worker message message { target: Worker, isTrusted: true, data: "message", origin: "", lastEventId: "", currentTarget: Worker, eventPhase: 2, bubbles: false, cancelable: true, defaultPrevented: false, timeStamp: 1432625927407334 }
Но не на Chrome> = 43.0.2357.65 (64-разрядная версия).
я использовал 'this' и работал. Большое спасибо! –