Должен ли Github использоваться в качестве CDN для библиотек javascript?

Обслуживание библиотек javascript из CDN вместо вашего собственного сервера имеет огромные преимущества. Меньшая работа для вашего сервера, возможность для CDN иметь копию ближе к пользователю, чем ваш сервер, но, самое главное, хороший шанс, что ваш браузер пользователя уже кэшируется с этого URL-адреса. Последнее означает меньше общей работы для всех, так что это явно выигрыш во всем, и, скорее всего, чем чаще мы (разработчики) полагаемся на CDN для обслуживания нашего javascript.

Но популярные CDNs для JavaScript (Google, Microsoft, другие?) содержат только небольшое количество файлов. Для других у нас есть выбор для размещения их самостоятельно или... с использованием сервера управления версиями как своего рода CDN. Вряд ли Github или аналогичный имеет географически распределенный кеш файлов, оптимизированных для обслуживания в глобальном масштабе. Но если это обычная практика, тогда есть приличная вероятность, что браузер пользователя будет кэширован. Аргумент работы с загрузкой с наших серверов на github действителен только в том случае, если Github добровольно вызвался сделать это.

Итак, это обычная практика? Должны ли мы поощрять друг друга к этому? Означает ли Гитуб? Есть ли у них официальная политика?

Ответ 1

Вы не должны делать это для файлов JavaScript, если вам нужна производительность или совместимость с IE9.

GitHub не обслуживает свои "необработанные" файлы с заголовком с далеким будущим истечением. Без возможности межсайтового кэширования вы теряете самое большое преимущество использования общедоступного CDN для размещения вашего JavaScript. Фактически, использование GitHub в качестве CDN будет медленнее, чем просто размещение файлов на вашем собственном сервере после каждого первого запроса пользователя для файла (при условии, что вы правильно настроили кеширование на своем сервере).

Другая проблема заключается в том, что GitHub не служит для "сырых" файлов с заголовком типа содержимого, который соответствует фактическому типу MIME файла. В IE9 (и, возможно, в других браузерах/прокси-серверах/брандмауэрах/etc) файлы JavaScript, которые не отображаются с правильным типом контента, по умолчанию блокируются. Вы можете увидеть это в действии на демонстрационной странице BlockUI, например:

enter image description here

Ответ 3

Это было недавно спрошено в форумах поддержки github, и официальный ответ был в том, что это нормально.

Сказав это, я согласен с другими ответами: github никогда не должен был быть CDN, в то время как у Google и Microsoft есть определенная инфраструктура для этого.

Ответ 4

Это отлично подходит для прототипов/личных вещей, но для производства я бы посмотрел на:

http://www.cdnjs.com/

http://cachedcommons.org/ - больше не доступно

Ответ 5

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

Но все же - правила Google и MS - пространство для jQuery и jQuery шаблонов - поэтому я использую их для этого.