Лучшая практика: include (или <script src = "

Я уменьшил свой javascript и свой css.

Что лучше?

<script type = "text/javascript">
<?
  $r = file_get_contents('min.js');
  if ($r) echo $r;
?>
</script>

ИЛИ ЖЕ

<script type = "text/javascript" src = "min.js"></script>

Тот же вопрос для CSS.

Если ответ - «иногда из-за того, что браузеры одновременно загружают файлы?» Какие браузеры и каковы примеры случаев в любом сценарии.

Это неверно помечено как "http".

Andrei Rînea 10.05.2009 05:26
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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 и хотите разрабатывать...
11
1
8 485
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

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

<script type = "text/javascript" src = "min.js"></script>

... лучше, поскольку браузер пользователя может кэшировать файл.

Добавление параметра в src, такого как временная метка последнего изменения файла, еще лучше, поскольку браузер пользователя будет кэшировать файл, но всегда будет извлекать самую последнюю версию при изменении файла.

<script type = "text/javascript" src = "min.js?version=20081007134916"></script>

При 20-60% пользователей, имеющих пустой кеш, что лучше: меньше HTTP-запросов или кешированных результатов?

Issac Kelly 07.10.2008 16:49

Разве браузеры не должны получать эту информацию из заголовков HTTP?

Issac Kelly 07.10.2008 16:54

Исаак - ключевая фраза; «должен». Довольно часто кеширование js файлов очень агрессивное.

Greg 07.10.2008 16:57

Кроме того, это лучшая практика, потому что она позволяет исключить логику поведения из логики представления. Если это не HTML, то он не принадлежит файлу .html.

Tom 07.10.2008 17:23

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

Issac Kelly 07.10.2008 18:15

@Isaac Вы совершенно правы - я неправильно прочитал вопрос. Моя вина в этом.

Tom 07.10.2008 18:47

«При 20-60% пользователей с пустым кешем» - это означает, что 40-80% не имеют пустой кеш.

nickf 08.10.2008 04:26

Вы не должны использовать ревизию строки запроса. Некоторые кэширующие прокси никогда не кэшируют запросы со строкой запроса: stevesouders.com/blog/2008/08/23/…

Dave Ward 30.05.2009 23:39

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

Но это верно только в том случае, если вы установите соответствующий заголовок expires и / или cache-control для файлов javascript и css через php или Apache mod_expires.

На основании рекомендаций Yahoo Exceptional Performance есть только одно исключение:

The only exception where inlining is preferable is with home pages, such as Yahoo!'s front page and My Yahoo!. Home pages that have few (perhaps only one) page view per session may find that inlining JavaScript and CSS results in faster end-user response times.

Я настоятельно рекомендую вам попробовать аддон «YSlow for Firebug». Он отвечает на множество вопросов о кешировании и производительности браузера / клиента.

Смотрите также:

Apache mod_expires

Лучшие практики для ускорения вашего веб-сайта

YSlow

Помните, что браузер может загружать СОВЕРШЕННО два файла параллельно из одного домена (это значение по умолчанию в современных браузерах - я уверен в IE6 и IE7, но не в других). Это означает, что если ваша страница ссылается на 20 крошечных файлов javascript, многие из них будут загружены последовательно.

Чтобы добавить к тому, что уже было сказано: помните, что если вы объедините / уменьшите свои файлы javascript, лучше объединить их все в один - сжатие будет работать лучше. Кроме того, даже если вы не минимизируете свои файлы, не забудьте включить GZIP в конфигурации вашего веб-сервера; затем, если вы объедините все свои файлы JS в один и включите этот файл как, сжатие GZIP будет работать лучше всего (поскольку сжатие двух файлов JS вместе дает лучшие результаты, чем сжатие каждого из них по отдельности).

Если вы ищете хорошую утилиту для минификации JS, попробуйте JS Packer (http://dean.edwards.name/packer/)

Пока вы используете gzip, Packer контрпродуктивен. JSMin, YUI Compressor и Packer имеют почти одинаковые габариты gzip, но Packer вводит задержку на стороне клиента, так как eval () 'd. Packer отлично подходит, если вам нужна обфускация.

Dave Ward 30.05.2009 23:41

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