http://developer.yahoo.com/performance/rules.html#external
Yahoo (хотя у них много встроенных стилей и скриптов), рекомендует сделать их внешними. Я считаю, что скорость страницы Google раньше (или все еще делает?) Делает то же самое.
Это действительно логично, когда они разделены. Хранение CSS и JS отдельно от HTML дает много преимуществ. Такие вещи, как логическое управление кодом, кэширование этих страниц, меньший размер страницы (вы бы предпочли запрос ~ 200 мс для кэшированного ресурса размером 400 Кб, или задержка в 4000 мс от необходимости загружать эти данные на каждой странице?), Опции SEO (меньше дерьма для Google позволяет просматривать, когда скрипты / стили являются внешними), легче минимизировать внешние скрипты (онлайн-инструменты и т. д.), может загружать их синхронно с разных серверов ....
Это должно быть вашей главной целью на любом сайте. Все стили, составляющие весь ваш сайт, должны быть в одном файле (или файлах для каждой страницы, затем объединяться и уменьшаться при обновлении), то же самое для javascript.
В реальном мире (не создание проекта для себя, создание проекта для клиента или заинтересованного лица, которое хочет получить результаты), единственное время, когда нет смысла загружать другой ресурс javascript или другую таблицу стилей (и таким образом использовать inline styles / javascript) - это если есть какая-то динамическая информация, относящаяся к какому-либо пользователю, сеансу или периоду времени, которая не может быть выполнена каким-либо другим способом. Пример: когда мой сайт продвигается, мы добавляем тег script с небольшим JSON-объектом информации. Поскольку мы не минимизируем и не объединяем несколько файлов, имеет смысл просто включить его на страницу. Конечно, есть другие способы сделать это, но это будет стоить 20 долларов, тогда как это может стоить> 100 долларов, чтобы сделать это по-другому.
Возможно, Amazon / Facebook / Google и т. Д. Используют так много встроенного кода, чтобы их серверы не облагались налогом так сильно. Я не слишком уверен в сравнительном тестировании между запросом файла размером 1 МБ одним попаданием или запросом файлов размером 10 100 КБ (предположительно 1MB / 10 = 100 КБ для примера), но что будет быстрее? Потенциально файл размером 1 МБ, НО меньшие запросы могут быть загружены синхронно, что означает, что каждый из этих 10 запросов может исходить от отдельного сервера / домена, что может сократить общее время загрузки.
Более того, например, домашние страницы Google, например, выдают массив данных JSON для виджетов, предположительно потому, что он компилирует всю эту информацию из различных источников, минимизирует ее, кэширует, затем помещает на страницу, а затем выполняет сборку функций javascript. макет (вычислительная мощность на стороне клиента, а не на стороне сервера).