簡體   English   中英

來自網絡工作者的中止ajax呼叫

[英]Abort ajax call from web worker

我今天閱讀了一些有關Web Workers的文章,並嘗試了一些有關Ajax請求的內容。 實際上,我希望能夠存儲Web Worker發送的每個ajax請求,以便在單擊元素時中止它們。 但是,無法克隆XHR對象,因此無法通過postMessage()worker方法發送該對象。

我試圖這樣做:

    let xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function () {
    let DONE = 4; // readyState 4 means the request is done.
    let OK = 200; // status 200 is a successful return.
    if (xhr.readyState === DONE) {
        if (xhr.status === OK) {
            handlePoints(JSON.parse(xhr.responseText));
        }
    }

    xhr.open('GET', '/api/widgets/burndownchart?widgetId='+ widgetId);
    xhr.send(null);
    self.postMessage([constants.EVENT_AJAX_CALL, xhr]);

但是我當然有這個錯誤:

未捕獲的DOMException:無法在'DedicatedWorkerGlobalScope'上執行'postMessage':無法克隆XMLHttpRequest對象。

您對此有想法嗎? PS:很抱歉我的語言錯誤。

您將需要將對象保留在Web Worker中,並向Web Worker發送一條消息,要求它按需中止請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM