Откуда Вы включаете библиотеку jQuery? Google JSAPI? CDN?

Вы можете использовать операцию reduce:

Arrays.stream(info).reduce((s1, s2) -> s1.size + s2.size);

Или sum, как показано @nullpointer:

Arrays.stream(info).mapToInt(StackInfo::getSize).sum();
242
задан Chris Morgan 23 July 2013 в 12:58
поделиться

13 ответов

Без сомнения я принимаю решение вручить JQuery серверами Google API. Я не пошел с jsapi методом, так как я не усиливаю никакой другой Google API, однако если бы это когда-нибудь изменялось затем, то я рассмотрел бы это...

Сначала: серверы API Google распределяются во всем мире вместо моего единственного местоположения сервера: Более близкие серверы обычно означают более быстрое время отклика для посетителя.

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

Треть: Моя хостинговая компания обвиняет меня за используемую пропускную способность. Никакой смысл, использующий 18k на сеанс пользователя, если посетитель может получить тот же файл в другом месте.

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

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

Вот то, что я придумал:

<script type="text/javascript">
    document.write([
        "\<script src='",
        ("https:" == document.location.protocol) ? "https://" : "http://",
        "ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js' type='text/javascript'>\<\/script>" 
    ].join(''));
</script>

9/8/2010 ОБНОВЛЕНИЯ - Некоторые предложения были сделаны уменьшить сложность кода путем удаления HTTP и HTTPS и просто использовать следующий синтаксис:

<script type="text/javascript">
    document.write("\<script src='//ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js' type='text/javascript'>\<\/script>");
</script>

, Кроме того, Вы могли также изменить URL для отражения jQuery главное число, если бы Вы хотели удостовериться, что последняя Основная версия библиотек jQuery была загружена:

<script type="text/javascript">
    document.write("\<script src='//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js' type='text/javascript'>\<\/script>");
</script>

Наконец, если бы Вы не хотите использовать Google и предпочли бы jQuery, Вы могли бы использовать следующий исходный путь (имейте в виду, что jQuery не поддерживает соединения SSL):

<script type="text/javascript">
    document.write("\<script src='http://code.jquery.com/jquery-latest.min.js' type='text/javascript'>\<\/script>");
</script>
153
ответ дан Dscoduc 23 November 2019 в 03:14
поделиться

Если я ответственен за 'живой' сайт, я лучше знаю обо всем, что продолжается и в мой сайт. По этой причине я размещаю версию минуты jQuery сам или на том же сервере или на статическом/внешнем сервере, но так или иначе местоположение, где только я (или моя программа/прокси) могу обновить библиотеку после наличия, проверяло/тестировало каждое изменение

1
ответ дан 23 November 2019 в 03:14
поделиться

Я просто включаю последнюю версию от сайта jQuery: http://code.jquery.com/jquery-latest.pack.js Это удовлетворяет моим потребностям, и я никогда не должен волноваться об обновлении.

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

2
ответ дан geowa4 23 November 2019 в 03:14
поделиться

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

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

4
ответ дан jro 23 November 2019 в 03:14
поделиться

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

3
ответ дан Matt Howell 23 November 2019 в 03:14
поделиться

Здесь существует несколько проблем. Во-первых, асинхронный метод загрузки Вы указали:

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
  google.load('jquery', '1.3.1');
  google.setOnLoadCallback(function() {
    // do stuff
  });
</script>

имеет несколько проблем. Теги script приостанавливают загрузку страницы, в то время как они получены (при необходимости). Теперь, если они не спешат загружаться, это плохо, но jQuery является маленьким. Настоящая проблема с вышеупомянутым методом состоит в том, что, потому что загрузка jquery.js происходит независимо для многих страниц, они закончат загружаться и рендеринг, прежде чем jQuery загрузился так, любой jQuery, разрабатывающий Вас, делают будет видимое изменение для пользователя .

другой путь:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>

Попытка некоторые простые примеры как, имейте простую таблицу и измените фон ячеек к желтому с setOnLoadCallback () метод по сравнению с $ (документ) .ready () со статической загрузкой jquery.min.js. Второй метод не будет иметь никакого значимого мерцания. Первое будет. Лично я думаю, что это не хороший пользовательский опыт.

Как пример выполняет это:

<html>
<head>
  <title>Layout</title>
  <style type="text/css">
    .odd { background-color: yellow; }
  </style>
</head>
<body>
<table>
  <tr><th>One</th><th>Two</th></tr>
  <tr><td>Three</td><td>Four</td></tr>
  <tr><td>Five</td><td>Six</td></tr>
  <tr><td>Seven</td><td>Nine</td></tr>
  <tr><td>Nine</td><td>Ten</td></tr>
</table> 
<script src="http://www.google.com/jsapi"></script>
<script>
  google.load("jquery", "1.3.1");
  google.setOnLoadCallback(function() {
    $(function() {
      $("tr:odd").addClass("odd");
    });
  });
</script>
</body>
</html>

(необходимо) видеть, что таблица появляется, и затем строки идут желтые.

