Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Форум .::NoWa.cc::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Веб - Программирование > AJAX

Уважаемые пользователи nowa.cc. Мы работаем для вас более 20 лет и сейчас вынуждены просить о финансовой помощи по оплате за сервер.
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: Z021474945171 Webmoney WME: E159284508897 Webmoney WMUSDT: T206853643180
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!

Ответ
 
Опции темы Опции просмотра Language
Старый 16.11.2012, 13:38   #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 = '';
На страничке исполняется ява код и внутри него с помощью ajax.js дергается скрипт на сервере.

Проблема заключается в том,
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>
gyper вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: Мебельный магазин: круглый маленький столик - Переходи на сайт!барн для сдачи в арендуева польна афиша 2026 - redkassa.ruМебельный магазин: стол компьютерный с ящиками и полками - Переходи на сайт!решетка вентиляционная однорядная рв1 150 * 250


Старый 08.12.2012, 15:51   #2
chk
Неактивный пользователь
 
Пол:Мужской
Регистрация: 08.12.2012
Сообщений: 20
Репутация: 0
По умолчанию Re: Получить результат выполнения скрипта на сервере в переменну. ява

Цитата:
Сообщение от gyper Посмотреть сообщение
1) что не знаю как результат работы скрипта загнать не в блок на странице а в переменную явы.

почему бы вместо этого
document.getElementById(resultId).innerHTML = httpRequest.responseText;
не написать что то вроде этого
serverResponse = httpRequest.responseText;
разумеется при условии что где то в глобальной области видимости будет var serverResponse;

а по поводу этого
Цитата:
Сообщение от gyper Посмотреть сообщение
2) что скрипт на сервере работает примерно 3 секунды. Но ява сценарий на странице не ждет пока отработает скрипт на сервере, а после вызова его через аякс, идет дальше.
Как сделать так чтобы ява сценарий ждал окончания работы скрипта на сервере ? т.к. его дальнейшая работа должна зависеть от того, что вернул скрипт ОК или ERROR

фишка аякса именно в асинхронности, вообще то существуют способы сделать запрос синхронным, но тогда браузер будет подвешен как раз на эти 3 секунды, которые в этом случае будут ужасно резать глаз, для корректной обработки асинхронного запроса вам просто нужно на время выполнения этого запроса заблокировать все элементы которые могут влиять на запуск запроса, например в вашем случае первой же строкой в методе sendSearchRequest() дописать такой код
document.getElementById("searchQuery").disabled = "disabled";
ну и соответственно в месте обработки удачного ответа от сервера if (httpRequest.readyState == 4) дописать
document.getElementById("searchQuery").disabled = "";
chk вне форума
 
Ответить с цитированием Вверх
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для выполнения 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

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 22:34. Часовой пояс GMT +3.


Copyright ©2004 - 2026 NoWa.cc

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.04221 секунды с 13 запросами