可以通过jQuery html()方法设置什么是数据的最大限制

时间:2013-03-08 04:37:09

标签: jquery html innerhtml

一旦我从Ajax事件中获得响应文本,我就会通过jQuery .html()方法更改div内容。

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

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

1 个答案:

答案 0 :(得分:3)

首先,定期下载和插入4MB的HTML永远不会成为一个快速的交互式应用程序。这将是一场网络生猪和记忆困难,而且效果不佳。

除了浏览器可以访问的内存量之外,.html()方法没有技术限制。 .html()是原生.innerHTML属性顶部的shell,没有特别限制。

4MB的HTML需要花费大量时间进行下载,浏览器需要花费大量时间进行解析。这可能是你看到的延迟。时间可能与jQuery无关。在进行了一些与您正在设置的实际内容无关的初始内务管理之后,jQuery只设置.innerHTML属性,浏览器会处理解析您提供的HTML内容。

现在,如果要替换大量的HTML(例如另外4MB的HTML),那么jQuery可能会慢得多,因为它必须遍历旧内容中的每个元素并确保它已清理任何jQuery状态与即将被删除的元素相关联。


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