Warsztaty Webowe grupa średniozaawansowana

Timing Events

Poprzez obiekt window mamy dostęp do metod które umożliwiają egzekucję kodu w określonym przez nas czasie, są to:

window.setTimeout(funkcja, milisekundy, args), która wykona określoną funkcję po upływie danej liczby milisekund.

oraz

window.setInterval(funkcja, milisekundy, args), która wykona określoną funkcję co określoną liczbę milisekund.

Przykłady użycia:

Obydwie metody zwracają ID, który pozwala nam zatrzymać timer. Do zatrzymywania timera używamy:

window.clearTimeout(timerID)

oraz

window.clearInterval(timerID)

Zadanie 1

Przygotuj prostą stronę wyświetlającą czerwony kwadrat 200px x 200px. Dodaj do strony guzik którego aktywacja sprawi, że po dwóch sekundach kwadrat zmieni kolor.

Zadanie 2

Spraw by po wciśnięciu guzika kolor zmieniał się co sekundę, dodaj drugi guzik który sprawi, że kolor już nie będzie się zmieniał.

Zadanie 2.1*

Dodaj ostateczne ulepszenie, którym będzie jakiś sposób regulowania częstotliwości zmiany koloru przez użytkownika, można wykorzystać np. tag <input>.

Obiekt Date

Gdy mamy utworzony obiekt typu Date, wymienione poniżej metody pozwalają na pobranie lub ustawienie daty i godziny przedstawianej przez dany obiekt:

Zad 3

Uzupełnij luki (tzn. co wstawić w miejsce ‘???’) w poniższym skrypcie języka JavaScript tak, aby na stronie o poniższym kodzie źródłowym treść elementu o identyfikatorze paragraph-three została zastąpiona przez komunikat znadujący się pod skryptem JS?

Obiekt String

W przypadku wartości będącej ciągiem tekstowym można użyć własciwości i metody obiektu String:

Zad 4

Mamy do dyspozycji zmienną var sentence = “ Home sweet home “;. Dla strony o kodzie źródłowym z zad 3 zastąp treść elementu o identyfikatorze paragraph-one następującą treścią:

Nasz ciąg ma długość: ... .
Jeśli zmienimy wszystkie znaki na wielkie ciąg będzie wyglądać tak: ... .
Na 10. pozycji znajduje się znak: ... .
Ciąg 'ee' znajduje się na miejscu: ... .
Ostatni indeks znaku 'e' to: ... .
Znaki od 8 do 14 to: ... .
Po usunięciu niepotrzebnych spacji nasz ciąg wygląda tak: ... .
Po zmianie 'me' na 'w' nasz ciąg wygląda tak: ... .

Local storage i session storage

Oba mają podobny cel - przechowywanie informacji użytkownika, ale po jego stronie. Nie są to dane trwale zapisane, to jak długo można z nich korzystać zależy od użytkownika - dane zapisane w session storage usuwają się po zamknięciu karty (i są dostępne ogólnie tylko dla jednej karty), zaś dane z local storage są tak długo aż ich nie usuniemy (i dzielą się z innymi kartami danej witryny)

Sources: https://www.w3schools.com/js/js_timing.asp
https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval
https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout