Для jQuery или нет для jQuery? - PullRequest
3 голосов
/ 14 мая 2010

Я предпочитаю добавлять практические идеи в сетевое сообщество, которое я развиваю, но, когда все начинает складываться, я беспокоюсь о времени загрузки.

  1. Действительно ли быстрее иметь пользователей? загрузить (надеюсь, кешированную) копию jquery из репозиториев Google?

  2. Использует ли jQuery для вызовов AJAX улучшить / снизить эффективность по сравнению с базовыми javascript xmlHTTP запросы?

  3. Есть ли практический способ сократить количество включенных скриптов? Например, я включил jQuery и jQuery UI от Google, сортировщик таблиц и плагин рычания.

Ответы [ 5 ]

7 голосов
/ 14 мая 2010

1. Действительно ли быстрее загружать (надеюсь, кэшированную) копию пользователя? jquery из репозиториев Google?

Это может быть, , если ваш компьютер не подключен к Интернету. Если это корпоративное приложение и скрипты доступны локально, я не могу представить необходимость использования серверов Google.

2. Использование jQuery для вызовов AJAX улучшает / снижает эффективность по сравнению с базовыми javascript xmlHTTP запросы?

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

3. Есть ли практический способ сократить количество включаемых скриптов? За Например, я включаю jQuery и jQuery Пользовательский интерфейс от Google, сортировщик таблиц и плагин рычания.

Нет, если вам нужны все эти возможности.

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

7 голосов
/ 14 мая 2010

1. Действительно ли быстрее загружать (надеюсь, кэшированную) копию jquery из репозиториев Google?

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

2.Использует ли jQuery для вызовов AJAX повышение / снижение эффективности по сравнению с базовыми запросами javascript xmlHTTP?

jQuery использует XmlHttpRequest внутри, так что это не будет быстрее. Это будет так же быстро, как реализация XmlHttpRequest в браузере.

3. Есть ли практический способ сократить количество включаемых скриптов? Например, я включил jQuery и jQuery UI от Google, сортировщик таблиц и плагин рычания.

Чтобы сократить количество скриптов, вам нужно объединить их все самостоятельно и разместить на своих собственных серверах / CDN. Google предоставляет только ограниченный набор популярных фреймворков AJAX .

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

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

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

1 голос
/ 14 мая 2010

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

Использование jQuery для вызовов ajax не более эффективно, чем выполнение их самостоятельно. Вы получаете то, что легче использовать готовую библиотеку.

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

1 голос
/ 14 мая 2010
  1. Если ваш сервер не ближе и быстрее, чем серверы Google (что весьма маловероятно, кроме как в интрасети), загрузка из Google всегда происходит быстрее.

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

  2. Не должно быть существенной разницы между вызовом jQuery $.ajax и необработанным XMLHTTPRequest. (Если вы не делаете миллионы вызовов AJAX, в этом случае у вас есть другие проблемы)
    Однако API jQuery гораздо проще в использовании.

  3. Вы можете вставить все ваши плагины jQuery в один (минимизированный) файл.
    Наилучший доступный в настоящее время минификатор - это Google Closure Compiler , за которым следует Microsoft AjaxMin .

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

В1. Действительно ли быстрее загружать (надеюсь, кэшированную) копию jquery из репозиториев Google?

Разве браузер просто не кеширует javascript после его первой загрузки? Я думаю, что это не имеет значения, если вы загружаете его с Google или с вашего собственного сервера.

Я предлагаю вам обслуживать свои собственные версии библиотеки jQuery, чтобы не было внезапных проблем, если в будущем обновлении jQuery выводит из эксплуатации функцию, которую вы использовали в приложении, которое вы написали 2 года назад. (если вы используете последнюю версию Google jQuery.js)

Q2: улучшает ли / снижает эффективность использования jQuery для вызовов AJAX по сравнению с базовыми запросами javascript xmlHTTP?

Никаких изменений эффективности здесь. Вам будет проще программировать.

В3: Есть ли практический способ сократить количество включенных скриптов? Например, я включил jQuery и jQuery UI от Google, сортировщик таблиц и плагин рычания.

Кого волнует количество включенных скриптов? Это не должно быть фактором в ваших дизайнерских решениях. Если вам это нужно, используйте его. Если нет, то не включайте его. Разместите все свои библиотеки на сервере, на котором запущено приложение, и перестаньте беспокоиться об этом.

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