Если вам нравится SbUP Форум, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....

 

Загрузка JavaScript по имени класса

Автор 4X_Pro, 16-04-2015, 21:21:51

« назад - далее »

4X_ProTopic starter

При верстке сайтов, использующих большое количество JavaScript-эффектов часто возникает вопрос, как эти самые JavaScript загружать. С помощью обычного тега script получается долго и медленно из-за того, что их загрузка блокирует отображение сайта, объединить все в один большой файл — тоже плохо: зачастую на отдельно взятой странице сайта нужны далеко не все скрипты.
В итоге я нашел такое решение: загружать сначала основные скрипты, которые используются почти всегда, а дальше делать проверку на наличие классов с определенным именем по событие DOMready и догружать только те скрипты, которые нужны для работы с соответствующим классом. При таком подходе догрузка скриптов происходит уже после того, как основной контент страницы отобразился, в результате чего визуально сайт отображается быстрее. У себя в блоге я привел пример кода с загрузкой JavaScript по имени классов, который реализует подобное с использованием библиотеки jQuery.
Мысли как инженер, а не бизнесмен!
4xpro.ru — мой блог о Web-разработке и ускорении загрузки сайтов. Работает на моем собственном форумном движке.
  •  


zhel_kon

В "<head>" монтируем ссылку на основной файл jQuery по умолчанию. Затем в зависимости от исполняемого модуля мы выбираем нужный файл js, а так же подключаем нужный класс, который используется в данном модуле (инклюдом выше заголовка) в зависимости от модуля. Это все реализуется легко в ПХП. Плюсы: уменьшается вес загружаемой страницы. Минусы: снижается "читаемость" кода.
Можно jQuery тож по надобности подгружать.
  •  


4X_ProTopic starter

При вашем подходе загрузка в таком случае будет блокирующей, что особенно почувствуется, если JS-файлов больше восьми (максимальное количество подключений к серверу по умолчанию в большинстве современных броузеров). Т.е. время до первого отображения контента будет вместо 0.3-0.4 секунд (а на некоторых своих сайтах я и лучших показателей добивался, правда, там картинок почти нет) будет 1.5-2 секунды. Собственно, ради того, чтобы избавиться от этого, я и придумал то решение, которое описал в блоге.
Мысли как инженер, а не бизнесмен!
4xpro.ru — мой блог о Web-разработке и ускорении загрузки сайтов. Работает на моем собственном форумном движке.
  •  



Если вам нравится SbUP Форум, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....