![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 213 Pomógł: 10 Dołączył: 7.01.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam na stronie funkcje wywolywana po kliknieciu i gdy uzytkownik kliknie drugi raz zanim funkcja skonczy sie wykonywac to calosc sie sypie pasowaloby mi sprawdzic czy funkcja jest aktualnie wykonywana... moze gdyby dalo sie jakos wyrzucic zmienna z funkcji, cos jak zmienna globalna tylko w druga storne, czy cos... moze gdyby sie udalo tez zatrzymac w jakis sposob zmienna, tzn mam var zmienna2=zmienna1 gdy zmieni sie zmienna1 to zmieni sie i zmienna2, moze gdyby dalo sie jakos zatrzymac zmienna2, albo cokolwiek innego co mi pozwoli sprawdzic czy funkcja jest wykonywana |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli to link / button to zmień na disabled. A na koniec wykonywania funkcji daj znów możliwość kliknięcia.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 213 Pomógł: 10 Dołączył: 7.01.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
hm... pomysl wrecz idealny
tylko lipa z wykonaniem porzucilem nawet proby z jsem i po prostu dalem do htmla
link jest aktywny... z tym co pisales nieudalo sie, z niewiadomych powodow nie moglem tez wyciagnac defaultValue, w koncu dalem tak, ze linki dalkiem znikaja na czas trwania funkcji (IMG:style_emoticons/default/biggrin.gif) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
To pokaż kod to Ci pokażemy co było nie tak, żebyś na przyszłość wiedział jak coś takiego zrobić.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 213 Pomógł: 10 Dołączył: 7.01.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
tutaj jest calosc
http://kpietrzak.boo.pl/gallery3/index.php...s&graphic=2 niezly syf, watpie aby udalo sie cos znalezc raczej nalezaloby sie zastanowic np. dlaczego skrypt nie umial odzyskac defaultValue, nigdy wczesniej mi sie nie zdarzylo |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 213 Pomógł: 10 Dołączył: 7.01.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
eee... chyba nie (IMG:style_emoticons/default/tongue.gif)
zasieg zmiennej konczy sie wraz z klamerka funkcji, chyba, ze znasz sposob aby to ominac (IMG:style_emoticons/default/snitch.gif) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
eee... chyba nie (IMG:style_emoticons/default/tongue.gif) zasieg zmiennej konczy sie wraz z klamerka funkcji, chyba, ze znasz sposob aby to ominac (IMG:style_emoticons/default/snitch.gif) Przetestować samemu zamiast głupio pisać. SOA#1 Dziwne u mnie działa. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 213 Pomógł: 10 Dołączył: 7.01.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował Kamil Pietrzak 1.02.2010, 21:42:00 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
ale taka kontrukcja nie jest mozliwa, przed chwila sprawdzilem (IMG:style_emoticons/default/winksmiley.jpg) to źle sprawdzałeś ;p wiele błędów w samym js widziałem i używasz eval ;p - wiem, napiszesz, że tak nie robisz ;p - choćby tu już jest eval: setInterval("changeSizeUp("+s3+");", 30); - jak poprawniej tego użyć(IMG:style_emoticons/default/questionmark.gif) choćby tak (ale na ie nie będzie działało - zaraz do tego też dojdę ;p): setInterval(changeSizeUp, 30, s3); ale ze względu na to IE musisz się ograniczyć do: setInterval(changeSizeUp, 30); - a co z przekazaniem parametru?? - a no poczytaj o zasięgu zmiennych w js, o zmiennych prywatnych i publicznych ;p ^^ i luknij na rozwiązanie problemu (IMG:style_emoticons/default/winksmiley.jpg) kod deczko sieczka u Ciebie ale jakoś się przekopałem (IMG:style_emoticons/default/winksmiley.jpg) ... w js zasięg zmiennych jest inny niż w php (IMG:style_emoticons/default/winksmiley.jpg) - a jednocześnie js jest niezwykle mocno obiektowy - może kiedyś go zrozumiesz (IMG:style_emoticons/default/winksmiley.jpg) ... i konstrukcja: id2 = setInterval("changeSizeUp("+s3+");", 30); - gdzie wcześniej nigdzie nie zdefiniowałeś zmiennej id2 tworzy Ci zmienną globalnną którą łatwo będziesz mógł przez coś przypadkiem nadpisać (czyli zmienną pod window.id2)... i stosuj na końcu zdań/instrukcji ten średnik ;p zmniejszyłem interwał cobyś zobaczył, że działa ;p - ale całych funkcji nie poprawiałem ;p - zostawiam Ci to w ramach ćwiczeń poprawienie tego wg. uwag (IMG:style_emoticons/default/winksmiley.jpg) - i jeszcze jedna uwaga - poczytaj o podpinaniu zdarzeń onclick i takie tam gdyż nie łądnie to w html'u teraz wygląda (IMG:style_emoticons/default/winksmiley.jpg) - ale ważne, że działą ^^ btw. strona mi się podoba - może nie jest idealna ale chciałbym sam mieć zmysł grafika ;p (może wtedy "kodowanie" nie było by moim tylko hobbi ;p) - co z tego, że umiem uzyskać takie efekty jakie ktoś chce jeśli nie umiem tych efektów wymyślić ;p - jakoś w tej dziedzinie za mało kreatywny jestem... ps. i fifi209 podał poprawne rozwiązanie - porównaj to ;p, a i rozwiązanie skowron-line w zasadzie też jest takie samo (IMG:style_emoticons/default/winksmiley.jpg) - tyle, że zamiast zmiennej zmieniasz styl - jakby nie było gdzieś przechowujesz tą wartość choć tego w funkcji potem nie sprawdzasz ;p (i w zasadzie to Twoje teraz rozwiązanie było identyczne z sugestią skowron-line)
Ten post edytował zegarek84 1.02.2010, 22:17:41 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 213 Pomógł: 10 Dołączył: 7.01.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Tos mnie zaskoczyl (IMG:style_emoticons/default/biggrin.gif)
dlugoscia posta (IMG:style_emoticons/default/tongue.gif) sprawdzilem tak jak wkleilem na forum (IMG:style_emoticons/default/tongue.gif) ale na jsie jak widac za bardzo sie nie znam ogolnie moja wiedza na temat programowania konczy sie na php, a i to przez niektorych nie jest uwazane za prawdziwe programowanie ^^ skrypt mam nadzieje wyglada juz nieco lepiej (IMG:style_emoticons/default/winksmiley.jpg) jesli chodzi o onclicki, przeczytalem o co chodzi, dalem do zakladek, ale tutaj nie widze za bardzo sensu robienia tego zdalnie poza tym wszelkie logiczne przeslanki mowia o tym, ze to tylko niepotrzebnie(w tym przypadku) obciazy skrypt i narobi troche burdelu w kodzie akurat w tym skrypcie nie widze sensu do do disabled z niewiadomego powodu to nie dzialalo, skrypt nie umial tez wyciagnac defaultValue a zmienna poczatkowo tworzylem w zlym miejscu... oczywiscie pozniej jeszcze sie zlapalem na objeciu w klamerki warunkowe nie tego co trzeba i w miedzy czasue dowiedzialem sie, ze w js jednak istnieje ifelse tylko trza dac spacje ^^ no i dzieki ^^ ciesze sie, ze stronka sie podoba, mi w sumie tez (IMG:style_emoticons/default/biggrin.gif) jeszcze zostal problem roznego dzialania w roznych przegladarkach a moze to wina mojego starego kompa... najladniej chodzi w google chrome, szybko i plynnie pozniej opera, jeszcze szybciej, ale strasznie skacze na koncu firefox, zamula calkowicie, ponad 3 razy wolniej w googlu bylbym wdzieczny za jakies testy skryptu czasem tez sie tnie, ale... |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
co do "cięcia" skryptu (fakt - opera ma niezły silnik jeśli chodzi o animacje - zresztą nawet przy obliczeniach w js jest niezła (IMG:style_emoticons/default/winksmiley.jpg) ) to mnie bardzo mocno zaskoczył interwał u Ciebie na 1ms ^^ ;p - nawet jeśli to oko ludzkie by tego nie zauważyło...
mała uwaga - jeśli w ciągu sekundy przesunięcia masz o mniej niż piksel (a o mniej się nie da czyli nie zawsze przesuwasz) to zmieniasz o ten piksel, jeśli o więcej to się nie zastanawiaj nad zwiększaniem interwału do płynności tylko zrób tak, żeby tych zmian maksymalnie było 25 na sekundę (25 ramek - 25fps - jak to w materiałach video) - oko ludzkie to płynnie zobaczy (IMG:style_emoticons/default/winksmiley.jpg) - akurat pod Twój skrypt nie musisz się bawić z dodatkowymi optymalizacjami gdyż zmieniasz tylko jedną wartość DOM - więc zrób tak, żeby zmian było minimum 23 na sekunde a niewiele więcej niż 25 - więc obilicz pod 25 - interwał na 40 ;p... pozatym na słabych komputerach na setinterval to się nawarstwi jeśli nie wydoli (IMG:style_emoticons/default/winksmiley.jpg) - lepiej by było timeout - najwyżej zwolni... a i wcześniej powinieneś ten element w skrypcie "zbuforować" a nie wyszukiwać go za każdym razem - więc zamiast buforować szerokość i wysokość leiej zbuforować uchwyt do elementu (IMG:style_emoticons/default/winksmiley.jpg) ... czyli np. el=document.getElementById('ImageImageImage'); a potem go ustawiać el.width=ilestam; ogólnie jeśli będzie Ci się chciało czytać to możesz sobie poczytać co raz napisałem ogólnie w temacie: [js]Ruchome tło - zwłąszcza jeśli będziesz animował więcej elementów... no i chociaż temat tyczy się czego innego to ten trick też działa w DOM więc i tu możesz po niego luknąć przy zmianie wielu atrybutów: Temat: JavaScriptSVG VML Optymalizacja skomplikowanych animacji w SVG i VML |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 213 Pomógł: 10 Dołączył: 7.01.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
dalem na 40, w ff aby troszke zwolnilo, w pozostalych sie wyrownalo do ff (IMG:style_emoticons/default/winksmiley.jpg)
troche jeszcze poprawilem w kodzie i dodalem sobie efekt przezroczystosci na czas zmiany rowniez z plynna zmiana w sumie to pasowaloby sie nauczyc jakiegos frejmlorka, a nie tak kombinowac... ale link zobacze (IMG:style_emoticons/default/winksmiley.jpg) dzieki za pomoc;) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.09.2025 - 17:01 |