我正在一个显示排行榜资料的网站上使用 Piety 插件。 每个配置文件包含应用 Piety 的不同数量的元素,我发现 $(document).ready 在所有这些元素加载之前被触发。
到目前为止,我的解决方案是将 Piety 从 $(document).ready 移动到 $(window).load - 这对于大多数配置文件都非常有效。然而,排行榜顶部的人拥有非常大的个人资料,这在 $(window).load 启动并完成所有 Piety 元素之前需要等待一段时间。
我想知道如果我在加载每个饼时单独调用它们,而不是等待 $(window).load 并让 jQuery 完成这一切,是否会出现任何性能问题一试。
类似于..
来自:
$(window).load(function(){
$("span.pie").peity("pie", { ... })
});
致:
function loadPie(id){
$("#"+id).peity("pie", { ... })
}
..然后在每个元素后面加载Pie。
请您参考如下方法:
如果配置文件在 DOM 准备好后异步加载,那么是的,在加载配置文件后对每个配置文件进行初始化是有意义的。 $(window).load() 等待页面上的所有内容(与配置文件相关或不相关)完全加载。
需要考虑的一件事是每个实例的虔诚所需的资源。根据您拥有的配置文件/饼图的数量,在加载最后配置文件之后(但在 window.load 之前)一次调用它们可能会更快。我稍后会尝试用 jsperf 更新它...现在就开始工作:)
