2009-12-13 1 views
0

Я хотел бы знать, возможно ли это в javascript: у меня есть приложение, разработанное в основном в javascript. Есть ajax-вызовы, извлекающие содержимое html, разбросанное по всему коду.jenscript load listener

Я хотел бы создать объект, который прослушивает всякий раз, когда вызывается функция загрузки, и запускать функцию в этом случае (например, показывать предварительный загрузчик).

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

Возможно ли это?

ответ

1
$('document').ajaxStart(function() { /* show loader */ }); 
$('document').ajaxStop(function() { /* hide loader */ }); 

Не действительно так просто, как и несколько вызовов AJAX может быть происходит в то же время, так что вы не всегда хотят для ajaxStop, чтобы скрыть загрузчик. Вам нужно будет создать небольшой счетчик, который отслеживает текущие вызовы, но это те события, которые вы хотите подключить, в любом случае

0

На первый взгляд, я не понимаю, почему нет. Если вы используете только XMLHttpRequest, тогда вы можете создать свой собственный обработчик XMLHttpRequest открытым (и/или отправить, в зависимости от того, что вы собираетесь использовать), сделать любой «загрузочный экран», который вы хотите, а затем вызвать оригинальный метод.

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