Написал простенькую функцию
для коммуникации написал вэб воркера и аджакс разделил их по файлам
function crWorkerAjax(modeWork, typeSend, adr, param, id, callback)
CODE ( javascript):
скопировать код в буфер обмена
{ var workerAjax = new Worker('ajaxWorker.js'); var objEx = { mode:modeWork, type:typeSend, adress:adr, parametrs:param, ID:id, funct:callback }; workerAjax.postMessage(objEx); }
код работника
CODE ( javascript):
скопировать код в буфер обмена
onmessage = function (event) { alert(event.data); importScripts('AjaxClass.js'); var ajObj = new AJAXprov(); httpP = ajObj.provXmlHttp(); var obj = event.data; ajObj.sendAnsServ(obj.mode, obj.type, obj.adress, obj.parametrs, obj.ID, obj.funct); }
в результате опера пишет Uncaught exception: DOMException: DATA_CLONE_ERR
а мозила, что файл не существует. все файлы лежат в одной папке. Что я сделал не так?
(Добавление)
немного помучившись выявил, что ошибка была, как это ни странно, в одинарных кавычках в Worker('ajaxWorker.js') последняя из них интерпретировалась как текст... поставил двойные прописал абсолютный путь; и в функции колбэка, убрал функцию, теперь все работает, но только в мозиле и хроме, опера выводит вместо нужного значения undefined. Кто сталкивался, может реализация воркеров в опере отличается от других браузеров. Во всех статьях в том числе на опера дэв, вроде написано о поддержке этой технологии.
|