Strona główna kursu

JavaScript - tablice, pętle przykład praktyczny

DZIAŁANIE:
 

Kod:

Kurs JavaScript, Kurs Ajax, Kurs PHP

W <body> należy dopisać :
Kurs JavaScript, Kurs Ajax, Kurs PHP

Ewentualne Objaśnienia:

Poniższy przykład został zaczerpnięty z książki "JavaScript. Podręcznik tworzenia interaktywnych stron internetowych. Wydanie II" .
Jak to określa sam autor książki przykład przedstawia pewną paranoje programistów - czyli sprawdzanie czy czasem coś nie jest nie tak mimo iż jest to niemalże niemożliwe. Nic nie szkodzi - warto to przeanalizować moim zdaniem. Tutaj też po raz pierwszy widzicie wykonywanie JS zależnie od czasu (w czasie). Takich rzeczy nie osiągniecie na przykład przez PHP.

- tworzymy sobie tablicę, która zawiera jakieś tam sobie teksty, porady, które mają się zmieniać na stronie, wyświetlać
- określamy długość takiej tablicy, no i pierwsza "paranoja" sprawdzamy czy rzeczywiście tablica ma jakieś elementy oraz czy czasem jej ostatni element nie jest pusty (porady[ile-1] oznacza element, bo jak mówiłem tablice są numerowane od 0). Gdyby rzeczywiście ostatni element był pusty, następuje zmniejszenie zmiennej ile i ponowne sprawdzenie elementu tym razem już przed ostatniego - i tak w kółko aż znajdziemy element nie pusty (ale tak jak mówiłem jest to pewna paranoja, sytuacja, która tutaj raczej nigdy nigdy nie wystąpi)
- no i mamy naszą funkcję startScroll() - kolejna rzecz paranormalna hehe czyli sprawdzenie czy czasem zmienna ile nie jest null (czy czasem nie ma żadnej wartości przypisanej), jeśli by tak było (niemożliwe raczej to jest) nic w funkcji się nie wykona. Jeśli ile ma wartość różną od null (czyli ma jakąś wartość) mamy kolejne sprawdzenie niekoniecznie potrzebne, czyli sprawdzenie czy nasz formularz (o nazwie formularz) istnieje (czy został wyświetlony w naszym dokumencie, stronie). Jeżeli tak no to naszemu polu textarea jest przypisywana porada z tablicy porady o indeksie i, oraz zmienna i jest inkremetnowana. Mamy tutaj skrócony zapis - zamiast pierw wpisać porady[i] a dopiero potem i++ mamy to za jednym zamachem.
Zapis taki oznacza pierw wpisanie wartości porady[i] a potem zwiększenie zmiennej i o 1. Jeśli mielibyśmy tam zapis porady[++i] to pierw i byłoby zwiększane, a dopiero potem od tego "nowego" i byłaby wpisana wartość do pola textarea. Zapis taki typu --i lub ++i nazywamy predekrementacją lub preinkrementacją, a zapisy i-- oraz i++ postdekrementacja oraz postinkrementacja .
- po wpisaniu wartości do pola textarea, należy sprawdzić czy czasem nie wpisaliśmy już do niego ostatniego teksty z naszej tablicy - jeśli tak czyli warunek i>ile-1 jest prawdziwy należy wpisywać znowu porady zaczynając od pierwszego tekstu (czyli 0 elementu tablicy). Dlatego w takiej sytuacji zmienna i jest ustawiana na 0
- no i po tym wszystkim mamy instrukcję setTimeout - jej pierwszy argument oznacza kod jaki ma wykonać, a drugi co jaki okres czasu ma to robić (w milisekundach).

Zwróć uwagę, że funkcja startScrool w pewnym momencie wywołuje sama siebie - taka sytuacja nazywa się rekurencją .
Zapis akcji onload w sekcji BODY oznacza, że przy ładowaniu strony ma się uruchomić również funkcja startScrtoll.