Лучшая практика: включить (или <script src = " - PullRequest
11 голосов
/ 07 октября 2008

Я уменьшил мой JavaScript и мой CSS.

Теперь, что лучше?

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

OR

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

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

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

Ответы [ 3 ]

22 голосов
/ 07 октября 2008
<script type="text/javascript" src="min.js"></script>

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

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

<script type="text/javascript" src="min.js?version=20081007134916"></script>
6 голосов
/ 07 октября 2008

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

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

Основываясь на рекомендациях Yahoo Exceptional Performance, есть только одно исключение:

Единственное исключение, при котором вставка предпочтительнее, - это домашние страницы, такие как главная страница Yahoo !, My My !. Домашние страницы, у которых мало (возможно, только один) просмотров страниц за сеанс, могут обнаружить, что встраивание JavaScript и CSS приводит к более быстрому времени отклика конечного пользователя.

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

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

Apache mod_expires

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

YSlow

0 голосов
/ 08 октября 2008

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...