我正在创建一个应用程序,当单击选项卡时,其内容将通过 ajax 加载。这样做的原因是为了加快初始页面加载速度,而不是加载不必要的选项卡内容。这些选项卡包含表单项,其中的值可以更改。
为了防止数据丢失,加载选项卡时我给它一个额外的“ajaxed”类。单击选项卡时,如果“ajaxed”类不存在,则通过 ajax 加载内容,否则仅将先前加载的内容呈现给用户。
问题: 在 dom 中缓存大量 HTML 会降低性能吗? 这是不好的做法吗?这适用于无限滚动和其他类型的页面,您只需不断附加越来越多的 html。这种方法有什么缺点?
提前致谢。
最佳答案
这取决于您的应用领域。 在 DOM 中缓存某些选项卡的内容肯定不会有什么坏处,前提是这些选项卡中的 dom 元素数量有限。
事实上,元素越多,使用选择器在 DOM 中查找元素的脚本就越慢。当访问者使用带有蹩脚 JavaScript 引擎的浏览器(例如旧版本的 Internet Explorer)时,这一点对他们来说会更加明显。而且内存消耗会随着 DOM 元素数量的增加而增加。 所以您不想向 DOM 添加无限数量的项目。
对于无限滚动,一个好的做法是在向下滚动太多时卸载/删除项目,并在再次向上滚动时重新添加它们。
关于JQuery 在 Dom 中缓存 Ajax 请求 + 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10392618/