Microsoft CDN для jQuery или Google CDN? [закрытый]

Я пытаюсь не использовать тернарный оператор для записи вложенных условий. Это игнорирует удобочитаемость и не обеспечивает дополнительного значения по использованию условного выражения.

, Только если это может соответствовать на одной строке, и это совершенно ясно, что это означает, я использую его:

$value = ($a < 0) ? 'minus' : 'plus';
186
задан Ufuk Hacıoğulları 14 December 2011 в 04:13
поделиться

9 ответов

Обновление на основе комментариев:

Краткая версия: Это не имеет большого значения, но может зависеть от того, что они размещают. Все они размещают разные вещи: Google не размещает jQuery.Validate, Microsoft не размещает jQuery-UI, с 2016 года они размещают !!, Microsoft предлагает свои скрипты, которые в противном случае обслуживались бы через ScriptResource.axd и более простая интеграция (например, ScriptManager с ASP.Net 4.0 ).

Важное примечание: Если вы создаете приложение для интрасети, держитесь подальше от подхода CDN. Неважно, кто его размещает, если только вы не находитесь на очень перегруженном внутреннем сервере, никакой CDN не даст вам большей производительности, чем локальный Ethernet 100 МБ / 1 ГБ. Если вы используете CDN для строго внутреннего приложения, вы re ухудшает производительность . Правильно установите заголовки срока действия кэша и игнорируйте CDN, существующие только в интрасети.

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

В проекте, над которым я сейчас работаю, используются обе CDN, что лучше всего подходит для нашего решения. На это влияет несколько факторов. Пользователи со старым браузером , вероятно, по-прежнему делают 2 одновременных запроса на домен , как рекомендовано в спецификации HTTP . Это н' Это проблема для всех, кто запускает что-то прилично новое, что поддерживает конвейерную обработку (каждый текущий браузер), но, основываясь на другом факторе, мы также снимаем это ограничение, по крайней мере, в отношении javascript.

CDN Google, который мы используем для:

CDN Microsoft, который мы используем для:

Наш сервер:

  • Combined.js? V = 2.2.0.6190 (Major.Minor.Iteration.Changeset)

Поскольку часть нашего процесса сборки объединяет и минимизирует весь пользовательский JavaScript, мы делаем это с помощью специального диспетчера скриптов. который включает в себя выпускную или отладочную (неминифицированную) версии этих скриптов в зависимости от сборки. Поскольку Google не t размещать пакет проверки jQuery, это может быть недостатком. MVC включает / использует это в своей версии 2.0, так что вы можете полностью полагаться на CDN Microsoft для всех ваших нужд, и все это автоматически через ScriptManager .

Единственный другой аргумент, который можно привести, это быть DNS временами, за это приходится платить с точки зрения скорости загрузки страницы. В среднем: Просто потому, что он использовался больше (примерно дольше) ajax.googleapis.com , скорее всего, будет возвращен DNS раньше, чем ajax.microsoft.com просто потому, что локальный DNS-сервер с большей вероятностью получит запрос на него (это первый пользователь в зоне штрафа). Это очень второстепенная вещь, и ее следует рассматривать только в том случае, если производительность чрезвычайно важна, вплоть до миллисекунды.
(Да: Я понимаю, что этот момент противоречит тому, что я использую обе CDN, но в нашем случае время DNS намного затмевается временем ожидания на javascript / происходящей блокировке)

Наконец, если вы не смотрели на это, один из лучшие инструменты - Firebug и некоторые плагины для него: Page Speed ​​ и YSlow . Если вы используете CDN, но ваши страницы каждый раз запрашивают изображения из-за отсутствия заголовков кеша, вы упускаете низко висящий плод. Панель Firebug Net может быстро дать вам быстрый анализ времени загрузки вашей страницы, а Page Speed ​​/ YSlow может предложить несколько хороших советов, которые помогут.

один из лучших инструментов - Firebug и некоторые плагины для него: Page Speed ​​ и YSlow . Если вы используете CDN, но ваши страницы каждый раз запрашивают изображения из-за отсутствия заголовков кеша, вы упускаете низко висящий плод. Панель Firebug Net может быстро дать вам краткую разбивку времени загрузки вашей страницы, а Page Speed ​​/ YSlow может предложить несколько полезных советов в помощь.

один из лучших инструментов - Firebug и некоторые плагины для него: Page Speed ​​ и YSlow . Если вы используете CDN, но ваши страницы каждый раз запрашивают изображения из-за отсутствия заголовков кеша, вы упускаете низко висящий плод. Панель Firebug Net может быстро дать вам краткую разбивку времени загрузки вашей страницы, а Page Speed ​​/ YSlow может предложить несколько полезных советов в помощь.

151
ответ дан 23 November 2019 в 05:49
поделиться

Это, вероятно, не имеет значения, но вы можете проверить это с помощью некоторого A / B-тестирования. Отправьте половину вашего трафика в один CDN, а половину - в другой, и настройте профилирование для измерения отклика. Я считаю более важным иметь возможность легко переключаться в случае, если у одного или другого есть серьезные проблемы с недоступностью.

11
ответ дан 23 November 2019 в 05:49
поделиться

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

3
ответ дан 23 November 2019 в 05:49
поделиться

Я бы использовал оба!

Поскольку хостинг Google JQuery существует намного дольше, шансы, что люди уже будут кэшировать его, намного выше, чем у Microsoft, поэтому я

Лично я бы использовал что-то вроде этого -

if (typeof jQuery == 'undefined') {  
    // jQuery is not loaded  

  document.write("<scr" + "ipt type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js\"></scr" + "ipt>");
        }
} else {
    // jQuery is loaded
}

(Не уверен, что это на 100% работает, но я просто собирался написать идею, а не пример - здесь упоминается JQuery, размещенный в Google, а не Один от Microsoft, ссылку найти не удалось)

-3
ответ дан 23 November 2019 в 05:49
поделиться

Вы обязательно должны использовать Google CDN для jQuery (и это исходит от разработчика, ориентированного на Microsoft.)

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

88
ответ дан 23 November 2019 в 05:49
поделиться

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

20
ответ дан 23 November 2019 в 05:49
поделиться

Одним из незначительных вещей, чтобы рассмотреть, что обе компании предлагают немного разные «дополнительные» библиотеки:

В зависимости от ваших потребностей это может быть уместно.

18
ответ дан 23 November 2019 в 05:49
поделиться

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

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>    
<script type="text/javascript">
    !window.jQuery && document.write('<script src="/scripts/jquery-1.4.2.min.js"><\/script>')
</script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/jquery-ui.min.js" type="text/javascript"></script>
<script type="text/javascript">
    !window.jQuery.ui && document.write('<script src="/scripts/jquery-ui-1.8.2.min.js"><\/script>')
</script> 
7
ответ дан 23 November 2019 в 05:49
поделиться

Мой ответ немного отличается от других, я выберу Microsoft, если вам нужен валидатор jquery, который нужен почти всем, если вы используете jquery.

HTTP-соединение Microsoft CDN поддерживает функцию Keep-Alive, что является большим плюсом, когда вы запрашиваете несколько элементов.

Итак, если вам нужна проверка jquery, используйте Microsoft CDN, даже если вам нужен jquery ui, используйте Microsoft, потому что Google не поддерживает keep-alive, поэтому каждый запрос выполняется сам по себе. так что смешивание таким образом - плюс. Если вы используете Microsoft только для валидатора, тогда вы выполняете отдельное соединение с сервером Google для каждого запроса.

2
ответ дан 23 November 2019 в 05:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: