Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   как запретить AJAX во время другого AJAX ? (https://javascript.ru/forum/events/70892-kak-zapretit-ajax-vo-vremya-drugogo-ajax.html)

greenwar 10.10.2017 11:42

как запретить AJAX во время другого AJAX ?
 
приветствую!
помогите победить глюк, проблема в том, что есть обновление страницы по таймеру:
window.location.reload();

и есть AJAX-события, в т.ч. обновление кнопки по таймеру
а когда эти 2 события происходят одновременно, то вылетает ошибка, что ф-я с AJAX (GET) не вернула данные
и также если во время AJAX куда-то кликнуть, т.е. прервать(?), то тоже ошибка вылазит, правда она тут же исчезает со сменой страницы
т.е. надо аяксу отменить работу во время таких прерываний или как?

upd: вот на англ.эту проблему обсуждают

Nexus 10.10.2017 13:10

Сохраните ссылку на xhr запроса в глобальной области видимости, в функции, которая перезагружает страницу обратитесь к ссылке на xhr и вызовете его метод "abort".
Или не перезагружайте страницу пока запрос не завершится.

greenwar 10.10.2017 13:16

типа так?
http://jsfiddle.net/pmorch/SyUun/

Nexus 10.10.2017 13:24

greenwar, не, не так.
var xhr=false;
setTimeout(function(){
if(xhr) xhr.abort();
location.reload();
},10000);

setInterval(function(){
xhr=$.post('/');
},1000);

greenwar 10.10.2017 13:42

ok, спасибо


Часовой пояс GMT +3, время: 14:43.