![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
Неактивный пользователь
Пол:
Регистрация: 25.02.2011
Сообщений: 1
Репутация: 0
|
Привет, помогите пожалуйста кто-нибудь разобраться с такой проблемой.
ajax.js Код:
function createHttpRequest() {
var httpRequest;
var browser = navigator.appName;
if (browser == "Microsoft Internet Explorer") {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
} else {
httpRequest = new XMLHttpRequest();
}
return httpRequest;
}
function sendRequest(file, _resultId, getRequestProc) {
resultId = _resultId;
document.getElementById(resultId).innerHTML = 'Подождите, идет загрузка...';
httpRequest.open('get', file);
httpRequest.onreadystatechange = getRequestProc;
httpRequest.send(null);
}
function getRequest() {
if (httpRequest.readyState == 4) {
document.getElementById(resultId).innerHTML = httpRequest.responseText;
}
}
var httpRequest = createHttpRequest();
var resultId = '';
Проблема заключается в том, 1) что не знаю как результат работы скрипта загнать не в блок на странице а в переменную явы. 2) что скрипт на сервере работает примерно 3 секунды. Но ява сценарий на странице не ждет пока отработает скрипт на сервере, а после вызова его через аякс, идет дальше. Как сделать так чтобы ява сценарий ждал окончания работы скрипта на сервере ? т.к. его дальнейшая работа должна зависеть от того, что вернул скрипт ОК или ERROR Помогите плз кто знает ... Код:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Привет, мир AJAX'a</title>
<script language="JavaScript" src="ajax.js" type="text/javascript"></script>
<script language="JavaScript" type="text/javascript">
function sendSearchRequest() {
sendRequest('search.php?q=' + document.getElementById('searchQuery').value, 'result', getRequest);
}
</script>
</head>
<body>
Введите текст для поиска:
<input id="searchQuery" type="button" size="30" maxlength="30" onClick="javascript: sendSearchRequest();">
<hr />
<p id="result">Здесь будет результат запроса</p>
</body>
</html>
|
|
|
|
| Реклама: | Мебельный магазин: круглый маленький столик - Переходи на сайт! | барн для сдачи в аренду | ева польна афиша 2026 - redkassa.ru | Мебельный магазин: стол компьютерный с ящиками и полками - Переходи на сайт! | решетка вентиляционная однорядная рв1 150 * 250 |
|
|
#2
|
|||||||||||||||||||||||
|
Неактивный пользователь
Пол:
Регистрация: 08.12.2012
Сообщений: 20
Репутация: 0
|
почему бы вместо этого document.getElementById(resultId).innerHTML = httpRequest.responseText; не написать что то вроде этого serverResponse = httpRequest.responseText; разумеется при условии что где то в глобальной области видимости будет var serverResponse; а по поводу этого фишка аякса именно в асинхронности, вообще то существуют способы сделать запрос синхронным, но тогда браузер будет подвешен как раз на эти 3 секунды, которые в этом случае будут ужасно резать глаз, для корректной обработки асинхронного запроса вам просто нужно на время выполнения этого запроса заблокировать все элементы которые могут влиять на запуск запроса, например в вашем случае первой же строкой в методе sendSearchRequest() дописать такой код document.getElementById("searchQuery").disabled = "disabled"; ну и соответственно в месте обработки удачного ответа от сервера if (httpRequest.readyState == 4) дописать document.getElementById("searchQuery").disabled = ""; |
|||||||||||||||||||||||
|
|
|
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Программа для выполнения Secure Erase на SSD | Bromiton | Архиваторы, системные и тест прог. | 4 | 13.04.2023 21:03 |
| Не могу получить список имен содержимого каталога на FTP сервере. | Andrew I | Borland C++ Builder | 0 | 18.09.2009 14:40 |
| Ajax post, результат как html+javascript код проблемы | genius70707 | AJAX | 2 | 23.07.2009 20:50 |
| Запрет выполнения по локалке | Gurami | Microsoft Windows | 7 | 23.11.2006 20:02 |
| Результат работы VIP 3.0 | Talion | Архив | 7 | 07.11.2006 17:21 |
|
|