Функции слишком быстро? Так их пропустили? - PullRequest
0 голосов
/ 01 декабря 2009

С функцией div-popover вызывается и заполняется динамическими данными с использованием Ajax, PHP, MySQL и некоторых HTML / CSS. Все идет хорошо.

Когда я хочу удалить запись в списке, только что появившуюся над ней, она работает как надо. Когда я отправляю запрос на обновление моего списка, он также идет так, как я хочу. Но когда я вызываю delete(); update(); сразу после друг друга, моя первая функция как-то пропускается.

Когда я помещаю alert()'s в обе функции, я вижу, что обе функции выполняются, и сценарии проходят через мою функцию ajax, обработчик PHP ajax и возвращают результат пользователю, а с оповещениями все идет хорошо тоже!

Итак, мой вопрос, мои функции слишком быстрые? Или я что-то упускаю здесь, что вызывает не-удаление?

Решение Я переместил вызов update на строку после xmlHttp.resonseText в функции delete. Таким образом, второй вызов функции выполняется после выполнения первой функции. Спасибо всем!

Ответы [ 3 ]

5 голосов
/ 01 декабря 2009

Полагаю, вы не думали о A в AJAX. Это означает асинхронный. Это означает, что при выполнении вызова XmlHttpRequest он будет выполняться в фоновом режиме. То есть после того, как вы вызвали delete();, сценарий немедленно продолжится и выполнит update();.

3 голосов
/ 01 декабря 2009

javascript просто выполнит следующий оператор во время вызова ajax. Большинство способов использования ajax имеют функцию on complete, которую вы можете вызывать, так что код, который вы хотите выполнить после вызова ajax, вызывается только потом.

Я не работал с php, но, возможно, стоит разобраться с этим.

3 голосов
/ 01 декабря 2009

Похоже, что оба метода выполняются одновременно (асинхронно) с момента его AJAX.

Вы хотите, чтобы они выполнялись синхронно.

См. Эту страницу шаблонов для получения дополнительной информации ... Шаблоны Ajax

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