С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
 Аватар для _Vladimir_
57 / 55 / 10
Регистрация: 27.07.2010
Сообщений: 279

Не читается значение при асинхронном запросе

02.12.2016, 14:00. Показов 763. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, использую стандартный скрипт для получения данных по "url" (читаю из PHP скрипта):
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
// Возвращаем значение "responseText" переданного скрипта
        function readFromScript(url) {
            var amount = 0;
            var xmlhttp = getXmlHttp();
            xmlhttp.open('GET', url, false);
            xmlhttp.onreadystatechange = function () {
                if (xmlhttp.readyState == 4)
                    if (xmlhttp.status == 200)
                        amount = xmlhttp.responseText;
            };
            xmlhttp.send(null);
            return amount;
        }
Но значение "amount" не инициализируется значением из "xmlhttp.responseText", если использую асинхронное соединение.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.12.2016, 14:00
Ответы с готовыми решениями:

Как передать значение из функции при асинхронном выполнении
Добрый день, javascript практически не знаю. Помогите, пожалуйста, выполнить следующую задачу: Здесь с помощью серверного расширения...

Не читается переменная в запросе
Есть код <html> <head> <title>Удалить ответ</title> </head> <body> <form action="chePoi.php" method="POST"><?php ...

Глобальная переменная не меняет значение в Асинхронном методе
Здравствуйте, возникла следующая проблема: У меня есть асинхронный метод где я считываю данные из БД, есть событие и его обработчик...

8
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
02.12.2016, 14:02
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
// Возвращаем значение "responseText" переданного скрипта
        function readFromScript(url) {
            var amount = 0;
            var xmlhttp = getXmlHttp();
            xmlhttp.open('GET', url, false);
            xmlhttp.onreadystatechange = function () {
                if (xmlhttp.readyState == 4)
                    if (xmlhttp.status == 200)
                        amount = xmlhttp.responseText;
                        return amount;
            };
            xmlhttp.send(null);
        }
0
 Аватар для _Vladimir_
57 / 55 / 10
Регистрация: 27.07.2010
Сообщений: 279
02.12.2016, 15:06  [ТС]
Balanaar, т.е. строка "xmlhttp.send(null);" вызывает "xmlhttp.onreadystatechange = function ()"? Переписал код, но в итоге результат работы метода вернул "undefined".

JavaScript
1
2
3
4
5
6
7
8
9
10
11
// Возвращаем значение "responseText" переданного скрипта
        function readFromScript(url) {
            var xmlhttp = getXmlHttp();
            xmlhttp.open('GET', url, true);
            xmlhttp.onreadystatechange = function () {
                if (xmlhttp.readyState == 4)
                    if (xmlhttp.status == 200)
                        return xmlhttp.responseText;
            };
            xmlhttp.send(null);
        }
Вот так вызываю:
JavaScript
1
document.write(readFromScript('/api/vladimir/lib/test.php'));
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
02.12.2016, 15:15
_Vladimir_, return в строке 10 -- это кому именно return?
0
 Аватар для _Vladimir_
57 / 55 / 10
Регистрация: 27.07.2010
Сообщений: 279
02.12.2016, 15:15  [ТС]
kalabuni, тому кто запрашивает функцию.
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
02.12.2016, 15:26
JavaScript
1
2
3
4
5
6
7
8
9
10
11
// Возвращаем значение "responseText" переданного скрипта
        function readFromScript(url) {
            var xmlhttp = getXmlHttp();
            xmlhttp.open('GET', url, true);
            xmlhttp.onreadystatechange = function () {
                if (xmlhttp.readyState == 4)
                    if (xmlhttp.status == 200)
                        document.write(xmlhttp.responseText);
            };
            xmlhttp.send(null);
        }
Так точно сработает. Действительно, return в данном случае был неуместен.

Добавлено через 29 секунд
Вызов функции без document.write
1
 Аватар для _Vladimir_
57 / 55 / 10
Регистрация: 27.07.2010
Сообщений: 279
02.12.2016, 16:18  [ТС]
Balanaar, круто, данные получаю. Но возник вопрос, страница постоянно грузится, так должно быть или можно исправить.
Миниатюры
Не читается значение при асинхронном запросе  
0
 Аватар для _Vladimir_
57 / 55 / 10
Регистрация: 27.07.2010
Сообщений: 279
02.12.2016, 16:23  [ТС]
Запускаю сразу в блоке <script>.
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
02.12.2016, 23:48
Тут надо смотреть во вкладку network в инструментах разработчика, что там у вас грузится постоянно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.12.2016, 23:48
Помогаю со студенческими работами здесь

Передается другое значение ID при запросе UPDATE
Привет! Почему при запросе на изменение поля mysql у меня, изменяется поле другого пользователя!?

Hosting NT Service: как при запросе из клиента получать значение?
WCF Service хостится на службе Windows. В WCF выполняется метод public string Message(string volume) { return...

Открытие формы при асинхронном вызове метода
Добрый день! Проблема вот в чем: при вызове метода OnReceive таким способом, ...

Обязательно ли получение ответа при асинхронном сокете?
Делаю клиент - сервер по этому уроку Все работает, но если запустить отправку данных в цикле вот так например: while (true) { ...

Не выводит текст, при асинхронном методе в компонент Form
Добрый день! Пишу программу, которая(в итоге) должна мониторить с помощью Ping(icmp) хост по IP адресу. В программе будут порядка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru