Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #51 (permalink)  
Старый 04.09.2011, 20:33
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

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

Если смотреть на любой проект на Node.js, который использует неблокирующий I\O для чтения сокета, то там в обработчиках запросов пользователей создается очень много подписчиков на разнообразные события и некоторые виды обработки (особенно нагруженные циклы) делаются в нулевых таймаутах, для того, чтобы передать управление серверу, не блокировать ход выполнения и выполнять итерацию в "свободное время", попутно принимая коннекты от клиентов. Если эта возможность не является асинхронностью (ведь код не синхронный и не выполняется параллельно, он просто разнесен по времени), то что является - я не знаю. Наверно только различный I/O. Но это вызывает сомнение, учитывая что и очередь, которая тут называлась, различные диспатчеры событий, event loop - это все аттрибуты асинхронных интерфейсов. Ну если это не так, пускай так и будет.
Ответить с цитированием
  #52 (permalink)  
Старый 04.09.2011, 20:37
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Еще раз задумайтесь над своими же словами
Сообщение от dmitriymar
Сообщение от Андрей Параничев
Асинхронности нет в стандарте ECMA-262, но она есть в реализациях в браузерах и v8 (Node.js) в виде setTimeout\setInterval,
таймауты есть в ECMA-262 и в тоже время он не асинхронен-задумайтесь над тем что пишите
есть и одновременно нет? так не бывает,в стандарте сказано что они не являются асинхронными- значит любые примеры и доводы с ними не являются асинхронными. Или вы на вопрос о килограмме говорите что он зелёный?

Последний раз редактировалось dmitriymar, 04.09.2011 в 20:39.
Ответить с цитированием
  #53 (permalink)  
Старый 04.09.2011, 20:38
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

dmitriymar,
Покажите мне таймауты в ECMA-262.
Ответить с цитированием
  #54 (permalink)  
Старый 04.09.2011, 20:47
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Андрей Параничев,
не занимайтесь троллигонгом- тролите только себя. везде отталкиваюсь от ваших слов.

Последний раз редактировалось dmitriymar, 04.09.2011 в 20:49.
Ответить с цитированием
  #55 (permalink)  
Старый 04.09.2011, 20:53
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

dmitriymar,
В стандарте ECMA-262 нет ни setTimeout/setInterval ни вообще чего-либо про обработчики событий. Но это все есть в реализациях в браузерах и в движке v8.

Причем тут троллинг? Просто читать внимательнее надо. В эту тему отвечать больше не буду, слишком уклонилась дискуссия от первоначальной.
Ответить с цитированием
  #56 (permalink)  
Старый 04.09.2011, 20:56
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от Андрей Параничев
В эту тему отвечать больше не буду, слишком уклонилась дискуссия от первоначальной.
Посчитаю согласием что пример изначальный был не корректным во всех смыслах
Ответить с цитированием
  #57 (permalink)  
Старый 04.09.2011, 21:02
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от dmitriymar
По моему вы смешной. пару часов назад вы доказывали что это асинхронность в вашем примере.С моей стороны вы слышали что пример не имеет ничего общего с тем ,что вы пытаетесь доказать. сейчас уже это асинхронность не языка-то что изначально вам и говорил ,вы с пеной у рта отстаивали своё вплоть до того что очередь выполняется не последовательно.
Интересно где вы вычитали в моих постах что я что-то доказывал? Я лишь спрашивал какой вы можете привести пример отсутствия асинхронности, мне нет смысла доказвать то что в JS есть асинхронность, я в первом же посту написал что ее нет, а то какой я написал пример этого не меняет, возможно я привел не удачный пример, но я не выплевывал слюни изорта доказывая обратное.
Ответить с цитированием
  #58 (permalink)  
Старый 04.09.2011, 21:12
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

dmitriymar,
Вы меня спутали с Kolyaj, это он с пеной из рта доказывал что в JS есть асинхронность. След. раз перечитайте тему перед тем как выдвигать подобные слова. Я лишь могу сказать что да возможно пример был неудачный. но увы другого примера я не знаю который бы показывал ОТСУТСТВИЕ асинхронности в JS.
Ответить с цитированием
  #59 (permalink)  
Старый 04.09.2011, 21:21
Аватар для Илья Кантор
Администратор
Отправить личное сообщение для Илья Кантор Посмотреть профиль Найти все сообщения от Илья Кантор
 
Регистрация: 25.05.2007
Сообщений: 1,221

setTimeout/setInterval были в оригинальной спецификации JavaScript от Sun, еще до появления Ecma. Это - то, что еще называют DOM-0. Вот эта спека (1997 год): http://download.oracle.com/docs/cd/E...-10/window.htm

Сейчас идет работа по стандартизации этих свойств в HTML 5: http://www.w3.org/TR/2009/WD-html5-2...no.html#timers

В зависимости от того, считаете ли вы эту оригинальную спецификацию стандартом или нет - метод и будет для вас стандартным или нестандартным.

Де-факто все реализации JS, браузерные и небраузерные, поддерживают этот метод.

P.S. Тему предлагаю разбить, вынести дискуссию в соответствующий раздел.

Последний раз редактировалось Илья Кантор, 04.09.2011 в 21:24.
Ответить с цитированием
  #60 (permalink)  
Старый 04.09.2011, 21:25
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Эта спецификация говорит только о том, что:
Цитата:
The setTimeout(handler, timeout[, arguments...]) method takes a reference to a TimeoutHandler object and a length of time in milliseconds. It must return a handle to the timeout created, and then asynchronously wait timeout milliseconds and then queue a task to invoke handleEvent() on the handler object.
Все равно не ясно, являются ли события и таймауты (которые тоже события) частями асинхронного I/O? По логике работы с libevent, например, являются. Хотя тут сложно говорить, потому что асинхронность в программировании вообще не является термином.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Книга] Stoyan Stefanov, Javascript Patterns Dmitry A. Soshnikov Учебные материалы 20 13.08.2013 11:37
Первый Moscow JavaScript Meetup korenyushkin Общие вопросы Javascript 0 26.07.2011 15:23
javascript вставки в vrml сцены. Передать событие из броузера Proletariy Javascript под браузер 0 10.05.2011 12:26
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34