Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 28.08.2011, 12:27
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от melky
HTML5 Web Workers
Лучше более общий пример: функция postMessage.

devote,
первый пример у вас какой-то бредовый. Почему то, что в setTimeout должно появиться первым? Что вы вообще под асинхронностью понимаете?
Ответить с цитированием
  #12 (permalink)  
Старый 28.08.2011, 14:41
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Kolyaj
Что вы вообще под асинхронностью понимаете?
В любом другом языке программирования, таймер использует отдельную процессорную нить... Тоесть независимый процесс... В отличии от JavaScript... Но в других язык использование таймеров является плохим тоном, поэтому лучше использовать отдельные нити для асинхронности Threads... JavaScript к сожалению не обладает ни первой ни второй возможностью (ну пока по крайней мере), хотя оно и не столь сильно нужно.
Ответить с цитированием
  #13 (permalink)  
Старый 28.08.2011, 14:45
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Причём здесь реализация чего бы то ни было в других языках, и причём здесь что-то, что является дурным тоном в других языках? Как это влияет на JavaScript? И как это всё связано с асинхронностью в JavaScript?
Ответить с цитированием
  #14 (permalink)  
Старый 28.08.2011, 14:47
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Никак, это был ответ на вопрос что я понимаю под асинхроностью
Ответить с цитированием
  #15 (permalink)  
Старый 28.08.2011, 14:48
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Я не увидел в вашем сообщении чего-то похожего на "асинхронность -- это ..."
Ответить с цитированием
  #16 (permalink)  
Старый 28.08.2011, 14:55
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Ну это ваши проблемы, я мыслю на более низком уровне. Тоесть на том на котором все обрабатывает интерпретатор этого JavaScript. Асинхронность это лишь реализация отдельного независимого процесса, который может выполнять свои собственные задачи не влияя при этом на другие процессы, затем при передаче/обмене данных процессы синхронизируются и обмениваются данными. Что вы понимаете под этим словом, известно только вам. Асинхронность это не выполнение AJAX запросов, это просто процесс работает асинхронно, в отдельном процессе/нити.
Ответить с цитированием
  #17 (permalink)  
Старый 30.08.2011, 11:26
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

Подозреваю фраза
Цитата:
опыт создания асинхронных веб-приложений
предполагает лишь приложения с асинхронной подгрузкой данных ajax'ом, не более. На случай если кто-то делает отправку xmlhttprequest блокирующей (говорят такие находятся).
Хотя, может еще воркерсы где они есть или костыльная замена через postmessage.

Последний раз редактировалось da_ff, 30.08.2011 в 11:28.
Ответить с цитированием
  #18 (permalink)  
Старый 30.08.2011, 15:07
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от da_ff
предполагает лишь приложения с асинхронной подгрузкой данных ajax'ом,
Верно говоришь, асинхронность это не аякс (как это многие ошибочно предполагают прочитав книжки про JavaScript). Тем людям кто изучает только JavaScript стоит почитать и другие материалы связанные с работой многозадачной системы.
Ответить с цитированием
  #19 (permalink)  
Старый 04.09.2011, 12:06
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Код под NodeJS можно считать асинхронным веб-приложением. Не одним клиентом едины.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #20 (permalink)  
Старый 04.09.2011, 13:26
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

devote,
Цитата:
Асинхронность это лишь реализация отдельного независимого процесса, который может выполнять свои собственные задачи не влияя при этом на другие процессы, затем при передаче/обмене данных процессы синхронизируются и обмениваются данными.
Вы не правы. То, что вы описываете не относится к асинхронности, точнее относится лишь опосредованно. Фактически можно асинхронность рассматривать, как описываемое вами, но это будет верно лишь в части случаев. Точное название по вашему описанию будет многопоточностью (организацией независимых потоков, не влияющих друг на друга, выполняющиеся одновременно, с возможностью ожидания завершения и обменом сообщениями), но асинхронность в программировании представлена в большинстве случаем однопоточными реализациями: twisted python, javascript.

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

В JavaScript асинхронность представлена в первую очередь таймерами (setTimeout/setInterval), которые не являются "независимыми процессами", а просто отложенными событиями с обработчиком, ну и конечно реализацию работы во всем "внешним" из JavaScript. В случае браузера это BOM, DOM (обработка событий браузера и HTML) и реализацией объекта XMLHttpRequest, а также многих других. В том же Node.js работа со всеми отдельными модулями (БД, программы, чтение файлов) происходит асинхронно.

Но асинхронный код может быть написан не только с использованием обмена данных с "внешними" объектами. По сути любой код с обработчиками событий и генерацией событий может быть назван асинхронным, даже если весь код выполняется в одном потоке, как это происходит в JavaScript. Т.е. даже при самостоятельной организации событий и обработчиком код будет асинхронным, поскольку в нем работает правило "установка обработчика - получение сигнала о событии - выполнение обработчика".

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

Последний раз редактировалось Андрей Параничев, 04.09.2011 в 13:38.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Книга] 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