Книжку держала. http://javascript.ru/tutorial/object/intro...Вот, сами убедитесь. если в чем не права- поправьте (обоснование- наилучшее подтверждение вашей компетентности).Я и не думала давать мастер класс, вы обознались. А пример мой работает, я убедилась(Ваш, кстати, нет). А почему бы и не сделать на JQuery, не вижу причин этого не делать.
|
vyazovetskova,
работает его пример-и алгоритм там более грамотно составлен,ну и на мастер класс очень похоже. |
Работает, но не так как надо(на клик не реагирует). Не думаю, что описание своего опыта стоит называть мастер классом.
|
vyazovetskova,
чей его или ваш на клик не реагирует. его реагирует. если ваш не работает то проблема у вас таже что и говорил я вам. он грамотно организовал свой алгоритм(хотя по мне там не хватает пары строк но это не суть важно). весь смысл алгоритма сводиться вот к этому и я не один раз вам это говорил и мне казалось что вы поняли это. сдвижка на одну точку-опрос переферии-сдвижка- опрос-сдвижка- опрос. и все алгорритмы выложенные здесь кроме этого не могли работать. причина одна что авторы их не способны думать-вызубрили школьный курс и блещут им. этим и отличаются разработчики от людей просто знающих язык. у вас же непрерывная сдвижка без опроса. по поводу параллельности процессов-ну смотрите -поставьте несколько плееров на страницу и они могут играть параллельно-если вы им это не запретите.ну а прерывания на опрос переферии (назову всётаки как это в ассемблере) ни в одном языке ещё не отменяли. и если какаято оболочка сама их вставляет за вас-это плюс оболочки |
Цитата:
<!DOCTYPE HTML> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script> </head> <body> <div id="snail" style=" position: absolute; top: 100px; width: 20px; height: 20px; background: red; "></div> <script type="text/javascript"> function go(){ $('#snail').animate({top: '-=100'}, {duration: 3000}); $('#snail').animate({top: '+=100'}, {duration: 500, complete: go}); } $('#snail').click(function(){ $('#snail').stop(true); $('#snail').animate({top: '100'}, {duration: 500, complete: go}); }); go(); </script> </body> </html> |
vyazovetskova,
возможно и ваш алгоритм изначальный бы работал-если бы по он клик вы не пытались бы вызвать другую функцию не прервав работающую а передавали бы управление другому блоку работающей функции-но повторюсь что это "возможно" а проверять это нет ни времени ни желания |
Мой алгоритм работает, я его проверяла.
А по факту сыр-бор уже не из-за чего. Задача решена. x-yuri, ведите свой блог, если вас мои формулировки не устраивают. Это уже снобизм, придираться к языку. Смущает математическая терминология? да, это бесусловно имеет огромный смысл в решении этой задачки)) вы так отлично правите мой текст, лучше бы сами писали- тогда у таких как я новичков и вопросов не возникало. Критиковать всегда лучше. |
vyazovetskova, если ты не в состоянии воспринимать критику, зачем говорить "если в чем не права- поправьте"? Снобизм? Ровно наоборот ;) Придираюсь к языку? Ну да, а как ты хотела? Чтобы тебя поняли, надо называть вещи своими именами. Я же к орфографии не придирался? Хотя с ней у тебя вроде нормально. Проблема в том, что там были ошибки по-серьезнее терминологии. А хвалить, да, я не умею. И не только окружающих :) Так что советую тебе перечитать мое сообщение и вынести оттуда для себя что-нибудь ползеное, а не становится в позу и верить в то, что ты там себе напридумывала ;)
|
Цитата:
|
а снобизм, вот он:
Цитата:
в общем, в результате долгой и нудной переписки, dmitriymar так и не смог объяснить, в чем наша ошибка. Насколько я понял, он утверждает, что события, возникшие во время обработки других событий "пропадают". Но он не смог объяснить, почему. Периодически можно было услышать "идёт эта информация из знания ассемблера с 93 года" или "мне всё равно-поскольку знаю что работает именно так как я говорю" вот код который опровергает его утверждение <!DOCTYPE HTML> <html> <body> <div id="div" style=" width: 100px; height: 100px; background: red; "></div> <script type="text/javascript"> function $(id){ return document.getElementById(id); } $('div').onclick = function(){ $('div').onclick = function(){ $('div').innerHTML += '.'; } for( var i=0; i<1500000000; i++ ); // !!! количество итераций зависит от CPU $('div').innerHTML += 'o'; } </script> </body> </html> (изначально я рассчитывал, что достатчно, чтобы один клик не пропал. Поэтому код мог бы быть удобнее) но dmitriymar этого не достаточно. Недостаточно, что один клик не пропал. Не достаточно, что 30 кликов не пропало. Может у вас пропадет? и считает, что тестировать надо так: Цитата:
Цитата:
|
вах блеснул-так блеснул.за такой блеск -ну если честно обычно избиваю конкретно-называя вещи своими именами -пизжу т аких как ты охуенно. особенно там где мои слова перекручивают. ты хочешь сказать что ты всегда будешь знать как отреагирует браузер на два одновременно возникших события?-об этом я тебе говорил-а тот говно код что ты здесь привёл(и я тебе об этом говорил не один раз)-имитирует одновременно одно событие. в вопросе заданном в начале поста-шло именно пересечение событий. напомни город в каком ты-возможно буду там проездом. и мне будет приятно-ну и тебе полезно несколько месяцев в больнице отдохнуть.
тебе было ясно сказано что ещё нужно событие запуску по таймеру-какое ты проигнорировал и гнёшь своё. поэтому повторю-прежде чем что то писать-НАУЧИСЬ СНАЧАЛА ЧИТАТЬ ТО ЧТО тебе ПИШУТ,А НЕ ЧИТАТЬ ТАК КАК ТЕБЕ ЭТО ХОЧЕТСЯ ПРОЧИТАТЬ!!!! |
и ещё одно
$('#idl').animate({top:'-=180'},40000);//подъем $('#id').animate({top:'+=180'},1000);//падение что это такое как не функция циклического сдвига вызываемая по таймеру.что то другое? так нет-функция какая обращаеться к подпрограмме в какой находится цикл обеспечивающий движение.и скажу одно-людям нахватавшихся знаний в одной области -но не знающим основ-точнее трактующим их как хотят -стоит забыть о знаниях своих и начать с основ |
Цитата:
Цитата:
Цитата:
<!DOCTYPE HTML> <html> <body> <div id="div" style=" width: 100px; height: 100px; background: red; "></div> <a href="#" id="go">go</a> <a href="#" id="show-clicks">show clicks</a> <script type="text/javascript"> var clicks = 0; function $(id){ return document.getElementById(id); } $('div').onclick = function(){ clicks++; } $('go').onmousedown = function(){ for( var i=0; i<1500000000; i++ ); // !!! количество итераций зависит от CPU $('div').innerHTML += 'done'; } $('show-clicks').onclick = function(){ alert( clicks ); } </script> </body> </html> Цитата:
Цитата:
|
ну вот я даже сделал как ты сказал. Ни один из 28 кликов не пропали
<!DOCTYPE HTML> <html> <body> <div id="div" style=" width: 100px; height: 100px; background: red; "></div> <a href="#" id="go">go</a> <a href="#" id="show-clicks">show clicks</a> <script type="text/javascript"> var clicks = 0; var n = 3; var delay = 1000; $('div').onclick = function(){ clicks++; } $('go').onclick = function(){ setTimeout( loop, delay ); }; function loop(){ if( n <= 0 ){ $('div').innerHTML += 'done'; return; } for( var i=0; i<1500000000; i++ ); // !!! количество итераций зависит от CPU n--; setTimeout( loop, delay ); } $('show-clicks').onclick = function(){ alert( clicks ); } function $(id){ return document.getElementById(id); } </script> </body> </html> |
Цитата:
а вот что ты сделал- Цитата:
|
вот что ты сказал:
Цитата:
а потом я написал тест с твоих слов. Который опять же показал, что ты несешь чушь вывод: может быть ты что-нибудь и знаешь. Но так как ты сам не понимаешь, о чем говоришь, либо не можешь это объяснить - толку от этого никакого |
бля-ты сам поставил в посте что я написал. и ты привёл код как ты это тестил. так ответь мне на один вопрос где в твоём коде вызов по таймеру функции несколько раз-упор на это я сделал-повторив про таймер два раза в двух строках.
а если при этом ещё постиш 2 противоречащие действия на функцию по таймеру и обработчик по клику-то в конце вобще ниезвестно что будет на выходе. что здесь ещё можно или нужно объяснять?блин займи 5 монет у кого нибудь и ВЫКУПИ АЗБУКУ НАЗАД!!!блин зоопарк один птица другой пень... |
вот что ты написал:
Цитата:
<!DOCTYPE HTML> <html> <body> <div id="div" style=" width: 100px; height: 100px; background: red; "></div> <script type="text/javascript"> function $(id){ return document.getElementById(id); } $('div').onclick = function(){ $('div').onclick = function(){ $('div').innerHTML += '.'; } for( var i=0; i<1500000000; i++ ); // !!! количество итераций зависит от CPU $('div').innerHTML += 'o'; } </script> </body> </html> --- вот как ты представляешь себе тест: Цитата:
<!DOCTYPE HTML> <html> <body> <div id="div" style=" width: 100px; height: 100px; background: red; "></div> <a href="#" id="go">go</a> <a href="#" id="show-clicks">show clicks</a> <script type="text/javascript"> var clicks = 0; var n = 3; var delay = 1000; $('div').onclick = function(){ clicks++; } $('go').onclick = function(){ setTimeout( loop, delay ); }; function loop(){ if( n <= 0 ){ $('div').innerHTML += 'done'; return; } for( var i=0; i<1500000000; i++ ); // !!! количество итераций зависит от CPU n--; setTimeout( loop, delay ); } $('show-clicks').onclick = function(){ alert( clicks ); } function $(id){ return document.getElementById(id); } </script> </body> </html> что этот код тестирует - хз. Но в любом случае, он работает не так как ты говоришь |
ну слава яйцам -таймер ввел. но код я не понял абсолютно-что он должен делать по твоему замыслу? про код в идеале-тот что имел ввиду это-а то как он будет работать и проявиться ли конфликт двух одновременно запускаемых действий нажатия и запуска по таймера зависит от настроек таймера и содержимого функций. здесь конфликт не так явен как с движением в изначальном у неё-там было 50 на 50 шансов конфликта-точнее больше 50 за конфликт. здесь же % соотношение конфликт не конфликт меньше-так что экспериментируй и поймёшь сам свою ошибку в мировозрении
|
dmitriymar,
покажи уже свой код, подтверждающий твои слова. Что ж мы мучаемся-то в незнании. |
фу блин-как вы меня достали. и ты где нибудь тоже займи 5 монет-тоже выкупи азбуку назад...
|
Вложений: 1
ну что тут скажешь... объяснять ты не умеешь, доказать ничего не можешь, слушать других не собираешься. Что ж ты на форуме делать собрался, м?
p.s. я думаю, мы его нашли |
x-yuri,
пень пластмассовый-заебал ты показывать свою тупость и знание на уровне первого класса второй четверти Как приостановить выполнение скрипта? Это сделать нельзя. Когда выполняется JavaScript, браузер не может обрабатывать события, поскольку к этим событиям могут быть привязаны другие JavaScript-обработчики, а параллельное выполнение скриптов в JavaScript запрещено. Для пользователя это выглядит как зависание браузера. Поэтому JavaScript всегда должен завершаться как можно скорее. И дятел если тему не рубишь что запуская одновременно два события или событие не закончив предыдущее ты не можешь знать наверняка какое выполнится и в какой последовательности и не законфликтуют ли и что всё это зависит от многих факторов-производительности умпа ,скорости инета ,загруженности другими приложениямиями -то тебе нихуя ни поможет-ни доктор ни таблетки какие он тебе выпишет. в твоём случае-долбоёб это диагноз http://xpoint.ru/forums/programming/.../faq.xhtml#131 пиши город где ты есть-точно если там буду найду и скручу твою куриную шею почему меня один только город интересует-всё просто. могу поспорить что ты там у себя -Первый Дятел на деревне. и стоит спросить у любого что то типа-не подскажешь, где мне дятла(долбоёба,выблядка....с писок большой) найти-укажет твой дом |
Важное качество программиста - умение объяснять свои мысли, передавать свои знания "младшим". Программист не умеющий делать этого - трутень. Он лишь берет для себя, не пытаясь что-либо передать дальше, часто прикрывая эту неспособность тем, что все кругом слишком глупые и видите ли неспособны понять его, о великого. dmitriymar, то, что тебя не понимают - твоя вина. Я вижу, что тебя пытаются понять, составляют какие-то примеры по твоим описаниям, ты же лишь обсираешь все, что тебе показывают, но сам, как тот самый трутень, не можешь сесть и составить нормальный пример с внятным объяснением.
Угрозы в адрес коллег унижают не их, а тебя, как последнее быдло - низший слой. Ассемблер знаешь? Да, я вижу, что вполне адекватные заявления бодро перемешаны с какой-то ересью, вроде того: Цитата:
У тебя два варианта: 1. в очередной раз огрызнуться, подтвердив сказанное выше. 2. составить, наконец, пример с внятным объяснением того, что в нем происходит, и того, что из этого следует. Возможно, не отвечу, я здесь последнее время редко появляюсь. |
Цитата:
чего тебе объяснить что при 2х таймерах и одном событии ты с увереностью не сможешь сказать какое событие произойдёт-и что в этой рулетке всё зависит от производительности компа? и то что ты меня цитируеш вяжи хоть к тому откуда они взяты-здесь конфликт не так явен как с движением в изначальном у неё-там было 50 на 50 шансов конфликта-точнее больше 50 за конфликт. здесь же % соотношение конфликт- эта фраза касается скрипта - 2х таймеров и одного события. причём время запуска второго таймера может совпадать с ещё работой функции в первом и на всё это событие онклик накладываеться читай хотябы для начала что куда и о чём причём читай с начала а не с конца |
Цитата:
|
Цитата:
|
Riim,
читай сначала. и учти-что он выложил солянку из переписки со мной. фраза с одного поста+фраза с другого-об абсолюнто другом.. вот и вышла та ересь что он положил. контекст переписки он знает и фраза о процентах-адресовывалась ему |
Хорошо, он неправ, теперь напиши как правильно. Мы хотим пример.
|
посмотри начальный код в этом посте-и ответь для себя при каких условиях он пойдёт на перекос?
1 пока оператор движения(язык не поворачиваеться так назвать)-по мне это цикличиская функция -обёрнутая в оператор движения в одну сторону не закончится-обработки он клик не будет 2 если оператор движения ещё не закончился в одну сторону а уже пошел запуск движения в обратную сторну(зависит от производительности компа) а если ещё событие он клик наложиться.. Ты сам для себя можешь ответить как именно себя поведёт алгоритм в этом случае? я тоже не могу и только это имелось в виду-прочитай теперь весь топик этот с начала с учётом этого что написал,ну и добавь ещё переписку с критиками в личке и почему ушел с ней в личку и на тот момент как здесь появился первый рабочий код-"десятый" изо всех "правильно работающих" она несколько часов как уже сделала свой скрипт. поняла ошибку что циклы движения не должны быть такими длинными-что нужно дать возможность для опроса без возможных перекосов. и ассемблер имелся в виду что там програмер сам сам вводит точки опроса переферии и в подобном алгоритме нужно принудить браузер чаще опрашивать переферию не давая ему возможность перекосячить а у неё по сути дела 3 таймера. 2 из них регуляторы скорости. 3 й запуск этих вниз-верх по таймеру. так предскажи как он будет срабатывать на разных компах с разной производительностью? |
Цитата:
Может в этом проблема: Цитата:
Если так, то события действительно никуда не пропадают, они происходят (здесь многопоточность) и их обработчики добавляются в очередь (а здесь уже один поток). Подробней здесь: http://javascript.ru/tutorial/events/timing . |
Цитата:
у неё по сути дела 3 таймера. 2 из них регуляторы скорости. 3 й запуск этих вниз-верх по таймеру.+обработка события так предскажи как он будет срабатывать на разных компах с разной производительностью? скажи что имеет преимущество-движение верх,движение вниз,таймер,обработка события? в какой последовательности они построятся в очередь? и будут ли в очереди элементы до каких очередь может никогда не дойти? то что анимейт не прервётся на он клике-пока он полностью не выполниться-это ясно-хотя судя по началу топика страницам так по 3 м многие считают что прервётся... |
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Цитата:
не забывай ещё о таймере запускающем 2 анимейта у каких есть ещё свои таймеры рег. скорость-хотя он может быть и по типу пустого цикла-что ещё хуже для этой ситуации. я говорю о случае когда ещё работает анимейт +сработал таймер опять запускающий анимейт+онклик... попадёт в очередь ,не попадёт,попадёт но никогда не сработает-предскажешь? я не могу-могу сказать только одно что в этом случае какоето действие может быть никогда не выполнено(это зависит от параметра таймера ,длинны в машинных циклах-надеюсь термин этот объяснять не нужно?- действия выполняемого по таймеру и производительности компа)-и скорее всего это будет онклик |
и ещё по поводу твоего поста-ей нужно было выполнение сразу падения-а не отработка и потом по очереди падение.
|
чтобы увидеть что событие он клик у неё никогда не сработает-достаточно посмотреть на сумму двух таймеров скорости в анимайтах и на таймер вызывающий парное исполнение анимейтов
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 с хвостом за этот топик найдёт что мне возразить:yes: |
Цитата:
Цитата:
|
Kolyaj,
и не прекращаются попытки возразить-хоть и не в тему абсолютно... смотри не участок кода а весь $('#idl').animate({top:'-=180'},40000);//подъем $('#id').animate({top:'+=180'},1000);//падение }; setInterval(goes_up, 1000); каким оброазом одновременно? скрипт однопотоковый-всё по очереди идёт и как эта очередь выстроится?как то что события с таймером не выстраиваются по времени(предидущий пост) как он клик впишется? или ты знаешь как комп будет вести себя при таких глюках в логике-тянущих на фатальную ошибку для браузера? Цитата:
|
по-моему, все ждут, что я что-то скажу... (типа шутка)
думаю, я все же понял, что ты хотел сказать 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. скажи честно, ты умеешь признавать свои ошибки? ;) |
Часовой пояс GMT +3, время: 12:24. |