динамическая загрузка контента, содержащего JavaScript - PullRequest
1 голос
/ 31 мая 2011

Я хочу добавить индикатор выполнения до загрузки содержимого моей веб-страницы, поэтому я подумал о ее динамической загрузке с помощью javascript. Этот контент имеет встроенный JavaScript в своем HTML. Я попытался использовать jquery.load (), который прекрасно работает, кроме того факта, что он не поддерживает js, который не работает с возвращаемым содержимым

просто чтобы прояснить, что я делаю, что-то вроде этого, чтобы загрузить весь контент:

 $("#contentid").html("progressBar.gif");
 $("#contentid").load(script.php #content)
 $("#contentid").show();

и внутри содержимого, возвращаемого из script.php, есть вызовы js, такие как:

jquery.load (to crawl for data and displaying it when ready)
document.getElementById('some_div') (for chart api)
snippets that load widgets

Я пытался обойти использование jquery.ajax, хотя и не уверен, насколько это возможно с ним. хотел бы получить какой-то вклад в это. смогу ли я достичь этого с этим?

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

Спасибо.

Ответы [ 2 ]

0 голосов
/ 31 мая 2011

Метод загрузки JQuery принимает функцию обратного вызова в качестве аргумента.Эта функция будет вызвана, когда загрузка будет завершена, поэтому вы можете скрыть свой индикатор выполнения в этой точке.Вот пример из их API документов :

$('#result').load('ajax/test.html', function() {
  alert('Load was performed.');
});

В вашем случае это будет что-то вроде:

$("#contentid").load(script.php, function(){
  $("#contentid").hide();
});
0 голосов
/ 31 мая 2011

Вы можете добавить div с индикатором выполнения, покрывающим всю страницу, и удалить его после загрузки страницы, используя:

$(window).load(function() {
  $('#progressbar').remove();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...