有时我想在页面上放置大量数据,以避免对动态内容进行额外的AJAX调用。我想知道,如果有性能损失,我应该谨慎。
答案 0 :(得分:4)
HTML5 spec对属性中的数据量没有限制:
...对生成的DOM树的深度或长度没有限制 标签名称,属性名称,属性值,文本节点等
呈现页面所需的时间取决于内容的长度,因此任何添加的内容(如存储在属性中的大量数据)都会导致页面加载速度变慢。如果数据量很大,使用javascripts getAttribute()
获取数据可能会更慢。
使用ajax或/和服务器端存储解决方案,您可以根据需要检索数据,在许多情况下比将所有内容存储在HTML中要快得多。
多少钱?这取决于你对数据做什么,什么样的数据等,几乎不可能回答。作为开发人员,您必须根据用例等来决定。
答案 1 :(得分:0)
一个明确的答案:这取决于;) 这主要取决于你放在页面上的数据量。 您必须执行数据打包页面的初始页面加载与初始加载+另一个服务器往返的等式。 有时候更好 - 可能是为了更好地使用体验 - 快速提供某种基本/部分页面,然后在需要时加载其他内容(参见延迟加载)。
性能测试将为您提供正确的答案。
但另外:为什么要在dom中存储数据?它不是存储客户端数据的最佳位置。为什么不使用Javascript变量?