[javascript] Обнаруживать, когда пользователь нажимает ссылку, но прерывает


1 Answers

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

http://yensdesign.com/2008/11/creating-ajax-websites-based-on-anchor-navigation/

В принципе, вы будете отсылать пользователя к тому же URL-адресу, но с привязкой в ​​конце ( http: // localhost / home # somepage? Param1 = val1 ) и загружать данные с помощью AJAX. Javascript поймает изменение привязки и может показать значок «загрузка» и предоставить дополнительные материалы, такие как «отменить загрузку». В этом случае у вас будет история вашего браузера, поэтому вы можете сказать «назад» в браузере или history.go (-1) в javascript.

Question

Я работаю над веб-CMS. Когда пользователь нажимает на ссылку для перехода на другую страницу или отправляет форму, я хочу, чтобы анимированный GIF «подожди», чтобы отобразиться в верхнем правом углу, чтобы символизировать, что загрузка выполняется.

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

Как я могу обнаружить это в Javascript и снова скрыть значок «wait»?

Изменить: для обращения к «вы не должны этого делать, браузер уже имеет его». У меня есть две конкретные причины для введения пользовательского решения.

  • У меня есть кнопки AJAX на странице. Мне нужен индикатор активности для них, поэтому пользователь не путается, зарегистрирован ли клик или нет.

  • При медленных соединениях с большим запаздыванием индикатор хода некоторых браузеров будет двигаться очень медленно. Я работаю в реальной жизни, когда требуется время, пока throbber не проявит активность в IE6 / 7. Это создает впечатление, что ничего не происходит, и приложение реагирует очень медленно, и это меня раздражает. Мне нужен индикатор, который постоянно перемещается (например, Safari).




(Да, мне нравятся старые темы)

Здесь я столкнулся с такой же ситуацией. Я создаю несколько страниц, где навигация осуществляется посредством отправки формы, и я считаю удобным показать пользователю, что что-то происходит, прежде чем он выйдет, и трижды запускает тот же запрос в 15 раз - «Мы не доверяем пользователям, делаем мы?"

Поэтому я использую jQuery вместе с приятным подключаемым модулем Impromptu, доступным там http://trentrichardson.com/Impromptu/index.php

Вот фрагмент кода:

$(document).ready( function () {

 $("form").submit( function() {
  $.prompt( "<center>Sending request...</center>", {
   overlayspeed: 200,
   buttons:{}
  });

  setTimeout( "jQuery.prompt.close()", 2000 );
 });

});



Related