Что такое CDN Best Practices?

Недавно я начал использовать CDN Rackspace Cloudfiles (Limelight), о котором у меня есть несколько вопросов:

  • Я использую jQuery, jQuery UI и jQuery инструменты в дополнение к пользовательскому JS-коду. Кроме того, мой сайт написан в ASP.Net, что означает, что есть какой-то JSP-код, созданный ASP.Net.

В настоящее время я сделал, что я объединил все js (включая код jquery), за исключением ASP.Net, сгенерированного JS, в один файл. Я размещаю это на CD Rackspace.

Мне интересно, просто ли получить файлы jQuery, jQuery UI из размещенного в Google CDN (который, как я подозреваю, очень хорошо работал бы в обслуживании этих файлов, так как они будут уже в кэше многих пользователей)?

Это означало бы один дополнительный HTTP-запрос, поэтому я не уверен, поможет ли он.

  1. Сейчас у меня есть несколько контейнеров для моих активов. Например, в Rackspace у меня есть 3 контейнера: JS, CSS и Images. Субдомен URL для всех 3 отличается. Это приведет к штрафу за производительность? Должен ли я использовать один контейнер (и, следовательно, один домен для CDN)?

  2. Есть ли способ загрузить MS ASP.Net JS из MS CDN? Будет ли это удар производительности по вышеуказанному вопросу?

Ответ 1

# 1 способ ускорить ваш сайт - это минимизировать HTTP-запросы (Best Practices from Yahoo). Поэтому, если вы уже обслуживаете свои комбинированные файлы CSS из CDN, вы это делаете. Обслуживание некоторых из Google и некоторых из ваших CDN добавляет запросы.

Вы не можете объединить CSS и JS в один файл, к сожалению, поэтому вы будете застревать с одним запросом каждый для CSS и JS. Возможно, вы захотите проверить, что они поданы в GZIPPED.

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

Возможно, имеет смысл обслуживать файлы из отдельных доменов, так как это увеличивает количество параллельных загрузок. (Другая статья от yahoo на этом). Если ваши js и css - это всего лишь два файла, вы, вероятно, можете разместить это на одном домене, а ваши изображения - на другом.

Ответ 2

Является ли, безусловно, лучше иметь ваши активы в другом домене.

браузеры загружают веб-ресурсы один за другим или последовательно с одного хоста. Они не начнут запрашивать и загружать следующий актив до тех пор, пока они не будут завершены с предыдущим из того же домена. Таким образом, удвоение количества хостов или доменов может ускорить скорость загрузки примерно на 100%, поскольку браузеры могут одновременно загружать файлы из двух разных доменов.

если на вашем веб-сайте включен cookie или сеанс, браузер будет отправлять cookie сессии каждый раз, когда он делает запрос в домен, какой тип бесполезен, потому что его статический контент - сервер не нуждается в файле cookie вообще, чтобы служить статический контент, такой как изображения. Это не только трата пропускной способности, но и трата времени связи. Чтобы этого избежать, откройте весь статический контент из домена, который не поддерживается cookie.

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