4

.html()从 Ajax 事件获得响应文本后,我将通过 jQuery 方法更改 div 内容。

有时我会得到更多响应数据(包含 html 和脚本以及大约 4MB 的数据)。.html()使用 jQuery方法将响应数据设置为 div 内容确实需要更多时间。

有人可以告诉我原因吗?有没有解决方案或替代方案?

4

1 回答 1

3

首先,定期下载和插入 4MB 的 HTML 永远不会成为一个快速的交互式应用程序。它将成为一个网络贪婪和内存贪婪的人,并且表现不佳。

.html()除了浏览器可以访问多少内存之外 ,该方法没有技术限制。.html()是原生属性之上的一个外壳,.innerHTML没有特别的限制。

4MB 的 HTML 需要大量时间来下载,并且浏览器需要大量时间来解析。这可能就是您看到的延迟。时间可能与jQuery无关。在与您设置的实际内容无关的一些初始内务处理之后,jQuery 只是设置.innerHTML属性并且浏览器处理解析您提供给它的 HTML 内容。

现在,如果你要替换大量的 HTML(例如另外 4MB 的 HTML 集),那么 jQuery 可能会慢很多,因为它必须遍历旧内容中的每个元素并确保它已经清除了与那些即将被移除的元素。


你真的应该修复你的页面设计/应用程序设计,这样你就不必使用 4MB 的 HTML。

于 2013-03-08T04:42:17.503 回答