Как привязать до и после POPSTATE во время работы с AJAX? - PullRequest
0 голосов
/ 07 ноября 2011

При работе с медленным AJAX показывать пользователю «загрузка ...» было хорошо.Теперь у меня есть история, работающая с использованием 'history.pushState' и 'hostory.popState', но она не показывает мое загрузочное изображение при выполнении фактического ajax на нажатой кнопке !!!

$(window).bind("popstate", function() {
  $.get(location.href);
  //$.getScript(location.href);
});

как что-то сделатькак $(window).bind("before_popstate", function() {});

Кстати, я запускаю Rails в фоновом режиме ...

PSS

  $(document).ready(function(){
  $(window).bind("popstate", function() {
  $.get(location.href);
  });

$('.remote')
.bind("ajax:beforeSend", function(evt, xhr, settings){
      $('#mainframe').html("");
      $('#loading').toggle();
   })
.bind("ajax:success", function(evt, data, status, xhr){
  $('#loading').toggle();
})
.bind('ajax:complete', function(evt, xhr, status){
      history.pushState(null, document.title, path)
})
.bind("ajax:error", function(evt, xhr, status, error){
      $('#mainframe').html("error");
      $('#loading').toggle();

});

Ответы [ 2 ]

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

Еще одна вещь: вы уверены, что z-index для загрузки и расположение для него правильные?Я предполагаю, что вы хотите, чтобы LOADING наложил что угодно и, надеюсь, на фоне непрозрачности.

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

Как насчет:

$(window).bind("popstate", function() {
    your-showAjaxLoader-function()
    $.get(location.href);
    //$.getScript(location.href);
    your-removeAjaxLoader-function()
});

или что-то в этом роде. У меня самого есть ajaxLoader-GIF, вызываемый в качестве препроцессора для истории, и средство удаления ajaxLoader-GIF после вызова или во время вызова.

UPDATE: Я вижу, что вы переключаете «загрузку» на три привязки, НО НЕ в ПОЛНОМ. Я сам избегаю использования переключателя, если мне приходится вкладывать команды. НА ПУСКЕ вы можете использовать .show () и для всех остальных .hide ().

Теперь вернемся к реальной проблеме: «загрузка не отображается». Похоже, все в порядке кода. Вы уверены, что «image

...