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