Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.01.2012, 12:38
Аспирант
Отправить личное сообщение для BorodinKO Посмотреть профиль Найти все сообщения от BorodinKO
 
Регистрация: 31.03.2011
Сообщений: 47

Паралельное выполнение 2х функций
Есть функция которая вызывается 25раз всекунду, дабы создать анимацию одного элемента на сраничке, и есть еще одна функция которая грузит динамичную информацию 1раз в 5секуд. От этой информации немного зависит анимация. Так вот: сама анимация идет гладко но каждую пятую секунду она предтормажыввет, как раз тогда когда идет загрузка информации. Вопррс как сделать так чтобы анимация не тормазила, функции работали паралельно.
Ответить с цитированием
  #2 (permalink)  
Старый 24.01.2012, 12:50
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от BorodinKO
и есть еще одна функция которая грузит динамичную информацию 1раз в 5секуд.
Если эта функция у вас вызывается синхронно, то замените на асинхронный вариант
Сообщение от BorodinKO
Вопррс как сделать так чтобы анимация не тормазила, функции работали паралельно.
JS-однопоточный язык, и в нем нельзя выполнять параллельно две функции
Оптимизируйте обработчик запроса, чтобы он выполнялся максимально быстро.
Также можно схитрить, и вызвать основное тело обработчика запроса, сразу после кадра анимации, но тут возможны свои трудности, и не факт, что удастся добиться приемлемого результата
Ответить с цитированием
  #3 (permalink)  
Старый 24.01.2012, 13:12
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

по теме : либо у вас съедаются кадры при разборе json, либо функции замораживают интерфейс по причине своего продолжительного выполнения. либо смотрите логику. либо замеряйте время выполнения

Сообщение от Gvozd Посмотреть сообщение
JS-однопоточный язык, и в нем нельзя выполнять параллельно две функции
разве web worker не реализует многопоточность ? в одном месте пишут, что да, в другом - говорят, что он работает как setTimeout.

на сайте whatwg написано следующее:
Цитата:
This specification defines an API for running scripts in the background independently of any user interface scripts.
в "фоне", как это понимать?
Ответить с цитированием
  #4 (permalink)  
Старый 24.01.2012, 13:41
Аватар для Magneto
Люмус, Емаксос Developer!
Отправить личное сообщение для Magneto Посмотреть профиль Найти все сообщения от Magneto
 
Регистрация: 06.05.2010
Сообщений: 677

Сообщение от melky
разве web worker не реализует многопоточность ? в одном месте пишут, что да, в другом - говорят, что он работает как setTimeout.
Сама концепция Web Workers предполагает что скрипты запущенные в воркерах должны исполняться независимо, отдельно от основного скрипта. Почему я зделал такие выводы?
1. Воркеры запускаются с отдельного javascript файла.
2. Воркеры не имеют доступ к переменным, функциям, обьектам основного скрипта - они (воркеры) как бы сами в себе.
3. Общение между основным скриптом и воркером происходит через специальное асинхронное API спецефичное для независимых потоков, систем.

Предполагается что для организации работы воркеров браузеры будут использовать встроенные средства операционной системы, так называемые "нити".

При работе с воркерами нужно учитывать что они не имеют доступа к DOM (и возможно BOM, нужно проверить).
Ответить с цитированием
  #5 (permalink)  
Старый 24.01.2012, 14:15
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от melky
разве web worker не реализует многопоточность ? в одном месте пишут, что да, в другом - говорят, что он работает как setTimeout.
В любом случае,результаты работы отдаются в поток языка. Вычисления будут идти параллельно,но вот результаты будут обрабатываться асинхронно в общем потоке. Так что не факт,что совместно с анимацией результат будет не таким же.Тем более функция у него одна и если там что то на манер с=а+б то результат будет ещё более удручающим,поскольку с web worker будет больше процессов задействовано. Тем более с анимацией будет эффект вложенных таймеров-срабатывание их не предсказуемо будет.
Сообщение от Magneto
Сама концепция Web Workers предполагает что скрипты запущенные в воркерах должны исполняться независимо, отдельно от основного скрипта. Почему я зделал такие выводы?
Не только ты

Последний раз редактировалось dmitriymar, 24.01.2012 в 14:18.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пошаговое выполнение кода KamalovRadik jQuery 2 28.10.2011 20:46
Вызов функций iframe из кода Firefox-расширения Jury Firefox/Mozilla 0 03.05.2011 13:09
Как получить список пользовательских функций объекта window? Маэстро Events/DOM/Window 13 03.07.2010 13:20
единоразовое выполнение Mashylia Общие вопросы Javascript 3 02.07.2010 14:47
Паралельное выполнение одной и той-же функции Сеня AJAX и COMET 3 24.01.2009 20:59