X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Получить ответ от сервера
nickgu
nickgu
Topic Starter сообщение 29.3.2012, 23:26; Ответить: nickgu
Сообщение #1


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

[JS] function LoadIPPHP()
{

var xhttp=new XMLHttpRequest();
xhttp.onreadystatechange=function(){
if (xhttp.readyState==4 && xhttp.status==200) {
answer = xhttp.responseText;
}
}
xhttp.open('GET',l.php',true);
xhttp.send();

}

function h() {
alert(answer);
}

LoadIPPHP();
h();[/JS]

Есть такой скрипт. Но он не работает. Я так понимаю, что сначала он выполняет h() и только потом получает ответ от сервера.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Galen
Galen
сообщение 30.3.2012, 1:15; Ответить: Galen
Сообщение #2


Что вам мешает написать так?[JS]if (xhttp.readyState==4 && xhttp.status==200) {
answer = xhttp.responseText;
alert(answer);
[/JS]В приведённом вами коде, answer - локальная переменная, функция h() её никак не сможет отобразить.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
nickgu
nickgu
Topic Starter сообщение 30.3.2012, 1:26; Ответить: nickgu
Сообщение #3


Дело в том, что алерт я написал для упрощения в примере. На самом деле мне в новой функции нужно проверить, что прислали в ответ и выполнить условие. Причем именно в отдельной функции, т.к. по условию запрос на сервер идет в одном месте, а проверка условия позже.

И я думал, что переменная локальна в функции, если она задана var answer = 'sss', если без var, то доступна везде. Правильно делать return answer?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Galen
Galen
сообщение 30.3.2012, 1:48; Ответить: Galen
Сообщение #4


Вот это xhttp.onreadystatechange=function(){} и есть проверка ответа сервера позже. Сюда надо включать проверку условий (сейчас у вас только проверка самого факта ответа сервера). Можно, конечно, написать и так:
[JS]if (xhttp.readyState==4 && xhttp.status==200) {
answer = xhttp.responseText;
someFunction(answer);[/JS]
где someFunction - новая функция для проверки.

Насчёт локальной переменной может я и не прав, но переменная впервые объявленная внутри функции - локальная.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Hyper.hosting - сервера под любые задачи [разрешены dmca, гэмблинг, адалт и пр.]
Лучшие сервера по доступной цене
30 Hyper_Hosting 8598 22.3.2024, 15:34
автор: Hyper_Hosting
Открытая тема (нет новых ответов) HideHost.net - Виртуальные и выделенные сервера под любые Ваши проекты с индивидуальным подходом.
Работаем уже более 12 лет
6 HIDEHOST 2311 21.3.2024, 13:33
автор: Tihohodka
Открытая тема (нет новых ответов) Где получить виртуальную карту бесплатно?
22 Mixatraider 5428 2.3.2024, 0:08
автор: Alekser
Открытая тема (нет новых ответов) [РЕКОМЕНДУЮ] >>>Тестирование Вашего сайта, сервера на устойчивость и уязвимость!
7 barbaddos 9398 3.7.2023, 20:18
автор: barbaddos
Горячая тема (нет новых ответов) Ускорение вашего сайта и сервера. Системный администратор Linux
44 EvaSystems 41683 6.2.2023, 13:07
автор: EvaSystems


 



RSS Текстовая версия Сейчас: 29.3.2024, 9:45
Дизайн