2010-06-22 1 views
1

Мне нужны ваши мнения и знания по теме.Включая JavaScript прямо через PHP вместо того, чтобы лаять его с последней страницы через тег скрипта

Я развиваюсь на веб-сайте, который использует хорошее количество JavaScript. В теге скрипта в конце тега body я вызываю файл PHP, который собирает все мои JS-файлы и объединяет/сжимает их в один (более короткий) файл, поэтому я могу уменьшить количество HTTP-вызовов на сервере.

Это все нормально и несколько стандартно. Теперь вот мой вопрос: Не было бы более быстрым и легким исключить тег скриптового атрибута src и просто вывести весь JavaScript непосредственно в тег скрипта в первую очередь? Разве это не спасло бы звонок от полученного PHP-файла в браузере пользователей обратно на сервер, чтобы собрать эти JS-файлы?

Чтобы немного очистить его: Вместо того, чтобы сначала загрузить файл HTML, который затем перезвонит на сервер, чтобы получить JS-файл (вывод из файла PHP), он просто скачал бы один html-файл, который затем «жестко закодировал» JS в теге скрипта и тем самым сократил второй вызов сервера.

Это разумная идея? Это плохая идея включить javascript прямо в страницу? Все это динамически создано ... Обычно лучше всего включать JS-файлы, но похоже, что это еще больше загрузит сервер ... Я на что-то, или я должен просто позволить этому быть?

Глядя вперед, чтобы услышать, что вы должны сказать,

С уважением Миккель, Дания

ответ

1

Просто добавьте conditional GET в ваши JS сбор сценарий и вам будет хорошо.

+0

Я использую условный get. Выглядит что-то вроде: type = js & files = jquery.js, forms.js, main.js. Я просто хотел устранить некоторые файлы в зависимости от контекста, чтобы сделать их более легкими в браузере (см. Ответ выше ...) –

+1

@ lund.mikkel нет, это не так. Почему бы не прочитать ссылку перед ответом? –

+0

Извините, мой ответ не имел большого смысла. Я использую условные значения! Я создаю etag, соединив последнюю измененную дату с хешем md5 имен файлов, который я получил из файлов переменных get, которые я разместил в другом комментарии. Но большое спасибо за статью! Один из лучших на эту тему. Сделали немного исследований, но это прибило его! –

2

Если вы создаете пользовательскую JS для каждой страницы вашего сайта, то да, вы бы хотели ввести это прямо на страницу вместо того, чтобы браузер выполнял обратный запрос для файла .js после страницы.

Если, с другой стороны, вы повторно используете большое количество javascript со страницы на страницу на сайте, вы хотите, чтобы ссылаться на него как на внешний файл, поэтому браузер кэширует его.

+0

Почему я даже не думал о кешировании? :) Это очень хороший момент! JavaScript примерно одинаковый для каждой страницы в том смысле, что ничто не изменяется на основе самого HTML. Но не каждая страница использует все JS. Это была основная причина, по которой я бы разделил ее в первую очередь - чтобы браузер работал только через JS, который использовался на этой конкретной странице ... –

1

Если вы создаете столбцы динамического javascript, просто придерживаться его внутри тега скрипта является прекрасной идеей.

Однако, если есть какой-либо шаблонный javascript, который будет загружен по каждому запросу, вы бы хотели, чтобы это повлияло на оптимизированный внешний файл для кэширования.

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