вторая проблема с google.load () метод - то, что это только размещает ограниченный диапазон файлов. Это - проблема для jQuery, так как это - чрезвычайно сменный зависимый. При попытке включать плагин jQuery с <script src="..."> тег и google.load(), то плагин, вероятно, перестанет работать с сообщениями "jQuery, не определяется", потому что он еще не загрузился. Я действительно не вижу путь вокруг этого.

третья проблема (с любым методом) состоит в том, что они - одна внешняя загрузка. Принятие Вас имеет некоторые плагины и Ваш собственный код JavaScript, который Вы до минимума двух внешних запросов для загрузки JavaScript. Вы - вероятно, более обеспеченное получение jQuery, все соответствующие плагины и Ваш собственный код и помещение его в один уменьшенный файл.

Библиотеки Ajax Google From Should You Use API для Хостинга? :

относительно времени загрузки, Вы на самом деле загружаете два сценария - jsapi сценарий и mootools сценарий (сжатая версия сверху). Таким образом, это - два соединения, а не один. По моему опыту, я нашел, что время загрузки было на самом деле в 2-3 раза медленнее, чем загрузка из моего собственного персонального общего сервера, даже при том, что это прибывало из Google, и моя версия сжатого файла была несколькими K больше, чем Google. Это, даже после того, как файл загрузился и (по-видимому) кэшировался. Таким образом для меня, так как пропускная способность не имеет значения очень, не будет иметь значение.

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

Так в конце я не могу действительно видеть, что я использую Google AJAX API для jQuery, по крайней мере (более "полные" API являются другой историей до некоторой степени), очень кроме отправить примеры здесь.

6
ответ дан cletus 23 November 2019 в 03:14
поделиться

Профессионалы: Хост на Google обладает преимуществами

  • , Вероятно, быстрее (их серверы более оптимизированы)
  • , Они обрабатывают кэширование правильно - 1 год (мы изо всех сил пытаемся быть разрешенными внести изменения для разбираний в заголовках на наших серверах)
  • Пользователи, у которых уже была ссылка на размещенную Google версию на другом домене, уже имеют файл в их кэше

Недостатки:

  • Некоторые браузеры могут рассматривать его как междоменный XSS и запретить файл.
  • Особенно пользователи, выполняющие плагин NoScript для Firefox

, интересно, можно ли ВКЛЮЧАТЬ от Google и затем проверить присутствие некоторой Глобальной переменной или somesuch, и если загрузка отсутствия из сервера?

6
ответ дан Kristen 23 November 2019 в 03:14
поделиться

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

Вы готовы иметь отключение электричества на Вашем сайте, когда другой (Google, jquery.com, и т.д.) понижается? Меньше зависимостей является ключом.

8
ответ дан slacy 23 November 2019 в 03:14
поделиться

Если Вы хотите использовать Google, прямая ссылка может быть более быстро реагирующей. Каждой библиотеке перечислили путь для файла прямого доступа. Это - путь jQuery

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>

, Просто перечитывает Ваш вопрос, есть ли причина Ваш, используют https? Это - списки Google тега script в их примере

<script src="http://www.google.com/jsapi"></script>
14
ответ дан Дамян Станчев 23 November 2019 в 03:14
поделиться

jQuery 1.3.1 минуты только 18k в размере. Я не думаю, что это - слишком много хита для выяснения относительно начальной загрузки страницы. Это будет кэшироваться после этого. В результате я размещаю его сам.

14
ответ дан Mark Hurd 23 November 2019 в 03:14
поделиться

Одна причина, которую Вы могли бы хотеть разместить на внешнем сервере, состоит в том, чтобы работать вокруг ограничений браузера параллельных соединений с конкретным сервером.

Однако, учитывая, что файл jQuery Вы используете, не будет, вероятно, изменяться очень часто, кэш браузера втолкнет и выскажет то мнение, спорное по большей части.

Вторая причина разместить его на внешнем сервере состоит в том, чтобы понизить трафик к Вашему собственному серверу.

Однако, учитывая размер jQuery, возможности - это, будет небольшая часть Вашего трафика. Необходимо, вероятно, попытаться оптимизировать фактическое содержание.

19
ответ дан Franci Penov 23 November 2019 в 03:14
поделиться

В дополнение к людям, которых советы разместить его на собственном сервере, я предложил сохранить им на отдельном домене (например, static.website.com), чтобы позволить браузерам загружать его в отдельный от другого довольного поток. Эта подсказка также работает на весь статический материал, скажите изображения и CSS.

4
ответ дан Sergii 23 November 2019 в 03:14
поделиться

В заголовке:

  (function() {
    var jsapi = document.createElement('script'); jsapi.type = 'text/javascript'; jsapi.async = true;
    jsapi.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'www.google.com/jsapi?key=YOUR KEY';
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('head')[0]).appendChild(jsapi);
  })();

Конец текста:

<script type="text/javascript">
google.load("jquery", "version");
</script>
1
ответ дан 23 November 2019 в 03:14
поделиться
Другие вопросы по тегам:

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