Альтернативы setTimeout после обратного вызова Ajax - PullRequest
0 голосов
/ 22 октября 2010

Я часто этим занимаюсь:

window.onload = function(){

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

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

}

Но setTimeout выглядит немного глупо (а 200 мс уже в три раза больше внимания среднего пользователя :).Какая лучшая альтернатива?

EDIT

javaScriptClass.init () действует на объекты DOM из того, что загружается при вызове ajax

1 Ответ

1 голос
/ 22 октября 2010

Я думаю, что здесь есть некоторая путаница с нагрузкой, вы можете просто сделать это:

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

После $('#contentHere').html(data); элементы DOM будут готовы к использованию.Также обратите внимание на .load() для прикрепления (в случае, если другие onload обработчики могут потребоваться присоединить), например:

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

Хотя,если вы не ожидаете изображения, его можно вызвать в обработчике document.ready и запустить быстрее, что приведет к улучшению взаимодействия с пользователем.

...