Projektowanie strony internetowej przy użyciu JavaScript wymaga zwrócenia uwagi na kolejność, w jakiej pojawia się kod i niezależnie od tego, czy kodujesz w funkcje lub obiekty, z których wszystkie mają wpływ na kolejność, w jakiej kod biegnie.
Lokalizacja JavaScript na twojej stronie internetowej
Ponieważ JavaScript na twojej stronie działa w oparciu o określone czynniki, zastanówmy się, gdzie i jak dodać JavaScript do strony internetowej.
Istnieją w zasadzie trzy lokalizacje, do których możemy dołączyć JavaScript:
- Bezpośrednio w nagłówku strony
- Bezpośrednio w treści strony
- Z modułu obsługi zdarzeń / detektora
Nie ma znaczenia, czy JavaScript jest na stronie internetowej sam lub w plikach zewnętrznych powiązanych ze stroną. Nie ma również znaczenia, czy procedury obsługi zdarzeń są na stałe zakodowane na stronie, czy dodane przez sam JavaScript (z wyjątkiem tego, że nie można ich uruchomić przed ich dodaniem).
Kod bezpośrednio na stronie
Co to znaczy, że JavaScript jest bezpośrednio w nagłówku lub treści strony? Jeśli kod nie jest zawarty w funkcji lub obiekcie, znajduje się bezpośrednio na stronie. W takim przypadku kod jest uruchamiany sekwencyjnie, gdy tylko plik zawierający kod załaduje się wystarczająco, aby uzyskać dostęp do tego kodu.
Kod znajdujący się w funkcji lub obiekcie jest uruchamiany tylko po wywołaniu tej funkcji lub obiektu.
Zasadniczo oznacza to, że każdy kod wewnątrz nagłówka i treści strony, który nie znajduje się w funkcji lub obiekcie, będzie działał podczas ładowania strony - jak tylko strona załadował wystarczająco, aby uzyskać dostęp do tego kodu.
Ten ostatni bit jest ważny i wpływa na kolejność umieszczania kodu na stronie: każdy kod umieszczony bezpośrednio na stronie, który musi wchodzić w interakcje z elementami na stronie, musi się pojawiać po elementy strony, od których jest on zależny.
Zasadniczo oznacza to, że jeśli używasz kodu bezpośredniego do interakcji z zawartością strony, taki kod powinien zostać umieszczony na dole treści.
Kod w ramach funkcji i obiektów
Kod wewnątrz funkcji lub obiektów jest uruchamiany przy każdym wywołaniu tej funkcji lub obiektu. Jeśli jest wywoływany z kodu znajdującego się bezpośrednio w nagłówku lub treści strony, to jego miejsce w kolejność wykonywania jest w rzeczywistości punktem, w którym funkcja lub obiekt jest wywoływana bezpośrednio kod.
Kod przypisany do programów obsługi zdarzeń i detektorów zdarzeń
Przypisanie funkcji do procedury obsługi lub nasłuchiwania zdarzeń nie powoduje uruchomienia funkcji w punkcie, w którym została przypisana - pod warunkiem, że faktycznie przypisywanie sama funkcja i nie działa funkcja i przypisanie zwróconej wartości. (Dlatego zazwyczaj nie widzisz () na końcu nazwy funkcji, gdy jest ona przypisana do zdarzenia od momentu dodania w nawiasach uruchamia funkcję i przypisuje zwracaną wartość, a nie przypisuje funkcję samo.)
Funkcje dołączone do procedur obsługi zdarzeń i detektorów są uruchamiane, gdy zdarzenie, do którego są dołączone, zostanie uruchomione. Większość zdarzeń jest wywoływana przez odwiedzających wchodzących w interakcje z Twoją stroną. Istnieją jednak pewne wyjątki, takie jak Załaduj zdarzenie w samym oknie, które jest uruchamiane po zakończeniu ładowania strony.
Funkcje dołączone do zdarzeń w elementach strony
Wszelkie funkcje dołączone do zdarzeń na elementach na samej stronie będą działać zgodnie z działaniami każdego użytkownika - ten kod działa tylko wtedy, gdy wystąpi określone zdarzenie, które je wywoła. Z tego powodu nie ma znaczenia, czy kod nigdy nie uruchamia się dla danego użytkownika, ponieważ ten użytkownik oczywiście nie wykonał wymaganej interakcji.
Wszystko to oczywiście zakłada, że odwiedzający uzyskał dostęp do strony za pomocą przeglądarki, która ma JavaScript włączone.
Skrypty użytkownika dostosowane
Niektórzy użytkownicy zainstalowali specjalne skrypty, które mogą wchodzić w interakcje z twoją stroną internetową. Te skrypty działają po całym twoim bezpośrednim kodzie, ale przed dowolny kod dołączony do procedury obsługi zdarzenia load.
Ponieważ Twoja strona nic nie wie o tych skryptach użytkownika, nie masz możliwości dowiedzenia się, co mogą zrobić te zewnętrzne skrypty - mogą zastąpić dowolny lub cały kod dołączony do różnych zdarzeń, do których został przypisany przetwarzanie. Jeśli ten kod zastępuje procedury obsługi zdarzeń lub detektory zdarzeń, odpowiedź na wyzwalacze zdarzeń spowoduje uruchomienie kodu zdefiniowanego przez użytkownika zamiast kodu lub oprócz niego.
Chodzi o to, że nie można zakładać, że kod zaprojektowany do działania po załadowaniu strony będzie mógł działać w sposób, w jaki został zaprojektowany. Ponadto należy pamiętać, że niektóre przeglądarki mają opcje umożliwiające wyłączenie niektórych programów obsługi zdarzeń w obrębie przeglądarka, w którym to przypadku odpowiedni wyzwalacz zdarzenia nie uruchomi odpowiedniego modułu obsługi zdarzeń / detektora zdarzeń w twoim kod.