 |
Цитата: |
 |
|
|
|
|
|
|
|
|
|
|
1) что не знаю как результат работы скрипта загнать не в блок на странице а в переменную явы.
|
|
 |
|
 |
|
почему бы вместо этого
document.getElementById(resultId).innerHTML = httpRequest.responseText;
не написать что то вроде этого
serverResponse = httpRequest.responseText;
разумеется при условии что где то в глобальной области видимости будет var serverResponse;
а по поводу этого
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
|
|
2) что скрипт на сервере работает примерно 3 секунды. Но ява сценарий на странице не ждет пока отработает скрипт на сервере, а после вызова его через аякс, идет дальше.
Как сделать так чтобы ява сценарий ждал окончания работы скрипта на сервере ? т.к. его дальнейшая работа должна зависеть от того, что вернул скрипт ОК или ERROR
|
|
 |
|
 |
|
фишка аякса именно в асинхронности, вообще то существуют способы сделать запрос синхронным, но тогда браузер будет подвешен как раз на эти 3 секунды, которые в этом случае будут ужасно резать глаз, для корректной обработки асинхронного запроса вам просто нужно на время выполнения этого запроса заблокировать все элементы которые могут влиять на запуск запроса, например в вашем случае первой же строкой в методе sendSearchRequest() дописать такой код
document.getElementById("searchQuery").disabled = "disabled";
ну и соответственно в месте обработки удачного ответа от сервера if (httpRequest.readyState == 4) дописать
document.getElementById("searchQuery").disabled = "";