Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Ładowanie i usuwanie wielu javascript
Forum PHP.pl > Forum > Przedszkole
cent4
Mam pytanie - mam kilka podstron, niestety używam bibliotek javascript, które się ze sobą "gryzą" - dlatego muszę każdą ładować na innych stronach, ale przy przechodzeniu między podstronami nie działa to dobrze - jest jakiś sposób, żeby przy ładowaniu danych bibliotek - czyścić wszystkie wcześniej załadowane, żeby "wyczyścić" sobie plac budowy przed załadowaniem kolejnych bibliotek?
Lysiur
Temat nie należy do prostych. Dobrym rozwiązaniem jest zbudowanie autoloadera js, który mógłby dynamicznie wczytywać dane pliki, kóre byłby aktualnie potrzebne. Jednak to wymaga odpowiedniego nazewnictwa samych plików - oraz obiektów w nich używanych. Wtedy możesz sobie wyodrębnić te obiekty (bo funkcje też są obiektami w js), które używsz niemal w całej aplikacji + loader, a resztę specyficznych obiektów i ich metod lub grup ładować do poszczególnych plików. Wtedy łatwiej zapanować nad dołączaniem kolejnych plików.

Np.:

common.js - ładowany na każdą stronę,

stronaA - ładowany stronaA.js i jeśli w tym pliku odwołujesz się do jakiś obiektów (które będą wykorzystywane na innej podstronie także), to loader mógłby dynamicznie wczytać taki plik jak objektB.js.

Jest to zagadnienie ciekawe, ale trzeba się orientować jak działa js i co z czego wynika. Czyli przede wszystkim trzeba zachować odpowiednie przestrzenie nazw, a nie używać globalnych zmienych. (to jest właśnie odpowiedź na Twoje pytanie - bo trochę się zapędziłem i zgubiłem wątek) Wtedy mamy pewność, że czegoś sobie nie nadpiszemy i nie doprowadzimy do nie przewidzianych sytuacji.

Każdy kij ma dwa końce, niby wszystko ładnie działa, ale przy złożonym projekcie może okazać się, że ładujemy dość dużą ilość plików i wtedy należało by oszacować, co z czym można połączyć by to zoptymalizować smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.