Каковы преимущества использования google.load ('jQuery', ...) по сравнению с прямым включением URL-адреса размещенного скрипта? - PullRequest
38 голосов
/ 16 октября 2008

Google размещает некоторые популярные библиотеки JavaScript по адресу: http://code.google.com/apis/ajaxlibs/

По данным Google:

Самый мощный способ загрузки библиотек - использование google.load () ...

Каковы реальные преимущества использования

google.load("jquery", "1.2.6")

против

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>

Ответы [ 7 ]

31 голосов
/ 04 ноября 2008

Кроме того, что Google может объединять несколько файлов по запросу, нет никаких преимуществ для использования google.load. Фактически, если вы знаете все библиотеки, которые вы хотите использовать (скажем, просто jQuery 1.2.6), вы, возможно, заставляете браузер пользователя выполнять одно ненужное HTTP-соединение. Поскольку весь смысл использования хостинга Google состоит в том, чтобы уменьшить потребление полосы пропускания и время отклика, лучшее решение - если вы просто используете 1 библиотеку - это напрямую вызвать эту библиотеку.

Кроме того, если ваш сайт будет использовать какие-либо SSL-сертификаты, вы хотите запланировать это, вызвав скрипт через соединение HTTPS от Google. Нет недостатка в вызове сценария https со страницы http, но вызов сценария http со страницы https вызовет больше неясных проблем отладки, чем вы могли бы подумать.

4 голосов
/ 16 октября 2008
  1. Позволяет динамически загружать библиотеки в вашем коде, куда вы хотите.
  2. Поскольку он позволяет вам напрямую переключаться на новую версию библиотеки в javascript, не заставляя вас перестраивать / изменять шаблоны по всему сайту.
3 голосов
/ 30 декабря 2008

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

Не говоря уже о том, что динамическая загрузка всегда полезна. Особенно для сглаживания начальной загрузки сайта. Сокращение первоначального «времени загрузки сайта» до минимума - это то, с чем каждый веб-дизайнер ведет тяжелую борьбу.

3 голосов
/ 16 октября 2008

Это позволяет Google изменить URL (но не может, так как метод URL уже установлен)

Теоретически, если вы выполните несколько google.load (), Google может связать их в один файл, но я не думаю, что это реализовано.

1 голос
/ 16 октября 2008

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

Кроме того, метод google.load ускорит отображение начальной страницы. В противном случае рендеринг страницы будет зависать до тех пор, пока файл не будет загружен, если вы включите теги сценария в свой HTML-код.

0 голосов
/ 14 мая 2009

Если бы вы написали кучу JavaScript, который использовал библиотеку, только когда происходит определенное событие, вы могли бы подождать, пока событие произойдет, чтобы загрузить библиотеку, что позволяет избежать ненужных HTTP-запросов для тех, кто на самом деле не запускает событие. Однако в случае таких библиотек, как Prototype + Scriptaculous, которые загружают более 300 КБ кода JavaScript, это нецелесообразно.

0 голосов
/ 14 мая 2009

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

Редактировать: Да, по крайней мере, при использовании тегов прямого сценария для местоположения, библиотека javascript будет кэшироваться, если кто-то уже вызвал библиотеку из Google (например, если она была включена другим сайтом где-то). *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...