Офис НП AMWAY в Ярославле

→ На карте Купить AMWAY в ЯрославлеПриобрести высококачественную продукцию Амвей в Ярославле, получить консультации по бизнесу, заказать продукцию или получить заказ:
●Адрес: улица Валентины Терешковой, дом 1 (Вход со двора)
●Телефон: +7 (920) 112-00-91
●Email: matyxho@mail.ru
●Сайт: https://www.amway.ru/user/lebedem
●Визитка: http://yar.meweb.ru
Иерархия статей
Статьи » HTML, CSS, JS » Подключение нескольких файлов .js и .css одним запросом
Сниппет
Решил тут чуть оптимизировать один из проектов, и сразу обратил внимание на множественные подключения файлов стилей и скриптов: мало того, что это лишняя нагрузка на сервер, весь этот процесс выглядит весьма несимпатично и занимает прилично места в html–разметке. Нашел неплохой способ избавиться от этого.
Подключение нескольких файлов .js и .css одним запросом
В данной заметке расскажу, как оптимизировать загрузку скриптов js и файлов css, а точнее — как избавится от дополнительных запросов к серверу, плюс существенно сократить html–код страницы.
На современных проектах используется масса дополнительных симпатичных плюшек, выполнение которых требует подключения дополнительных файлов javascript и таблиц каскадных стилей (CSS). Как выглядит обычно "шапка" нашей страницы? Примерно так:
Согласитесь, выглядит ужасно. Есть, конечно, вариант: объединить все файлы в один и загружать его. Но, на мой взгляд, есть один недостаток у этого метода: некоторые скрипты и стили нужны далеко не на всех страницах сайта, поэтому их загрузка будет лишней. Можно, конечно, возразить, сославшись на кэширование этих файлов, но это — отдельная тема для дискуссии. Я же сейчас хочу предложить более простой, но весьма действенный способ, а именно- воспользоваться возможностями сервера и погружать файлы "на лету", не делая дополнительных запросов и не засоряя разметку. Итак, начнем.
(ищем apache2handler => Loaded Modules), либо воспользоваться функцией apache_get_modules();:
Далее мы создаем файл для подключения стилей, например, style.combined.css со следующим содержимым
И файл для подключения скриптов, например, script.combined.js со следующим содержимым:
Ну вот, половина дела сделана. Дальше редактируем (или создаем, если его ещё нет) в корневой директории наш файл .htaccess, добавив в него следующее:
В принципе, всё уже готово. Последний штрих — убираем из нашей разметки все лишние подключения, оставив лишь подключение наших комбинированных файлов, то есть теперь "шапка" выглядит так:
То есть теперь, когда браузер сделает всего один запрос к нашим файлам, сервер выдаст ему подключение сразу всех скриптов и стилей. Думаю, весьма полезная вещь для оптимизации.
На этом пока всё. Всем всех благ и всего доброго.
На современных проектах используется масса дополнительных симпатичных плюшек, выполнение которых требует подключения дополнительных файлов javascript и таблиц каскадных стилей (CSS). Как выглядит обычно "шапка" нашей страницы? Примерно так:
Код: HTML5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | < head > < link rel = "stylesheet" href = "web/css/style1.css" /> < link rel = "stylesheet" href = "web/css/style2.css" /> < link rel = "stylesheet" href = "web/css/style3.css" /> < script src = "web/js/jquery-1.11.1.min.js" ></ script > < script src = "web/js/modernizr.custom.28468.js" ></ script > < script src = "web/js/jquery.cslider.js" ></ script > < script src = "web/js/jquery.quickflip.min.js" ></ script > < script src = "web/js/imagelightbox.js" ></ script > < script src = "web/js/jquery.form.js" ></ script > < script src = "web/js/jquery.validate.min.js" ></ script > < script src = "web/js/social-likes.min.js" ></ script > < script src = "web/js/site.js" ></ script > </ head > |
Согласитесь, выглядит ужасно. Есть, конечно, вариант: объединить все файлы в один и загружать его. Но, на мой взгляд, есть один недостаток у этого метода: некоторые скрипты и стили нужны далеко не на всех страницах сайта, поэтому их загрузка будет лишней. Можно, конечно, возразить, сославшись на кэширование этих файлов, но это — отдельная тема для дискуссии. Я же сейчас хочу предложить более простой, но весьма действенный способ, а именно- воспользоваться возможностями сервера и погружать файлы "на лету", не делая дополнительных запросов и не засоряя разметку. Итак, начнем.
Важно!
Перед началом работы проверьте, что на вашем сервере Apache установлены модули mod_include и mod_filter. Сделать это можно, воспользовавшись стандартной функцией phpinfo();(ищем apache2handler => Loaded Modules), либо воспользоваться функцией apache_get_modules();:
Код: PHP
1 | print_r (apache_get_modules()); |
Далее мы создаем файл для подключения стилей, например, style.combined.css со следующим содержимым
Код: TEXT
1 2 3 | <!--#include file="style1.css" --> <!--#include file="style2.css" --> <!--#include file="style3.css" --> |
И файл для подключения скриптов, например, script.combined.js со следующим содержимым:
Код: TEXT
1 2 3 4 5 6 7 8 9 | <!--#include file="jquery-1.11.1.min.js"--> <!--#include file="modernizr.custom.28468.js"--> <!--#include file="jquery.cslider.js"--> <!--#include file="jquery.quickflip.min.js"--> <!--#include file="imagelightboy.js"--> <!--#include file="jquery.form.js"--> <!--#include file="jquery.validate.min.js"--> <!--#include file="social-likes.min.js"--> <!--#include file="site.js"--> |
Важно!
Эти файлы кидаем туда, где лежат наши подключаемые файлы .js и .css, иначе устанавливаем правильно пути от корня сайта.Ну вот, половина дела сделана. Дальше редактируем (или создаем, если его ещё нет) в корневой директории наш файл .htaccess, добавив в него следующее:
Код: APACHE
1 2 3 4 5 6 7 8 9 10 11 12 | <IfModule mod_include.c > <FilesMatch "\.combined\.js$" > Options + Includes AddOutputFilterByType INCLUDES application/javascript application/json SetOutputFilter INCLUDES </FilesMatch> <FilesMatch "\.combined\.css$" > Options + Includes AddOutputFilterByType INCLUDES text/css SetOutputFilter INCLUDES </FilesMatch> </IfModule> |
В принципе, всё уже готово. Последний штрих — убираем из нашей разметки все лишние подключения, оставив лишь подключение наших комбинированных файлов, то есть теперь "шапка" выглядит так:
Код: HTML5
1 2 3 4 | < head > < link rel = "stylesheet" href = "web/css/style.combined.css" /> < script src = "web/js/script.combined.js" ></ script > </ head > |
То есть теперь, когда браузер сделает всего один запрос к нашим файлам, сервер выдаст ему подключение сразу всех скриптов и стилей. Думаю, весьма полезная вещь для оптимизации.
На этом пока всё. Всем всех благ и всего доброго.
Понравилась статья?
Метки для данной статьи
Похожие статьи
Заголовок
Категория
Просмотров
Поделиться:
Последние активные темы форума
Темы | Просмотров | Ответов | Последние сообщения |