Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #71 (permalink)  
Старый 25.12.2010, 19:59
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от dmitriymar
прочитай теперь весь топик этот с начала с учётом
да я уж два раза перечитал, но все равно точной причины спора понять не могу, порой такое ощущение, что вы с x-yuri доказываете друг другу одно и то же, но слишком уж не понимаете друг друга.

Может в этом проблема:
Сообщение от x-yuri
Насколько я понял, он утверждает, что события, возникшие во время обработки других событий "пропадают". Но он не смог объяснить, почему.
?
Если так, то события действительно никуда не пропадают, они происходят (здесь многопоточность) и их обработчики добавляются в очередь (а здесь уже один поток). Подробней здесь: http://javascript.ru/tutorial/events/timing .

Последний раз редактировалось Riim, 25.12.2010 в 20:03.
Ответить с цитированием
  #72 (permalink)  
Старый 25.12.2010, 20:03
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от Riim
если так, то события действительно никуда не пропадают, они происходят (здесь многопоточность) и их обработчики добавляются в очередь (а здесь уже один поток). Подробней здесь:
ну дак ты этим сказал тоже что я ему говорил,но при этом ещё говорил что будут события какие не выполнятся при опр условиях.вот тебе одно из них-первый пост в этом топике. и напрягал я его чтобы он написал для себя пример-когда события буду выполняться либо не в очереди либо "пропадать". и если бы он не перекручивал как хотел -то такой пример у него бы вышел-так я как я ему говорил таймер цикл и он клик -то увидел бы он эксперементируя с длинной цикла и временем в таймере .

у неё по сути дела 3 таймера. 2 из них регуляторы скорости. 3 й запуск этих вниз-верх по таймеру.+обработка события
так предскажи как он будет срабатывать на разных компах с разной производительностью?
скажи что имеет преимущество-движение верх,движение вниз,таймер,обработка события? в какой последовательности они построятся в очередь? и будут ли в очереди элементы до каких очередь может никогда не дойти?
то что анимейт не прервётся на он клике-пока он полностью не выполниться-это ясно-хотя судя по началу топика страницам так по 3 м многие считают что прервётся...

Последний раз редактировалось dmitriymar, 25.12.2010 в 20:20.
Ответить с цитированием
  #73 (permalink)  
Старый 25.12.2010, 20:09
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Riim
здесь многопоточность

Сообщение от Riim
в очередь (а здесь уже один поток)
аля [stack]
Ответить с цитированием
  #74 (permalink)  
Старый 25.12.2010, 20:33
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от dmitriymar
ты хочешь сказать что ты всегда будешь знать как отреагирует браузер на два одновременно возникших события?-об этом я тебе говорил-а тот говно код что ты здесь привёл(и я тебе об этом говорил не один раз)-имитирует одновременно одно событие.
dmitriymar, т. е. ты думаешь, что если одновременно отработает interval и произойдет onclick, то один из обработчиков может не попасть в очередь на выполнение?

Сообщение от monolithed
ну да, на самом низком уровне там опять же один поток (при одноядерном процессоре), поверх которого организуется "многопоточность", из которой в js опять делают один поток. Наизобретали блин .

Последний раз редактировалось Riim, 25.12.2010 в 20:36.
Ответить с цитированием
  #75 (permalink)  
Старый 25.12.2010, 20:38
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от Riim
dmitriymar, т. е. ты думаешь, что если одновременно отработает interval и произойдет onclick, то один из обработчиков может не попасть в очередь на выполнение?
нет, в этом случае не пропадёт а вот в этом-?
не забывай ещё о таймере запускающем 2 анимейта у каких есть ещё свои таймеры рег. скорость-хотя он может быть и по типу пустого цикла-что ещё хуже для этой ситуации. я говорю о случае
когда ещё работает анимейт +сработал таймер опять запускающий анимейт+онклик... попадёт в очередь ,не попадёт,попадёт но никогда не сработает-предскажешь? я не могу-могу сказать только одно что в этом случае какоето действие может быть никогда не выполнено(это зависит от параметра таймера ,длинны в машинных циклах-надеюсь термин этот объяснять не нужно?- действия выполняемого по таймеру и производительности компа)-и скорее всего это будет онклик

Последний раз редактировалось dmitriymar, 25.12.2010 в 21:25.
Ответить с цитированием
  #76 (permalink)  
Старый 25.12.2010, 20:45
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

и ещё по поводу твоего поста-ей нужно было выполнение сразу падения-а не отработка и потом по очереди падение.

Последний раз редактировалось dmitriymar, 25.12.2010 в 21:34.
Ответить с цитированием
  #77 (permalink)  
Старый 25.12.2010, 23:26
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

