Как объединить запросы нескольких файлов javascript в один HTTP-запрос?

Эта концепция для меня нова - я впервые наткнулся на нее на Конфигуратор зависимостей YUI. По сути, вместо того, чтобы иметь несколько запросов для множества файлов, файлы объединяются в один HTTP-запрос, чтобы сократить время загрузки страницы.

Кто-нибудь знает, как реализовать это в стеке LAMP? (Я видел, что уже задавали подобный вопрос, но это похоже на ASP.

Спасибо!

Обновление: оба ответа полезны ... (моя репутация еще недостаточно высока, чтобы комментировать, поэтому я добавляю здесь несколько напутственных мыслей). У меня также есть через другое сообщение в блоге с примерами, специфичными для PHP, которые могут быть полезны. Однако ответ Дэвида на сборку заставляет меня задуматься о другом подходе. Спасибо, Дэвид!

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
8
0
9 548
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Есть несколько способов, из которых наиболее очевидны два:

  1. Создайте такой инструмент, как YUI, который создает индивидуальную, уникальную версию на основе компонентов, которые вы отметили по мере необходимости, чтобы вы по-прежнему могли обслуживать файл как статический. MooTools и jQuery UI предоставляют такие конструкторы пакетов, когда вы загружаете их пакет, чтобы предоставить вам наиболее оптимизированную и эффективную библиотеку. Я уверен, что существует универсальный универсальный инструмент.
  2. Создайте простой сценарий Perl / PHP / Python / Ruby, который обслуживает набор файлов JavaScript на основе запроса. Таким образом, onerequest.js? Load = ui & load = effects перейдет к сценарию 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 есть хорошая запись в блоге.

Вам нужен Уменьшить. Я просто написал прохождение для его настройки.

Capistrano - довольно популярный инструмент веб-развертывания на основе Ruby. Если вы рассматриваете это или уже используете его, есть отличный драгоценный камень, который определит зависимости CSS и Javascript, объединит и уменьшит файлы.

gem install juicer

С помощью Страница соковыжималки на GitHub он может определить, какие файлы зависят друг от друга, и объединить их вместе, уменьшая количество HTTP-запросов на просмотр страницы, тем самым повышая производительность.

Другие вопросы по теме