16.09.2014, 18:49
|
Аспирант
|
|
Регистрация: 17.01.2014
Сообщений: 39
|
|
Прервать синхронный запрос.
Как выставить таймер XMLHTTPReques? синхронному.
Или как убить синхронный запрос по таймеру?
Возможно?
|
|
17.09.2014, 10:16
|
Профессор
|
|
Регистрация: 12.12.2012
Сообщений: 1,398
|
|
http://xmlhttprequest.ru/
Я так понимаю что прервать можно только асинхронный запрос.
Вообще если вам понадобился синхронный запрос - скорее всего вы что-то делаете не так.
|
|
17.09.2014, 15:49
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,589
|
|
livelover, вроде можно поставить таймаут, но не везде). Сам не пробовал, ибо см. выше.
Ага, см. свойство timeout: https://developer.mozilla.org/en-US/..._Compatibility
..upd хотя нет
Цитата:
|
Note: You may not use a timeout for synchronous requests with an owning window.
|
Так что выкидывай свои синхронные запросы на помойку.
__________________
29375, 35
Последний раз редактировалось Aetae, 17.09.2014 в 15:56.
|
|
17.09.2014, 15:50
|
Профессор
|
|
Регистрация: 12.12.2012
Сообщений: 1,398
|
|
Aetae,
А как? Если запрос синхронный то все таймауты отработают после запроса? Или имеется в виду таймаут самого запроса?
|
|
17.09.2014, 16:01
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,589
|
|
tsigel, имеется ввиду таймаут самого запроса. Но видать его реализировать поленились, потому это просто биндинг на обычный сеттаймаут и синхронными запросами не работает.(имхо, нафиг он тогда нужен - не понтно)
__________________
29375, 35
|
|
18.09.2014, 00:43
|
Аспирант
|
|
Регистрация: 02.09.2014
Сообщений: 77
|
|
Сообщение от Aetae
|
Но видать его реализировать поленились
|
Как можно реализовать прерывание синхронного кода в однопоточном языке? О чем ты вообще говоришь?
|
|
18.09.2014, 00:48
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,589
|
|
petya, на более низком уровне, вестимо.
__________________
29375, 35
|
|
18.09.2014, 01:02
|
Аспирант
|
|
Регистрация: 02.09.2014
Сообщений: 77
|
|
Сообщение от Aetae
|
petya, на более низком уровне, вестимо.
|
Ну, вот допустим, у нас есть блокирующая операция, которая заблокировала поток. Откуда ее можно прервать? Как это должно выглядеть, я не пойму? Ее заранее прерывать чтоли надо? Все отложенные асинхронные функции становяться в очередь. Пока блокирующая операция не освободит поток они не отработают. Если такое возможно будет сделать, ты фактически уже будешь запускать прерывание в другом потоке, это уже не однопоточная модель. Или я что-то не понимаю
|
|
18.09.2014, 01:12
|
Профессор
|
|
Регистрация: 12.12.2012
Сообщений: 1,398
|
|
petya, Aetae имел в виду что прирывание должно происходить нативно методом браузера (который уже отнють не однопоточный) методами самого реквеста, но как выяснилось что почти ни один браузер не доделал этот метод.
|
|
19.09.2014, 19:29
|
Аспирант
|
|
Регистрация: 17.01.2014
Сообщений: 39
|
|
Вообще вопрос возник из такой задачи:
по window.onbeforeunload надо плать запрос на хост, который принимает запросы но вообще на них не отвечает.
*Если запрос Асинхронный, то запрос тупо может неуйти, страница уже закрывается.
* Если запрос Синхонный, то броузер долго весит, ждёт запроса. А его нет и не будет.
Вот так вот...
*Если син
|
|
|
|