чтобы увидеть что событие он клик у неё никогда не сработает-достаточно посмотреть на сумму двух таймеров скорости в анимайтах и на таймер вызывающий парное исполнение анимейтов
function goes_up(){
$('#idl').animate({top:'-=180'},40000);//подъем
$('#id').animate({top:'+=180'},1000);//падение


};
setInterval(goes_up, 1000);//бесконечный подъем и падение
здесь видно что анимейты не закончаться а запуск их по новой уже начнётся.40000 милисикунд будет выполняться 1 анимейт+1000 второй.
а вот по новой запустится через 1000 милисекунд после запуска итого- 1000милисекунд-41000 милисекунд=-40000 милисекунд при каждом запуске. и вопрос очень большой становится ли в очередь он клик или не становится-и если становится то выполнится ли он вообще

Считаю эту тему закрытой.Не думаю что кто либо из моих опонентов-влепивших мне минус 300 с хвостом за этот топик найдёт что мне возразить
Ответить с цитированием
  #78 (permalink)  
Старый 25.12.2010, 23:29
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от dmitriymar
чтобы увидеть что событие он клик у неё никогда не сработает
Клик прекрасно сработает во время анимации.

Сообщение от dmitriymar
$('#idl').animate({top:'-=180'},40000);//подъем
$('#id').animate({top:'+=180'},1000);//падение
При данном коде подъём и падение будут происходить одновременно.
Ответить с цитированием
  #79 (permalink)  
Старый 26.12.2010, 00:06
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Kolyaj,
и не прекращаются попытки возразить-хоть и не в тему абсолютно...
смотри не участок кода а весь
$('#idl').animate({top:'-=180'},40000);//подъем
$('#id').animate({top:'+=180'},1000);//падение


};
setInterval(goes_up, 1000);
каким оброазом одновременно? скрипт однопотоковый-всё по очереди идёт и как эта очередь выстроится?как то что события с таймером не выстраиваются по времени(предидущий пост) как он клик впишется? или ты знаешь как комп будет вести себя при таких глюках в логике-тянущих на фатальную ошибку для браузера?
Сообщение от Kolyaj
Клик прекрасно сработает во время анимации.
не сработает-пока анимейт не закончится-а в задании что падение сразу после клика!!! или ты хочешь сказать что анимейт в средине обрубится не доработав до конца и пойдёт событие он клик-не смеши. я уже устал смеяться.какоето непредсказуемое пресечение будет но не так как ты его себе представляешь

Последний раз редактировалось dmitriymar, 26.12.2010 в 00:19.
Ответить с цитированием
  #80 (permalink)  
Старый 26.12.2010, 03:55
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

по-моему, все ждут, что я что-то скажу... (типа шутка)

думаю, я все же понял, что ты хотел сказать dmitriymar

дело в том, что в jQuery две анимации на одном элементе по умолчанию запускаются в очереди: т.е. вторая начинается только после того, как закончиться первая:
<!DOCTYPE HTML>
<html>
  <head>   
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
  </head>
  <body>

<div style="
    position: absolute;
    width: 100px;
    height: 100px;
    background: red;
"></div>

<script type="text/javascript">
    $('div').animate({'left': '500px'}).animate({'left': '0px'});
</script>

  </body>
</html>


потом, во время animate могут обрабатываться клики:
<!DOCTYPE HTML>
<html>
  <head>   
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
  </head>
  <body>

<div style="
    position: absolute;
    width: 100px;
    height: 100px;
    background: red;
"></div>

<script type="text/javascript">
    $('div').animate({'left': '500px'}, 5000).click(function(){ $(this).stop() });
</script>

  </body>
</html>


animate внутри (упрощенно) работает так:
$.fn.animate = function(){
    <добавить действие в очередь>
    setTimeount(function(){
        $(<elements>).<property> += ...;
    }, duration);
}


итого: у нее в первом сообщении 2 таймера - animate'овский (с очередью действий) и свой собственный. Каждый последующий вызов animate просто добавляет в очередь еще одно действие, сразу оно не запускается

кроме того, ты говорил про случай, когда скрипт не успевает обрабатывать события. В таких случаях ОС говорит, что приложение не отвечает, а браузер, предлагает остановить скрипт. Раз браузер умудряется предложить остановить скрипт, значит он с операционной системой этот вопрос как-то решает, значит он обрабатывает какие-то события. Только ты сам не знаешь, как именно ведет себя ОС и браузер в таких случаях, как они пытаются предотвратить такие проблемы. Ты сам об этом говоришь.

ты сказал, что я перекручиваю твои слова? Нет, я специально ничего такого не делал. Повторюсь: ты очень невнятно объясняешь. И не то чтобы я хочу тебя обидеть... просто констатирую факт, или я не прав? Так что, в крайнем случае - я неправильно тебя понял. А вот иронизировал... да, было дело...

p.s. скажи честно, ты умеешь признавать свои ошибки?

Последний раз редактировалось x-yuri, 26.12.2010 в 03:58.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с анимацией IE 8 MichaelMV jQuery 0 03.11.2010 18:21
Помогите оптимизировать скрипт смены изображений с анимацией Khmelevsky Элементы интерфейса 5 06.03.2010 19:02
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37
Drug&Drop + всплывание события = проблемы =(( _NoName_ Events/DOM/Window 4 05.03.2009 17:47
проблемы с Post Phoenix (X)HTML/CSS 11 31.10.2008 04:25