![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 26.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie.
Na wstępie muszę przeprosić wszystkich, że zajmuje miejsce na tym zacnym forum, szukając gotowego rozwiązania. Przyznam szczerze, że jestem kompletna noga z JavaScript i mimo usilnych starań zgłębienia tego języka, ni cholery mi nie wchodzi w moją mózgownicę. Dlatego też zwracam się z ogromną prośbą do osób znający ten język o pomoc w nakierunkowaniu, bądz też (piszę to ze wstydem) w wyręczeniu mnie w tym trudnym dla mnie dziele. Problem z jakim muszę się zmierzyć wygląda następująco: Chodzi mi o skrytpt w JS, polegający na odliczaniu czasu (powiedzmy co 5 min) od załadowania strony. Po upływie tych, że 5 minut, wyskakuje komunikat (coś na zasadzie alertu) z pytaniem, gdzie użytkownik ma do wyboru 2 lub 3 odpowiedzi. Jeśli odpowie prawidłowo na pytanie, alert się zamyka, a czas zostaje liczony od nowa i po kolejnych 5 min, wyskakuje nowy alert z nowym pytaniem (coś na zasadzie quizu), i tak w kółko. Powiedzmy, że pytań różnych jest 10 i generowane są losowo. W przypadku natomiast kliknięcia w błędną odpowiedz na alercie, do głównej strony ładowana jest nowa strona (w moim przypadku strona ze skryptem wylogowującym w PHP). Z góry dziękuję wszystkim patrzącym na moją prośbę z pobłażaniem i chęcią pomocy, a innych, krytykujących moje oczekiwania korzystania z wiedzy innych, doskonale rozumiem, jednak wyjścia nie mam jak proszenie o pomoc. Pozdrawiam serdecznie |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 6 Dołączył: 5.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
zakładam ze jeżeli masz już jakąś stronę która ma system logowania to trochę się znasz na programowaniu.
wiec tak odliczanie będzie działo na zasadzie rekurencji tzn funkcja wywołuje samą siebie czyli po upływie 5 minut odlicza kolejne 5 minut
musisz oczywiście jeszcze odpalić pierwszy raz funkcje
teraz pozostaje wyswietlenie okienek oczewiscie tworzenie niestandardowych okienek może być trudne np z własnymi przyciskami (chyba ze w html'u ) wiec można by aplikacje oprzeć o okienko prompt gdzie wyświetla się komunikat i pole do wpisania jeżeli chodzi o test typu abc to porostu karz użytkownikowi wpisać w to okienko abc tu masz poczytaj o okienku prompt LINK:http://www.doman.art.pl/kursjs/kurs/okienka_dialogowe.html |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 159 Pomógł: 43 Dołączył: 8.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
przykładowe rozwiązanie poniżej, w wersji produkcyjnej pytania i odpowiedzi lepiej ładować do skryptu ajaxem by nie były widoczne dla sprytniejszych użytkowników ![]()
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 26.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Panowie, jesteście wielcy i wspaniali. Tak, programuję w PHP i trochę w AS, więc spokojnie sobie już poradzę, tym bardziej, że AS jest dosyć podobne do JS
![]() Jeszcze raz dziękuję, już poklikałem na 'POMÓGŁ' Natomiast nie zamykam wątku. Może ktoś będzie miał jeszcze jakiś pomysł, chętnie podpatrze. Pozdrawiam serdecznie. -----------------> 11 czerwca 2012 no niestety, JS jest dla mnie nadal mało zrozumiały. (chodzi mi o to, by odpowiedz podać w ciągu x sekund od wyświetlenia okna komunikatu, np po 5 sec): Próbowałem rozwinąć skrypt jaki napisał AdIoS_Neo tak by odpowiedz również była ograniczona czasowo, stworzyłem funkcje
i próbowałem wywołać ją we wnątrz funkcji ankieta, nadając na samym początku skryptu zmiennej var count = 5; Umieściłem ją wewnątrz funkcji ankieta (zaraz na końcu tej funkcji jak i w innych miejscach), ale nic nie działa. Proszę o jakąś poradę. Ten post edytował konfeusz 11.06.2012, 12:44:47 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Zrób inaczej. Wykorzystaj funkcje: https://developer.mozilla.org/pl/DOM/window.setTimeout i https://developer.mozilla.org/pl/DOM/window.clearTimeout
Tą drugą( clearTimeout ),możesz usunąć zwłokę, czyli robisz tak: 1. ustalasz, że po x sekundach przenosi Cię na Google 2. Jeżeli kliknięto jakąś odpowiedź to usuwasz zwłokę( pkt. 1 ) i wykonujesz odpowiednie akcje własne Pozdrawiam -------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 26.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
dzieki kamil4u... następna bardzo pomocna wskazówka i lektura, ale...
No namieszałem już na maxa :/ Wiem, że co nie których wprowadzę w paniczny śmiech lub zarzenowania, ale już tak mam, że wolę praktycznie próbować niż siedzieć nad toną makulatury nic z tego nie rozumiejąc. Skleiłem 2 skrypty do kupy, tak, by mieć kontrolę nad odliczanym czasem podczas wyświetlonego komunikatu o pytanie, a wyszło mi zupełnie całkiem coś innego. Z tego co mi wyszło, mógłbym dostosować już działanie strony tak, żeby zliczał całkowity czas faktycznego uczestnictwa w stronie, bo troszkę wcześniejsza wersja tego co przedstawiam poniżej, odlicza czas, potem pauzuje podczas wyswietlania komunikatu w alercie a po uplywie czasu przekierowyuje np, na stronę statystyk. Ale nie zupełnie o to mi chodziło. Z tego co mi poniżej wykiełkowało, zlicza wlasnie czas, pauzuje go podczas ALERT, natomiast po kliknieciu w prawidłowa odpowiedz, licznik sie zachowuje jak by plynely 2 czasy (stary i nowo wywolany)... Zasadniczo wiem o co chodzi, ale moze mi ktos wskazac blad, gdzie zle i dlaczego wywołuję clearTimeOut??
Ten post edytował konfeusz 11.06.2012, 15:26:55 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Tak to jest jak nie poświęcisz 3min, żeby przeczytać linki, które podałem. Generalnie w tym miejscu powinienem skończyć mojego posta, ale napiszę trochę dokładniej, a raczej zacytuję:
Link 1: https://developer.mozilla.org/pl/DOM/window.setTimeout Cytat id = window.setTimeout(funkcja, opóźnienie[, param1, param2, ...]); Link 2: https://developer.mozilla.org/pl/DOM/window.clearTimeout Cytat window.clearTimeout(id) Zamiast konstrukcji: setTimeout('ankieta()', 4000);, używaj setTimeout(ankieta, 4000); . Działają tak samo, ale druga opcja jest lepsza( nie uruchamia niepotrzebnie interpretera JS drugi raz ) ![]() I zamiast: setTimeout(function(){writeText(50);}, 3000); wykorzystaj 3 argument funkcji setTimeout - znów wychodzi na to, że nawet nie zajrzałeś do linków Ten post edytował kamil4u 11.06.2012, 15:31:26 -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 26.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
z ręką na sercu, przyznam się, że masz rację :/ ale to wrodzone anty nastawienie do JS.
Jakoś nigdy mi ten język nie podchodził, nie wiem dla czego, ale po prostu nie potrafię się w nim poruszać. Na php'a spojżę i widzę co się dzieje, w JS jakoś nie zawsze szybko zrozumiem działania kodu. Zmyliła mnie składnia window.setTimeout, ale dlatego, że kojarzy mi się z wywołaniem okna w AS, teraz dopiero do mnie dociera, że pewnie chodzi właśnie o okno komunikatu ![]() Idę odrabiać pracę domową i dokładnie zapoznać się z podanym przez Ciebie Kamilu materiałem. Jeszcze raz dziękuję i pozdrawiam. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.06.2025 - 21:20 |