Облегченная библиотека JS и CDN, размещенная в Google

Когда скорость загрузки страницы является приоритетом, лучше использовать минимальную легковесную библиотеку javascript (размещенную на CDN) или лучше использовать что-то вроде jQuery, размещенное на CDN Google, которое браузер, скорее всего, уже загрузил?

Редактировать: что мой вопрос действительно сводится к тому, перевешивает ли эффект кэширования между сайтами использование jQuery, размещенного на CDN Google, перевешивает преимущества использования сверхлегкой библиотеки, также на CDN.

3 ответа

Решение

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

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

Да, если вы используете CDN, например Google, для jQuery, скорее всего, браузер должен кэшировать библиотеку, а также Google имеет количество серверов в зависимости от местоположения, поэтому вам не нужно об этом беспокоиться.

Снижение латентности

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

В случае CDN библиотек AJAX от Google это означает, что любые пользователи, не находящиеся рядом с вашим сервером, смогут загружать jQuery быстрее, чем если бы вы заставили их загрузить его с произвольно расположенного сервера. Существует несколько сервисов CDN, сравнимых с сервисами Google, но цены на них трудно превзойти! Только эта выгода может решить проблему, но есть даже больше.

Увеличение параллелизма

Чтобы избежать ненужной перегрузки серверов, браузеры ограничивают количество соединений, которые могут быть установлены одновременно. В зависимости от того, какой браузер, этот предел может составлять всего два подключения на имя хоста. Использование Google AJAX Libraries CDN устраняет один запрос на ваш сайт, позволяя параллельно загружать больше вашего локального контента. Это не имеет гигантского значения для пользователей с браузером с шестью одновременными подключениями, но для тех, кто все еще использует браузер, который допускает только два, разница заметна.

Лучшее кеширование

Потенциально самое большое преимущество использования CDN библиотек Google AJAX заключается в том, что вашим пользователям вообще не нужно загружать jQuery. Независимо от того, насколько хорошо оптимизирован ваш сайт, если вы размещаете jQuery локально, ваши пользователи должны загрузить его хотя бы один раз. Каждый из ваших пользователей, вероятно, уже имеет десятки идентичных копий jQuery в кеше своего браузера, но эти копии jQuery игнорируются при посещении вашего сайта.

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

Это создает мощный эффект "кеширования между сайтами", от которого выигрывают все сайты, использующие CDN. Поскольку Google CDN предоставляет файл с заголовками, которые пытаются кэшировать файл до одного года, этот эффект действительно имеет удивительный потенциал. Поскольку многие тысячи сайтов с наибольшим количеством посещений в Интернете уже используют Google CDN для обслуживания jQuery, вполне возможно, что многие из ваших пользователей никогда не сделают ни одного HTTP-запроса на jQuery при посещении сайтов с использованием CDN. Даже если кто-то посетит сотни сайтов, использующих одну и ту же версию jQuery, размещенную в Google, ему потребуется загрузить ее только один раз!

Лучше использовать библиотеку, которая наилучшим образом соответствует потребностям вашего приложения и вашей команды разработчиков. Сверхлегкая библиотека может сэкономить несколько сотен миллисекунд времени загрузки, но может в конечном итоге стоить вам часов разработки, если у вашей команды значительно больше опыта работы с jQuery/MooTools/Dojo и т. Д.

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

Другие вопросы по тегам