Лучше объединить и минимизировать JavaScript или использовать Google CDN? - PullRequest
26 голосов
/ 10 июня 2010

Я создаю сайт, который в настоящее время использует JavaScript из нескольких источников:

Группа 1: API Карт Google v3 (размещено в Google)
Группа 2: jQuery & swfobject (размещено в Google CDN)
Группа 3: Несколько плагинов jQuery и файлы javascript, не относящиеся к jquery (размещены на моем сервере)

Я использую инструмент Джастина Этереджа SquishIt для объединения и минимизации всех файлов javascript, которые размещены на моем сервере (группа 3).

Мне интересно, будет ли сайт «чувствовать» пользователей быстрее, если бы я размещал файлы в (группа 2) локально, чтобы их можно было объединить со всеми остальными файлами в (группа 3) и требовать только один HTTP запрос для групп 2 и 3. Однако это означает, что я не получаю преимущества от Google CDN .

У кого-нибудь есть советы по этому вопросу?

EDIT: Кроме того, как бы я пришел к числовому ответу на этот вопрос? Это возможно?

Ответы [ 4 ]

8 голосов
/ 10 июня 2010

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

Мое мнение таково, что лучше использовать CDN, поскольку он минимизирован.и, скорее всего, файл вообще не нужно загружать.Объедините и уменьшите все остальное.

Мне было бы интересно узнать общее число попаданий в кэш для этих файлов библиотеки Google CDN.

3 голосов
/ 10 июня 2010

Вероятно, не будет иметь большого значения.

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

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

3 голосов
/ 10 июня 2010

Использование CDN и объединение / минимизация служат различным целям. Если вы можете использовать оба.

  1. Объединение файлов Javascript - уменьшает количество http-запросов со страницы
  2. Сокращение файлов Javacsript - уменьшает размер файла
  3. Использование Cdn - улучшает задержку.

Если вы можете найти способ использовать оба, это здорово

Хотя объединение файлов Javascript может превратиться в более сложное дело, чем просто свести их к минимуму.

Вы можете использовать другие CDN, если хотите (Amazon CloudFront)

1 голос
/ 10 июня 2010

Я объединяю, минимизирую ( используя замыкание ) и использую (akamai) CDN.Но самый важный совет для веб-производительности:

  1. использовать никогда не истекающий кеш
  2. асинхронная загрузка: вы можете использовать этот скрипт для загрузки ваших внешнихJS файлы

    (function() {
      setTimeout(function(){
        var sc = document.createElement('script'); sc.type = 'text/javascript'; sc.async = true;
        sc.src = 'youfile';
       (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(sc);
      },0);
    })();
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...