JQuery AJAX проблема времени - PullRequest
0 голосов
/ 03 февраля 2010

В моем бэкэнде я использую jquery 1.4.1 и новейший пользовательский интерфейс 1.8rc1. Я определил пару кнопок, которые делают что-то ... одна из них - это создание страницы определенного типа с использованием функций сериализации, вызывающих файл php, а затем перезагрузка всей страницы. в местном масштабе это всегда работает как очарование! но как только я включаю его в свой веб-сервер провайдеров, он работает только в 5% случаев. Вот код:

    buttons: {
'Seite erstellen': function() {
$.post("webadmin/pages.create.serialize.php",$("#page-form").serialize());
$(this).dialog('close');
location.reload(true);
},
'Abbrechen': function() {
$(this).dialog('close');
}
},

Когда становится интересно, когда я помещаю оповещение непосредственно перед частью location.reload - это всегда будет работать. Таким образом, кажется, существует проблема синхронизации, что сериализация выполняется, но не может быть завершена до перезагрузки страницы. я знаю, что смысл использования сериализации не в том, чтобы перезагрузить страницу, а в том, чтобы создать навигацию и т. д., поэтому мне нужно перезагрузить. (думая об этом сейчас ... я мог бы по-настоящему сериализовать все ... во всяком случае) Есть ли простое решение для этого? Есть ли что-то вроде небольшого таймера, который я мог бы встроить, чтобы он дождался окончания сериализации? это нормальное поведение?

1 Ответ

1 голос
/ 03 февраля 2010

Вам необходимо воспользоваться обратным вызовом в методе $ .post ():

$.post(
       "webadmin/pages.create.serialize.php",
       $("#page-form").serialize(),
       function(data, textStatus, xhr) {  
           alert("I'm done loading now!");
       }
);

Не совсем уверен, что означает "this" внутри функции обратного вызова, поэтому я оставлю реализациюв качестве упражнения для читателя.: -)

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