Можем ли мы контролировать значок «загрузки» на вкладке браузера? - PullRequest
17 голосов
/ 15 ноября 2011

У меня есть серия вызовов AJAX через jQuery. Когда выполняется вызов ajax, визуальная индикация отсутствует. Обычно, если вы щелкаете по ссылке или иным образом загружаете не Ajax, браузер отображает небольшой значок загрузки на вкладке.

Можно ли указать браузеру отображать этот маленький значок на вкладке? (Существует около 30 таких вызовов, поэтому я надеюсь не изменять каждый из них).

Ответы [ 5 ]

10 голосов
/ 15 ноября 2011

Нет, вы не можете сказать браузеру такую ​​вещь.

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

$("#loading_animation").bind({
    ajaxStart: function() { $(this).show(); },
    ajaxStop: function() { $(this).hide(); }
});

ajaxStart срабатываетс помощью jQuery, когда запускается ajax-запрос, когда другие не выполняются;ajaxStop запускается, когда ajax-запрос завершается, если другие не выполняются.

7 голосов
/ 15 ноября 2011

Нет.

Но вы можете изменить CSS курсора.

body {
   cursor:wait;
}
4 голосов
/ 22 ноября 2011

Вы абсолютно можете.См. Этот пост: Динамическое изменение значка веб-сайта

Просто создайте анимированный значок загружаемого изображения и измените его на значок во время загрузки.

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

1 голос
/ 22 ноября 2011

Прежде чем приступить к какому-либо коду или чему-либо еще, я просто хочу сказать, что это уродливое решение, но оно действительно сработало для меня.

Что я сделал, так это разместил на сайте iframe. Затем я скрываю это с помощью display: none в css.

Затем при каждом вызове ajax я перезагружаю iframe с новой страницей. Это заставляет браузер отображать загрузку в панели вкладок.

Я знаю, что это не очень хорошее решение, и у него есть некоторые недостатки. Как будто вы не можете контролировать продолжительность загрузки, если iframe загружается быстрее, чем ajax. Но я просто выбрасываю это туда. Может быть, кто-то еще может опираться на эту концепцию.

0 голосов
/ 17 ноября 2011

Вот альтернатива.
Перед вызовом вы можете показать изображение, а затем в функции (не после вызова) снова скрыть его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...