Google Page Speed говорит мне использовать кеширование браузера только для этого объекта:
https://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js (1 час)
Поскольку это доставляется с внешнего сервера, я думаю, я не могу сказать браузерам, чтобы они кешировали его, когда они посещают мой сайт? Я использую IIS7 и уже реализовал кеширование на 7 дней (согласно конфигурации, указанной здесь https://stackoverflow.com/questions/642954/iis7-cache-control),
Следовательно, следует ли мне копировать файл на свой веб-сервер, а затем ссылаться на него и кэшировать его там?
Измените URL-адрес в вашем HTML с
https://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js
к
//ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js
Пояснение:
Открытие //
вместо того https://
- это сокращение, поддерживаемое всеми основными браузерами, что означает «тот же протокол, что и на родительской странице». Другими словами, если ваш собственный сайт использует SSL, то jQuery будет обслуживаться через SSL. Если нет, то ваши пользователи будут использовать простой HTTP для jQuery и получат выгоду от более быстрой настройки соединения, которую имеет незашифрованный HTTP.
При обслуживании контента с полным номером версии - 1.6.0
часть - CDN Google будет автоматически использовать длинные заголовки кеширования. Использованный вами URL-адрес означает «новейший в серии 1.6» и обслуживается с более короткими заголовками кеширования, чтобы Google мог быстро обновлять, когда jQuery выпускает новую версию.
Вы можете убедиться, что это работает с Rex Swain's Средство просмотра HTTP если хочешь. (NB: эта программа просмотра HTTP не поддерживает //
сокращенно, но браузеры это делают.)
Здесь две точки зрения:
Используя URL-адрес Google, вы делаете ставку на то, что у клиентов уже есть файл в кешах своих браузеров (из-за того, что другие сайты ссылаются на тот же файл).
Используя свой собственный веб-сервер, вы можете настроить все самостоятельно, но вы знаете, что каждый новый посетитель должен будет скачивать файл у вас.
Это действительно интересный вопрос, над которым стоит подумать, но я лично предпочитаю обслуживать контент сам из-за использования заголовков с истекшим сроком действия / правил сжатия / перезаписи и т. Д.