Эта концепция для меня новая – я впервые встретил ее в конфигураторе зависимостей YUI . В принципе, вместо того, чтобы иметь несколько запросов для многих файлов, файлы привязаны в один HTTP-запрос, чтобы сократить время загрузки страницы.
Кто-нибудь знает, как реализовать это в стек LAMP? (Я видел, что аналогичный вопрос уже задан, но, похоже, он специфичен для ASP .
Благодаря!
Обновление: оба ответа полезны … (мой представитель недостаточно высок, чтобы комментировать, поэтому я добавляю некоторые мысли о разлуке здесь). Я также столкнулся с другим сообщением в блоге с примерами на PHP, которые могут быть полезны. Тем не менее, ответ на построение Дэвида заставляет меня рассмотреть другой подход. Спасибо, Дэвид!
Существуют различные способы: два наиболее очевидных:
Я предпочитаю не обслуживать статические файлы через какой-либо скрипт, но мне также нравится разрабатывать мой код с 10 или около того отдельными файлами небольшого класса без стоимости 10 HTTP-запросов. Поэтому я придумал собственный процесс сборки, который объединяет все наиболее распространенные классы и функции, а затем сводит их к одному файлу, например project.min.js, и имеет условие во всех моих представлениях / шаблонах, которые включают этот файл в производство.
Изменить. «Пользовательский процесс сборки» на самом деле является чрезвычайно простым perl-скриптом. Он читает в каждом из файлов, которые я передал в качестве аргументов, и записывает их в новый файл, при необходимости передавая всю вещь через JSMIN (доступный на всех ваших любимых языках) автоматически.
У команды, как это выглядит:
perl build-project-master.pl core.js class1.js etc.js /path/to/live/js/file.js
Существует хорошее сообщение в блоге на этом http://www.hunlock.com/blogs/Supercharged_Javascript .
Вы хотите Minify . Я просто написал пошаговое руководство для его настройки.
Capistrano – довольно популярный инструмент для развертывания на основе Ruby. Если вы рассматриваете это или уже используете его, есть большой камень, который будет определять зависимости CSS и Javascript, объединять и минимизировать файлы.
gem install juicer
На странице Juicer GitHub можно определить, какие файлы зависят друг от друга и объединить их вместе, уменьшив количество HTTP-запросов на просмотр страницы, тем самым повышая производительность.