Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2015, 09:48   #1
ts-alan
Форумчанин
 
Регистрация: 07.07.2010
Сообщений: 825
Сообщение Однопотоковый javascript

такой вопрос
В javascripte обращаешься ajax к контроллу,javascript однопоточный,будет ли он ждать возрата ответа ,или пойдет дальше выполнять код?
ts-alan вне форума Ответить с цитированием
Старый 09.06.2015, 10:22   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Смотря как ты его вызвал.
По-моему в Аяксе есть и синхронный и асинхронный методы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.06.2015, 10:22   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так асинхронность возможна и без многопоточности.

Насколько я знаю при например примерно таком коде:
Код:
<button onclick="func()"/>
...
function func() {
    ajax();
    some_other_code();
}
callback о завершении ajax запроса вызовется не ранее, чем завершится func().


У XMLHttpRequest есть опция для синхронного режима, чтоб ждать и не идти дальше, но она вроде уже убрана в некоторых браузерах, то есть запрос всегда будет асинхронным (ибо иначе зависает вся страница, что не кошерно).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 09.06.2015 в 10:32.
Alex11223 вне форума Ответить с цитированием
Старый 09.06.2015, 10:38   #4
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Пойдет дальше выполнять код, результат аякса выполнится в порядке асинхронной очереди.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 09.06.2015, 10:57   #5
ts-alan
Форумчанин
 
Регистрация: 07.07.2010
Сообщений: 825
Радость

Цитата:
У XMLHttpRequest есть опция для синхронного режима, чтоб ждать и не идти дальше, но она вроде уже убрана в некоторых браузерах, то есть запрос всегда будет асинхронным (ибо иначе зависает вся страница, что не кошерно).
ТОбишь остановить поток javascripta нельзя?
ts-alan вне форума Ответить с цитированием
Старый 09.06.2015, 12:05   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

В современных браузерах наверное нет.
А зачем если не секрет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.06.2015, 12:32   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Да как это нельзя, конечно можно:
Код:
<script>
while (1) {
}
</script>
после этого надеюсь понятно почему не стоит использовать синхронный ajax даже если б было можно.

В Firefox оно вообще весь браузер повесит, в Хроме только эту вкладку.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 09.06.2015 в 12:34.
Alex11223 вне форума Ответить с цитированием
Старый 09.06.2015, 12:42   #8
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от ts-alan Посмотреть сообщение
ТОбишь остановить поток javascripta нельзя?
Можно ретурнуть замыкание, можно принудительно часть кода выбросить в асинхронную очередь и отменить ожидание если надо.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 09.06.2015, 17:39   #9
ts-alan
Форумчанин
 
Регистрация: 07.07.2010
Сообщений: 825
Сообщение

Цитата:
Пойдет дальше выполнять код, результат аякса выполнится в порядке асинхронной очереди.
как сделать чтобы аякс делал код синхронно.Ну возсьмем методы jquery
ts-alan вне форума Ответить с цитированием
Старый 09.06.2015, 18:10   #10
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Поставить флаг в сеттингсах sync: true.
Однако если тебе нужен синхронный аякс, значит твой код — говно.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JavaScript!!! studprog Помощь студентам 0 04.12.2012 19:48
JavaScript ll0nl1ne Помощь студентам 0 06.04.2012 16:25
Javascript - классы, они есть или их нету в Javascript? Kasper1 JavaScript, Ajax 3 05.03.2011 09:42
% и ^ в javascript HTL JavaScript, Ajax 4 21.01.2010 20:46