gpt4 book ai didi

Javascript - 如何将 jQuery 对象(表)传递给 Web Worker?

转载 作者:行者123 更新时间:2023-11-28 19:15:32 24 4
gpt4 key购买 nike

我有一个包含不同列和行的 HTML 表格。用户可以内联编辑该表。当用户编辑表格时,我会计算表格行上的一些总和。

计算总和的函数位于主脚本中,并且花费了大量时间导致浏览器无响应。为了解决这个性能问题,我用 JavaScript 创建了一个 Web Worker 来计算表中的总和。

问题是 Web Worker 无法访问 DOM。我正在寻找一种将 jQuery 对象表传递给 Web Worker 的方法。

如果我尝试传递 jQuery 对象,我会收到错误:

Uncaught DataCloneError: Failed to execute 'postMessage' on 'Worker': An object could not be cloned.

如何将表传递给 Web Worker?

谢谢

[编辑添加一些进一步的信息]

求和需要很长时间,因为表有很多行并计算不同的总和(总计、小计等)。求和的值存储在表中(因此工作人员需要访问表来执行计算)。

我的想法是将 DOM 对象传递给worker来计算总和。计算完成后,worker 将总和返回到主线程,以便更新 DOM 中的值。

最佳答案

简而言之,您无法将 DOM 元素传递给工作人员。只有数据(通常为字符串)可以传递给网络 worker ,而不是对象。您应该从表中提取数据,将其包装在一个对象中,将对象转换为 json,将 json 发送给工作人员,对其进行处理并将一些 json 返回到主线程。

关于Javascript - 如何将 jQuery 对象(表)传递给 Web Worker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29947630/

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