gpt4 book ai didi

javascript - 密集工作 JavaScript,浏览器卡住

转载 作者:行者123 更新时间:2023-12-02 22:47:30 26 4
gpt4 key购买 nike

我要构建一个 blob,并收到了近 100 个部分 (500k) 来解密和构建一个 blob 文件。

实际上它工作正常,但是当我进行解密时,会占用处理器并卡住我的页面。

我尝试了不同的方法,延迟了jquery,超时但总是遇到同样的问题。

有没有办法不卡住 UI 线程?

var parts = blobs.sort(function (a, b) {
return a.part - b.part;
})
// notre bytesarrays finales


var byteArrays = [];
i = 0;

for (var i = 0; i < blobs.length; i++)
{
// That job is intensive, and take time
byteArrays.push(that.decryptBlob(parts[i].blob.b64, fileType));
}

// create new blob with all data
var blob = new Blob(byteArrays, { type: fileType });

最佳答案

for(...) 循环内部的主体是同步的,因此整个解密过程是同步的,简单来说,解密是一 block 接一 block 地发生。让它异步怎么样?就像并行解密多个 block 一样。在 JavaScript 术语中,我们可以使用异步工作线程。这些工作人员可以并行工作,例如,如果您生成 5 个工作人员。总时间减少 T/5。(T = 同步模式下的总时间)。

在此处阅读有关工作线程的更多信息: https://blog.logrocket.com/node-js-multithreading-what-are-worker-threads-and-why-do-they-matter-48ab102f8b10/

关于javascript - 密集工作 JavaScript,浏览器卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58332551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com