powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как дождаться выполнения запроса ajax?
4 сообщений из 4, страница 1 из 1
Как дождаться выполнения запроса ajax?
    #34289653
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javascript отправляет на сервер запрос xmlHttpRequest, который должен вставить новую запись
в таблицу базы данных и вернуть первичный ключ новой записи.
Это происходит нормально.
Затем я отправляю запрос на чтение обновлённой таблицы,
в частности, вернётся и новая запись.
Это тоже происходит.
Затем я хочу эту новую запись в броузере выделить цветом.
Я её ищу и не нахожу.
Понятно почему: в момент поиска ответ от сервера с новыми записями ещё не пришёл.
Вопрос: как дождаться ответа и только потом начать искать.

мой текст:
Код: plaintext
1.
2.
3.
NaklGridSender(); // пришлите новое состояние таблицы из БД
num=NaklGrid.findRowNumByFieldValue("Nakl_ID",id); // найти номер новой записи среди пришедших
MarkRow("Nakl",num,null); // пометить цветом
...
Рейтинг: 0 / 0
Как дождаться выполнения запроса ajax?
    #34290014
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 использовать синхронный запрос
2 "дождаться ответа и только потом начать искать".
Код: plaintext
1.
2.
3.
4.
req.onreadystatechange=function(){
if(req.readyState== 4 ){
ищем();
}
}
...
Рейтинг: 0 / 0
Как дождаться выполнения запроса ajax?
    #34290414
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Синхронный запрос не работает (не знаю почему):
Код: plaintext
req.open("GET", url, false);
2)
Код: plaintext
1.
2.
3.
req.onreadystatechange=function(){
if(req.readyState== 4 ){
ищем();
}
убедившись, что не 4, программа не вернётся сюда.

Немного походив, я понял, что мне придётся получать первичный ключ новой записи и обновлённую выборку в одном и том же обращении к серверу.
Это означает невозможность повторного использования уже написанного
кода извлечения выборки, что огорчительно.
Или его придётся капитально переработать.
Как жить дальше - не знаю.
Вообще то конечная цель - что то вроде design pattern для взаимодействующих
элементов формы - таблицы master-detail, combobox-ы, флажки, et cetera.
Наверняка я изобретаю велосипед. Но при моём хилом опыте в web иначе не научиться.
О велосипеде - может подскажете ссылки на нечто подобное?
...
Рейтинг: 0 / 0
Как дождаться выполнения запроса ajax?
    #34291428
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muk071) Синхронный запрос не работает (не знаю почему):
Код: plaintext
req.open("GET", url, false);

Код: plaintext
1.
2.
3.
4.
var req=XMLHttpRequest? new XMLHttpRequest(): new ActiveX.....;
req.open("GET", url, false);
req.send(null);
var resp=req.responseText;// а тут null?
muk07
2)
Код: plaintext
1.
2.
3.
4.
5.
var req=XMLHttpRequest? new XMLHttpRequest(): new ActiveX.....;
req.onreadystatechange=reqHandler;
function reqHandler(){
if(req.readyState== 4 ){
ищем();
}
убедившись, что не 4, программа не вернётся сюда.

(можно попробовать так)
функция вызывается при изменении readyState, 4 значит пришёл ответ
Не получив ответа, конечно не вернётся.
Запрос-то туда идёт?
muk07
Немного походив, я понял, что мне придётся получать первичный ключ новой записи и обновлённую выборку в одном и том же обращении к серверу.

можно и так , но раз всё отлажено и круто, лучше создать новый запрос
muk07
Вообще то конечная цель - что то вроде

CMS
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как дождаться выполнения запроса ajax?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]