Есть несколько способов включить jQuery и jQuery UI, и мне интересно, что люди используют?
- Google JSAPI
- Сайт jQuery
- ваш собственный сайт / сервер
- другой CDN
Недавно я использовал Google JSAPI, но обнаружил, что для настройки SSL-соединения требуется много времени или даже только для разрешения google.com. Я использовал следующее для Google:
<script src="https://www.google.com/jsapi"></script>
<script>
google.load('jquery', '1.3.1');
</script>
Мне нравится идея использовать Google, чтобы он кэшировался при посещении других сайтов и чтобы экономить трафик с нашего сервера, но если он продолжает оставаться медленной частью сайта, я могу изменить включение.
Что ты используешь? Были ли у вас какие-либо проблемы?
Изменить: только что посетил сайт jQuery, и они используют следующий метод:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
Edit2: вот как я включил jQuery без проблем за последний год:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
Разница заключается в удалении http:
. Удаляя это, вам не нужно беспокоиться о переключении между http и https.
источник
src
на более простой / безопасный / более быстрый синтаксис, который вы используете сейчас? Ваш ответ стал в основном каноническим, и оба изменения помогут людям быстро получить то, к чему они пришли.Ответы:
Без сомнения, я предпочитаю, чтобы JQuery обслуживался серверами Google API. Я не использовал метод jsapi, поскольку не использую другие API Google, однако, если это когда-либо изменится, я подумаю об этом ...
Во-первых: серверы API Google распределены по всему миру, а не по местоположению моего отдельного сервера. Более близкие серверы обычно означают более быстрое время отклика для посетителя.
Второе: многие люди предпочитают размещать JQuery в Google, поэтому, когда посетитель заходит на мой сайт, он может уже иметь скрипт JQuery в своем локальном кэше. Предварительно кэшированный контент обычно означает более быстрое время загрузки для посетителя.
В-третьих: моя хостинговая компания взимает плату за используемую пропускную способность. Нет смысла тратить 18 КБ на сеанс пользователя, если посетитель может получить тот же файл в другом месте.
Я понимаю, что доверяю Google, чтобы обслуживать правильный файл сценария, быть онлайн и доступным. До этого момента я не был разочарован использованием Google и буду продолжать эту настройку, пока не будет смысла не делать этого.
Стоит отметить одну вещь ... Если на вашем сайте есть несколько защищенных и небезопасных страниц, вы можете динамически изменить источник Google, чтобы избежать обычного предупреждения, которое вы видите при загрузке небезопасного контента на защищенную страницу:
Вот что я придумал:
ОБНОВЛЕНИЕ 9/8/2010 - Некоторые предложения были сделаны, чтобы уменьшить сложность кода путем удаления HTTP и HTTPS и просто использовать следующий синтаксис:
Кроме того, вы также можете изменить URL-адрес, чтобы он отображал основной номер jQuery, если вы хотите убедиться, что загружена последняя основная версия библиотек jQuery:
Наконец, если вы не хотите использовать Google и предпочитаете jQuery, вы можете использовать следующий исходный путь (имейте в виду, что jQuery не поддерживает соединения SSL):
источник
document.write()
используется? простое<script src="..."></script>
прекрасно разместить в шапке. → @ Dscoduc: ← это не будет быстрее, это просто уберет это предупреждение. Если ваш сайт использует защищенный https и вы извлекаете незашифрованный контент (напримерhttp://googleapis
), вы получите это предупреждение. Что будет немного быстрее, если вы используете только http, но вы ссылаетесь на негоhttps://googleapis
, с «безопасной» кодировкой есть некоторые издержки. Таким образом, ссылка наhttp://googleapis
будет немного быстрее.Одна из причин, по которой вам может потребоваться размещение на внешнем сервере, заключается в том, чтобы обойти ограничения браузера для конкретных подключений к конкретному серверу.
Однако, учитывая, что используемый вами файл jQuery, скорее всего, будет меняться не очень часто, кеш браузера сработает и по большей части станет спорным.
Вторая причина разместить его на внешнем сервере - снизить трафик на ваш собственный сервер.
Однако, учитывая размер jQuery, скорее всего, это будет небольшая часть вашего трафика. Возможно, вам следует попытаться оптимизировать ваш фактический контент.
источник
Размер jQuery 1.3.1 min составляет всего 18 КБ. Я не думаю, что это слишком много, чтобы спросить при начальной загрузке страницы. Это будет кэшировано после этого. В результате я принимаю это сам.
источник
Если вы хотите использовать Google, прямая ссылка может быть более отзывчивой. У каждой библиотеки есть путь, указанный для прямого файла. Это путь jQuery
Просто перечитайте свой вопрос, есть ли причина, по которой вы используете https? Это скрипт тега Google списки в их примере
источник
Я бы не хотел, чтобы какой-либо публичный сайт, который я разрабатывал, зависел от какого-либо внешнего сайта, и поэтому я бы сам размещал jQuery.
Готовы ли вы к отключению на вашем сайте, когда другой (Google, jquery.com и т. Д.) Выходит из строя? Меньше зависимостей - это ключ.
источник
Плюсы: Хост на Google имеет преимущества
Минусы:
Интересно, можно ли ВКЛЮЧИТЬ из Google, а затем проверить наличие какой-нибудь глобальной переменной или что-то такое, а также отсутствие загрузки с вашего сервера?
источник
Здесь есть несколько вопросов. Во-первых, указанный вами метод асинхронной загрузки:
есть пара вопросов. Теги скрипта приостанавливают загрузку страницы, пока они извлекаются (при необходимости). Теперь, если они медленно загружаются, это плохо, но jQuery маленький. Настоящая проблема описанного выше метода заключается в том, что, поскольку загрузка jquery.js происходит независимо для многих страниц, они завершат загрузку и визуализацию до загрузки jquery, поэтому любой стиль jquery, который вы сделаете, будет видимым изменением для пользователя .
Другой способ:
Попробуйте несколько простых примеров, например, создайте простую таблицу и измените фон ячеек на желтый с помощью метода setOnLoadCallback () против $ (document) .ready () со статической загрузкой jquery.min.js. Второй метод не будет иметь заметного мерцания. Первая будет. Лично я думаю, что это не очень хороший пользовательский опыт.
В качестве примера запустите это:
Вы (должны) увидеть появившуюся таблицу, а затем строки станут желтыми.
Вторая проблема с методом google.load () заключается в том, что он содержит только ограниченный диапазон файлов. Это проблема для jquery, так как она сильно зависит от плагина. Если вы попытаетесь включить плагин jquery с
<script src="...">
тегом, иgoogle.load()
плагин, вероятно, потерпит неудачу с сообщениями «jQuery не определен», потому что он еще не загружен. Я действительно не вижу способа обойти это.Третья проблема (с любым методом) заключается в том, что они представляют собой одну внешнюю нагрузку. Предполагая, что у вас есть несколько плагинов и ваш собственный код Javascript, у вас есть минимум два внешних запроса для загрузки вашего Javascript. Возможно, вам лучше получить jquery, все соответствующие плагины и собственный код и поместить его в один минимизированный файл.
Из Ajax библиотек API Вы должны использовать Google для хостинга? :
Наконец, у вас есть потенциальная проблема, связанная с тем, что браузер-параноик помечает запрос как своего рода попытку XSS. Обычно это не проблема с настройками по умолчанию, но в корпоративных сетях, где пользователь может не иметь контроля над тем, какой браузер он использует, не говоря уже о настройках безопасности, у вас могут быть проблемы.
Так что, в конце концов, я не вижу, что я по крайней мере использую API Google AJAX для jQuery (более «полные» API - это отдельная история), за исключением публикации здесь примеров.
источник
В дополнение к людям, которые советуют размещать его на собственном сервере, я предложил хранить его в отдельном домене (например, static.website.com), чтобы браузеры могли загружать его отдельно от других потоков контента. Этот совет также работает для всех статических вещей, например, изображений и CSS.
источник
Я должен проголосовать -1 за библиотеки, размещенные в Google. Они собирают данные в стиле Google Analytics, оборачивая их вокруг этих библиотек. Как минимум, я не хочу, чтобы клиентский браузер делал больше, чем я его просил, и тем более всего остального на странице. Хуже того, это «новая версия» Google - не быть злым - использовать ненавязчивый JavaScript для сбора большего количества данных об использовании.
Примечание: если они изменили эту практику, супер. Но в последний раз, когда я рассматривал возможность использования их размещенных библиотек, я отслеживал исходящий http-трафик на моем сайте, и я не ожидал увидеть периодические обращения к серверам Google.
источник
Я мог бы быть старой школы об этом, но я все еще нахмурился на хотлинкинг. Возможно, Google является исключением, но в целом, это просто хорошие манеры для размещения файлов на вашем собственном сервере.
источник
Я добавлю это в качестве причины для локального размещения этих файлов.
Недавно узел в Южной Калифорнии на TWC не смог разрешить домен ajax.googleapis.com (только для пользователей с IPv4), поэтому мы не получаем внешние файлы. Это было прерывистым вплоть до вчерашнего дня (теперь оно является постоянным.) Поскольку оно было прерывистым, у меня были тонны проблем, устраняющих проблемы пользователей SaaS. Потратил бесчисленные часы, пытаясь отследить, почему у некоторых пользователей не было проблем с программным обеспечением, а у других возникали проблемы. В моем обычном процессе отладки я не имею привычки спрашивать пользователя, отключен ли у него IPv6.
Я наткнулся на проблему, потому что я сам использовал этот конкретный «маршрут» к файлу, а также использую только IPV4. Я обнаружил проблему с инструментами разработчиков, сообщающими мне, что jquery не загружается, затем начал делать трассировки и т. Д., Чтобы найти реальную проблему.
После этого я, скорее всего, никогда не вернусь к файлам, размещенным извне, потому что: Google не нужно останавливаться, чтобы это стало проблемой, и ... любой из этих узлов может быть скомпрометирован с перехватом DNS и доставкой вредоносных js вместо фактического файла. Всегда думал, что я в безопасности, так как домен Google никогда не выйдет из строя, теперь я знаю, что любой узел между пользователем и хостом может быть точкой отказа.
источник
Я просто включил последнюю версию с сайта jQuery: http://code.jquery.com/jquery-latest.pack.js Он соответствует моим потребностям, и мне никогда не придется беспокоиться об обновлении.
РЕДАКТИРОВАТЬ: для крупного веб-приложения, безусловно, контролировать его; скачать его и обслуживать его самостоятельно. Но для моего личного сайта мне было все равно. Вещи волшебным образом не исчезают, они обычно устаревают первыми. Я не отставал от этого достаточно, чтобы знать, что изменить в будущих выпусках.
источник
Вот некоторый полезный ресурс, надеюсь, поможет вам выбрать свой CDN. MS недавно добавила новый домен для доставки библиотек через CDN.
Старый формат: http://ajax.microsoft.com/ajax/jQuery/jquery-1.5.1.js Новый формат: http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.js
Это не должно отправлять все куки для microsoft.com. http://www.asp.net/ajaxlibrary/cdn.ashx#Using_jQuery_from_the_CDN_11
Вот некоторая статистика о наиболее популярных технологиях, используемых в сети во всех технологиях. http://trends.builtwith.com/
Надежда может помочь вам выбрать.
источник
Если я ответственен за «живой» сайт я лучше быть в курсе всего , что происходит и в моем сайте. По этой причине я сам размещаю версию jquery-min либо на том же сервере, либо на статическом / внешнем сервере, но так или иначе, где только я (или моя программа / прокси) могу обновить библиотеку после проверки / тестирования каждого изменения
источник
В голове:
Конец тела:
источник
Я размещаю его вместе с другими моими js-файлами на своем собственном сервере, и в этот момент объединяю и минимизирую их (с помощью django-compresser, здесь, но не в этом суть), чтобы они служили только одним js-файлом со всем сайтом необходимо положить в это. В любом случае вам нужно будет обслуживать свои собственные файлы js, поэтому я не вижу смысла не добавлять туда дополнительные байты jquery - еще несколько килобайт гораздо дешевле для передачи, чем больше запросов. Вы ни от кого не зависите, и как только ваши минимизированные js будут кэшированы, вы тоже будете очень быстры.
При первой загрузке решение на основе CDN может победить, поскольку вы должны загрузить дополнительные килобайты jquery со своего собственного сервера (но без дополнительного запроса). Я сомневаюсь, что разница заметна, хотя. И затем, при первой загрузке с очищенным кешем, ваше собственное размещенное решение, вероятно, всегда будет намного быстрее из-за большего количества запросов (и запросов DNS), необходимых для получения jquery CDN.
Интересно, как этот момент почти никогда не упоминается, и как CDN, кажется, захватывают мир :)
источник