Как прервать AJAX-запрос в рельсах? - PullRequest
0 голосов
/ 07 августа 2011

У меня следующая ситуация:

Представление с вкладками отправляет запросы AJAX при нажатии на вкладки для изменения представления, каждый запрос занимает около 3-4 секунд с момента, когда пользователь нажимает на вкладку, до представленияобновляется (это нормально и в моем случае!)

Моя проблема:

Если пользователь нажал на tab2 во время загрузки tab1, пользователь ожидает увидеть содержимое tab2 и проигнорируетпервый щелчок по tab1.

Что происходит, сначала отображается содержимое tab1, а затем содержимое tab2.Я хочу предотвратить это поведение.

Моя инфраструктура содержит: Ruby 1.8.7 - Rails 2.3.5 - jQuery 1.5.2 (который используется для выполнения AJAX)

Я пыталсяиспользуйте такой код, но он не работает со мной

function doRequest(){
  if (lastPageAjaxRequest){
    lastPageAjaxRequest.abort();
    lastPageAjaxRequest = null;
  }

  lastPageAjaxRequest = $.ajax(..);
}

1 Ответ

2 голосов
/ 07 августа 2011

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

...