【发布时间】:2016-06-28 18:32:01
【问题描述】:
我正在将一些 url 轮询请求卸载给网络工作者。为此,我需要从调用的 DOM 元素中获取某些属性,将它们传递到 url 请求中,然后使用结果更新原始 DOM 元素。由于多个 DOM 元素使用此函数来获取更新,因此我需要通过 $(this) 或等效的唯一标识符来确保更新正确的元素。
我从"Passing objects to a web worker" 和"Can I pass a jQuery object to a web worker" 等问题中了解到这是不可能的,因此我正在寻找一种方法来效仿。
这是我的代码的粗略轮廓:
//main.js
function update(){
var data = { 'id' : $(this).attr('itemid'),
'filter' : $(this).attr('filter')}
updatePoller.postMessage(data);
}
//worker.js
this.onmessage = function(e){
//format params from e.data
//make GET request to url
//when done...
postMessage(req.responseText);
}
//main.js (again)
updatePoller.onmessage = function(message){
//process response
//update child elements of $(this)
}
如您所见,我不需要在 Web Worker 中访问 $(this),但在请求返回后我需要引用以更新正确的元素。有什么方法可以通过 web worker 传递对 DOM 元素的唯一引用?
【问题讨论】:
标签: jquery dom web-worker