Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.11.2012, 16:01
Новичок на форуме
Отправить личное сообщение для gyper Посмотреть профиль Найти все сообщения от gyper
 
Регистрация: 16.11.2012
Сообщений: 5

Получить результат выполнения скрипта на сервере в переменную ява
Привет, помогите пожалуйста кто-нибудь разобраться с такой проблемой.

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>
Ответить с цитированием
  #2 (permalink)  
Старый 16.11.2012, 19:01
Аватар для SkyLight
Злюка-бобер
Отправить личное сообщение для SkyLight Посмотреть профиль Найти все сообщения от SkyLight
 
Регистрация: 21.03.2010
Сообщений: 438

1. Вы это уже делаете (почти): document.getElementById(resultId).innerHTML = httpRequest.responseText; - только тут вместо записи в иннерхтмл пишите в переменную
2. Если вы хотите остановить ВСЕ скрипты на странице, пока идет запрос, то это плохая идея
__________________
In WEB We Trust
У всех есть своя темная сторона...
Ответить с цитированием
  #3 (permalink)  
Старый 17.11.2012, 02:33
Новичок на форуме
Отправить личное сообщение для gyper Посмотреть профиль Найти все сообщения от gyper
 
Регистрация: 16.11.2012
Сообщений: 5

Сообщение от SkyLight Посмотреть сообщение
1. Вы это уже делаете (почти):
2. Если вы хотите остановить ВСЕ скрипты на странице, пока идет запрос, то это плохая идея
А как тогда мне быть ?

Смысл такой на страничке грузится таблица из хмл файла на сервере, пользователь меняет ячейку и нажимает кнопку изменить, запускается скрипт на сервере который правит хмл файл, в свою очередь ява у клиента чистит старую таблицу и грузит новую, но при таком раскладе грузится старый хмл файл т.к. загрузка происходит раньше чем, серверный скрипт меняет файл

Последний раз редактировалось gyper, 17.11.2012 в 02:41.
Ответить с цитированием
  #4 (permalink)  
Старый 17.11.2012, 21:55
Новичок на форуме
Отправить личное сообщение для gyper Посмотреть профиль Найти все сообщения от gyper
 
Регистрация: 16.11.2012
Сообщений: 5

???
Ответить с цитированием
  #5 (permalink)  
Старый 19.11.2012, 11:10
Новичок на форуме
Отправить личное сообщение для gyper Посмотреть профиль Найти все сообщения от gyper
 
Регистрация: 16.11.2012
Сообщений: 5

Никто не знает что ли ?
Ответить с цитированием
  #6 (permalink)  
Старый 19.11.2012, 11:36
Новичок на форуме
Отправить личное сообщение для gyper Посмотреть профиль Найти все сообщения от gyper
 
Регистрация: 16.11.2012
Сообщений: 5

всем спасибо , оказалось достаточно в функции open в параметре async поставить false
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить код js-скрипта, находящегося в файле на сервере RomanA Общие вопросы Javascript 4 04.04.2012 09:53
Достать результат выполнения ajax-запроса из функции EvgeniyRRU AJAX и COMET 6 04.11.2011 19:32
Получить содержание другой страницы в переменную Shocker Общие вопросы Javascript 1 08.02.2011 15:51
Google Chrome перерисовка страницы во время выполнения скрипта Dekart Javascript под браузер 0 08.06.2010 08:35
сохранение ява скрипта Sasha777 Общие вопросы Javascript 1 19.07.2009 17:35