2012-11-28 93 views
0

我目前试图解决这个问题的方法是在$(document).ready()上加载对象。然后使用$(window).load()运行其余的脚本。不过,我仍然最终添加了0.5秒的延迟,以确保该对象完全加载,因为它从2个Ajax调用中检索数据。有没有方法在加载DOM之前加载对象?

有没有更好的方式在DOM加载之前加载对象或同时加载对象并获取数据,然后调用其余函数?

document.ready = function(){ 
object.initall(); 
}; 

initall()函数调用从两个不同服务获取数据的两种方法。

window.onload = function() { 
setTimeout(function(){ 
    object.loadEventTable(); 
    object.loadChart();  
    $('#uid').text(object.lData.header.uid);   
},500); 
}; 
+0

dom不需要加载任何东西,它所做的只是确保在初始文档被分析后运行回调。如果'.initall'没有尝试选择文档中的元素,那么文档是否准备就绪并不重要 – Esailija

+0

谢谢大家的回应......它实际上给了我一个关于如何解决这个问题的好主意。 yey! –

回答

1

我想你可以使它成为一个函数,并将函数调用放在页面的开始部分。可在你的身体标记

object.loadEventTable(); 
object.loadChart();  
window.onload = function() { 
setTimeout(function(){ 
    $('#uid').text(object.lData.header.uid);   
},500); 
}; 
+0

添加一个函数并在开始时调用它会使$(“#uid”)文本失败。 – TryingToImprove

+1

肯定会失败 –

+0

这是我解决它的一种方式,除了$(“#uid”)被转移到另一个功能作为回调。该功能实际上是加载内容,并作为回拨,我将其设置为适当的UID。谢谢! –

0

最快的方法是产生“响应”服务器端,并直接把它放到你的代码,因此单独调用是没有必要的开幕式。

相关问题