Poszukuję porad na temat najlepszego sposobu przechowywania moich funkcji JavaScript (jQuery).Jak/kiedy/gdzie dodać zewnętrzne javascript
Pracuję w MVC/maszynce do golenia i dlatego mam stronę układu. Załączam tutaj moją bibliotekę jQuery i zewnętrzny plik JavaScript, aby była dostępna na każdej stronie.
Działa to dobrze, ale teraz zdaję sobie sprawę z tego, że dodaję prawie 300 linii JS do KAŻDEJ strony, gdzie może połowa z nich jest używana na którejkolwiek z tych stron.
Jedna funkcja nie znajduje się w pliku zewnętrznym i zamiast tego znajduje się w kodzie HTML, ponieważ potrzebuję użyć zmiennych ustawionych w moim kodzie.
mam kilka pytań wokół tej aranżacji:
- jest umieszczenie wewnątrz JS HTML ogólnie akceptowalnym kiedy ustawić za pomocą brzytwy używane są zmienne? Wydaje się, że nie ma czystej metody przekazywania zmiennej do zewnętrznego pliku js.
- Czy powinienem podzielić moje funkcje na pojedyncze pliki JS i uwzględnić tylko to, co jest potrzebne dla każdej strony w witrynie?
- Jeśli miałbym podzielić je na wiele plików, jak by to działało z jQuery's
(document).ready
? Czy muszę go użyć, jeśli ma być używany cały JavaScript, który dołączam?
Jestem pewien, że będzie to bardziej kwestia opinii niż czarno-biała odpowiedź, ale chcę rozważyć wszystkie moje opcje, zanim przejdę dalej. Mimo że działa dobrze, jak jest, nie mogę pomóc, ale czuję, że jest lepszy/czystszy sposób.
Dzięki za to - cały kod jest minified po wdrożeniu, plus nie brałem pod uwagę buforowanie (nie wspominając o większej liczbie żądań http, jeśli użyłem 4 zewnętrznych plików zamiast 1). –
/zgadzam się. Jeśli masz tylko 300 linii, trzymam to wszystko na jednej stronie. Jeśli martwisz się, że uruchomisz wszystkie te funkcje na każdej stronie, możesz podzielić je na sekcje i sprawdzić stronę, na której się znajdujesz, a następnie uruchomić tylko te funkcje, które są potrzebne na tej stronie. Zwykle podaję nazwę mojego js i dostarczam init dla każdego z nich i umieszczam go w instrukcji if: if ($ ('# Homepage') {MySite.Homepage.init()} – Syon
@Syon: Nie jesteś "prowadzący wszystkie te funkcje na każdej stronie ", po prostu je dodajesz. Również oddzielenie każdego modułu JS w innym pliku ma sens dla lepszego zarządzania twoimi plikami, ale pod względem wydajności zawsze umieszczałbym wszystko w jednym pliku. Użytkownik ładuje go raz i cache Reszta będzie prawdopodobnie najlepsza, logicznie rozdzielając moduły JS w różnych plikach i używając preprocesora do łączenia i minimalizowania kodu javascript – Amberlamps