Javascript Ajax回调后设置超时的替代方法

Javascript Ajax回调后设置超时的替代方法,javascript,jquery,ajax,settimeout,Javascript,Jquery,Ajax,Settimeout,我发现自己经常这样做: window.onload = function(){ $.get("http://example.com/example.html", function(data) { $('#contentHere').html(data); setTimeout("javaScriptClass.init()", 200); }); } 但是setTimeout似乎有点不太正常(200ms已经是普通用户注意力跨度的三倍多了:)。最好的

我发现自己经常这样做:

window.onload = function(){

   $.get("http://example.com/example.html", function(data) {
       $('#contentHere').html(data);

       setTimeout("javaScriptClass.init()", 200);
   });

}
但是setTimeout似乎有点不太正常(200ms已经是普通用户注意力跨度的三倍多了:)。最好的选择是什么

编辑


javaScriptClass.init()作用于ajax调用中加载的DOM对象

我认为这里对加载有一些混淆,您可以这样做:

window.onload = function(){    
   $.get("http://example.com/example.html", function(data) {
       $('#contentHere').html(data);
       javaScriptClass.init();
   });    
}
$('#contentHere').html(数据)之后DOM元素将随时可用。还可以查看附件(如果其他
onload
处理程序可能需要附加),如下所示:

$(window).load(function(){    
   $.get("http://example.com/example.html", function(data) {
       $('#contentHere').html(data);
       javaScriptClass.init();
   });    
});

不过,除非您正在等待图像,否则可以在
文档中调用此函数。准备好
处理程序并尽快启动,从而获得更好的用户体验。

为什么会有延迟?@Nick!javaScriptClass.init()作用于ajax调用中加载的DOM对象。它们将在调用
.html()
前一行之后立即加载,这是一个同步操作。@Nick我在
javaScriptClass.init()
setTimeout(“javaScriptClass.init()”,200)之间来回切换并得到不同的结果。有了延迟,它就工作了,没有延迟,它就不工作了。那么,我应该重新解释这个问题吗?您是否正在加载内容中的图像,并且这些图像是必需的?这是我唯一能想象的不完全同步的场景。谢谢尼克。我很困惑,但这显然是正确的答案。