Статистика использования javascript-библиотек и CDN

    Вы когда-нибудь задумывались над такими вопросами:
    • Как мир относится к технологии CDN для загрузки библиотек?
    • Сколько успешных сайтов написано на Wordpress?
    • Какие скрипты чаще всего разработчики загружают из Google CDN?
    • На сколько популярен jQuery?


    А я вот задумался.
    И не просто задумался, а сделал маааленькое исследование.
    И написал маленькое расширение для хрома, которое, возможно, сделает жизнь лучше или сломает интернеты.
    Результаты внутри.


    Выводы для ленивых, или TL;DR;


    1. 10% из 300 000 самых популярных сайтов используют Wordpress.
    2. Популярные сайты, использующие jQuery, переходят на подключение библиотеки из CDN. С каждым годом правильных ребят всё больше.
    3. Самые популярные версии jQuery в мире: 1.7.x, 1.8.x, 1.9.1, 1.10.2.
    4. jQuery 1.7.x лидирует с большим отрывом: каждая 4ая подключенная jquery имеет версию 1.7.1 или 1.7.2
    5. Google, jQuery и Cloudflare — самые популярные CDN.
    6. 89% всех загрузок с Google CDN — это jquery.


    С чего всё началось, или прелюдия



    Я вот призадумался — почему браузеры не добавляют популярные js-библиотеки в свои дистрибутивы? Ведь CDN — это очень хорошо, один урл для ресурса, кеширование, все дела. Но ещё лучше вообще не загружать статические файлы, а иметь их сразу в браузере.

    Как ответ на несправедливость судьбы был изготовлен сей образец расширениестроения, который призван ускорять интернеты.

    Но нельзя же просто выдвинув пару гипотез и «запилив» прототип успокоиться и почивать на лаврах: мозг требует доказательств, фактов и весёлой движухи (да, имеено так я отношусь к интересным исследованиям, хотя в процессе подготовки данных движухи как таковой было мало).

    Зачем исследуем?


    Итак, есть несколько идей:
    • Вся статика из CDN можеть быть безболезненно помещена в браузер, т.к. она не модифицируются и вообще перманентна.
    • Если много много людей будет грузить статику из браузера, не посылая запросы на сервера CDN, то всем будет хорошо.
    • Если хранить локально все распространённые статические файлы (читай — js библиотеки) и предположить, что сайты пишут хорошие программисты, которые не модифицируют минимизированные либы типа jquery-1.7.2.min.js, то такие файлы — перманентны и к ним применимы п.1 и п.2


    Эти идеи требовали подтверждения. А в ходе реализации расширения я столкнулся с дополнительными вопросами:
    • Правда ли, что jQuery — самый популярный скрипт?
    • Какая доля скриптов подключается к сайтам из CDN?
    • Какие версии jQuery используют люди?
    • Попадают ли минифицированные библиотеки, подключаемые со своих серверов, под нужный паттерн в нужном количестве?


    Что исследуем?


    Изначально я хотел использовать Common Crawl корпус. Но в виду того, что этот зверь весит 81 Тб, и учитывая количество времени и денег, которое придётся потратить на его анализ, зверь был оставлен в покое.

    Чуть позже я наткнулся на замечательную статью, в которой автор исследовал интернеты как раз по той теме, которая была мне нужна.
    Проблема была в том, что нужных ответов в статье я не нашёл, но нашёл нужные инструменты!

    Исследование


    Для нужным мне ответов я использовал датасет httparchive. Это набор данных краулера, опращивающего сайты из TOP 300 000 сервиса Alexa. Т.е. можно сказать, что это огромная куча самых популярных сайтов интернета.

    Я скачал себе самый свежий датасет — результаты опроса сайтов за 1 марта 2014 года.
    Ниже я приведу результаты исследования и запросы, которые я использовал для их получения.
    Вы можете сравнить мои результаты с результатами, полученными годом ранее.

    Количество сайтов, грузящих jQuery из CDN

    Скрытый текст
    SELECT "jquery" AS name,
    count(distinct(pageid)) AS count,
    (100*count(distinct(pageid))/290835) AS percent 
    FROM requests WHERE pageid <= 14802750 AND pageid >= 14489007
    AND url LIKE "%//ajax.googleapis.com/ajax/libs/jquery/%"
    


    Имя Количество %
    jquery 59977 20.6223

    Каждый год количество сайтов, которые используют различные CDN-решения для подключения jQuery, растёт. Это означает, что прогресс не стоит на месте и люди осознают всю крутость такого решения.

    Популярность различных версий jQuery из Google CDN


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

    • Некоторые сайты используют «короткий формат» версий, к примеру //ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js. На сегодняшний день этот формат соответствует jquery-1.9.1. Я учитываю это в итоговых данных.
    • Wordpress добавляет к статике параметр?ver=wpversion, которые влияет на группировку по урлу.
    • При изучении частоты версий нам нет разницы, какой протокол используется — http или https.

    Скрытый текст
    select SUBSTRING(
    	url FROM POSITION("/libs/jquery/" IN url) + 13 
    	FOR 
    		LOCATE("/jquery", url, POSITION("/libs/jquery/" IN url) + 13) - (POSITION("/libs/jquery/" IN url) + 13) 
    	) as version, 
    count(distinct(pageid)) as count,
    (100*count(distinct(pageid))/59977) as percent 
    from requests where pageid >= 14489007 and pageid <= 14802750 
    and url LIKE "%//ajax.googleapis.com/ajax/libs/jquery/%.min.js" 
    group by version order by count desc;
    


    Версия Число включений %
    1.7.2 8938 14.9024
    1.7.1 6842 11.4077
    1.8.3 5670 9.4536
    1.9.1 5533 9.2252
    1.10.2 5244 8.7434
    1.8.2 3832 6.3891
    1.4.2 3673 6.1240
    1.3.2 2519 4.1999
    1.5.2 2297 3.8298
    1.6.4 1987 3.3129
    1.4.4 1985 3.3096
    1.6.2 1644 2.7411
    1.6.1 1395 2.3259
    1.5.1 1160 1.9341
    1.9.0 964 1.6073
    1.8.1 880 1.4672
    1.10.1 868 1.4472
    1.8.0 803 1.3388
    2.0.3 508 0.8470
    1.2.6 449 0.7486
    1.7.0 403 0.6719
    1.4.1 382 0.6369
    1.11.0 363 0.6052
    1.4.3 357 0.5952
    2.0.0 246 0.4102
    1.6.0 204 0.3401
    1.6.3 193 0.3218
    1.3.1 112 0.1867
    1.5.0 104 0.1734
    1.4.0 83 0.1384
    1.10.0 79 0.1317
    2.0.2 74 0.1234
    2.1.0 68 0.1134
    1.3.0 42 0.0700
    2.0.1 19 0.0317
    1.2.3 13 0.0217

    В мире jQuery наблюдается интересный тренд — версия 1.7.х лидирует из года в год с огромным отрывом.

    Самые популярные CDNы, раздающие js-библиотеки.

    Параметр Число % всех сайтов
    Общее число CDN-запросов 78160 26.8743

    Скрытый текст
    select "Google"as name, count(distinct(pageid)) as count,
    (100*count(distinct(pageid))/78160) as percent 
    from requests where pageid >= 14489007 and pageid <= 14802750 
    and url LIKE "%//ajax.googleapis.com/ajax/libs/%" 
    UNION
    select "Yandex" as name,  count(distinct(pageid)) as count,
    (100*count(distinct(pageid))/78160) as percent 
    from requests where pageid >= 14489007 and pageid <= 14802750 
    and url LIKE "%//yandex.st/%" 
    UNION
    select "Microsoft" as name,  count(distinct(pageid)) as count,
    (100*count(distinct(pageid))/78160) as percent 
    from requests where pageid >= 14489007 and pageid <= 14802750 
    and url LIKE "%//ajax.aspnetcdn.com/ajax/%" 
    UNION
    select "JsDelivr" as name, count(distinct(pageid)) as count,
    (100*count(distinct(pageid))/78160) as percent 
    from requests where pageid >= 14489007 and pageid <= 14802750 
    and url LIKE "%//cdn.jsdelivr.net/%" 
    UNION
    select "Cloudflare" as name, count(distinct(pageid)) as count,
    (100*count(distinct(pageid))/78160) as percent 
    from requests where pageid >= 14489007 and pageid <= 14802750 
    and url LIKE "%//cdnjs.cloudflare.com/ajax/libs/%" 
    UNION
    select "jQuery" as name, count(distinct(pageid)) as count,
    (100*count(distinct(pageid))/78160) as percent 
    from requests where pageid >= 14489007 and pageid <= 14802750 
    and url LIKE "%//code.jquery.com/%"
    group by name order by count desc;
    


    CDN Count Percent
    Google 67671 86.5801
    jQuery 9222 11.7989
    Cloudflare 3996 5.1126
    Yandex 2379 3.0438
    Microsoft 1300 1.6633
    JsDelivr 324 0.4145

    Как мы видим, львиная доля ресурсов подключается из Google CDN.
    Давайте теперь посмотрим на профиль Google CDN. Будет интересно, но результат предсказуем.

    Профиль загрузки скриптов из Google CDN


    Скрытый текст
    select "jquery" as name,count(distinct(pageid)) as count,
    (100*count(distinct(pageid))/67198) as percent 
    from requests WHERE pageid <= 14802750 AND pageid >= 14489007
    and url like "%//ajax.googleapis.com/ajax/libs/jquery/%"
    UNION
    select "jquerymobile" as name,count(distinct(pageid)) as count,
    (100*count(distinct(pageid))/67198) as percent 
    from requests WHERE pageid <= 14802750 AND pageid >= 14489007
    and url like "%//ajax.googleapis.com/ajax/libs/jquerymobile/%"
    UNION
    select "angularjs" as name,count(distinct(pageid)) as count,
    (100*count(distinct(pageid))/67198) as percent 
    from requests WHERE pageid <= 14802750 AND pageid >= 14489007
    and url like "%//ajax.googleapis.com/ajax/libs/angularjs/%"
    UNION
    select "chrome-frame" as name,count(distinct(pageid)) as count,
    (100*count(distinct(pageid))/67198) as percent 
    from requests WHERE pageid <= 14802750 AND pageid >= 14489007
    and url like "%//ajax.googleapis.com/ajax/libs/chrome-frame/%"
    UNION
    select "dojo" as name,count(distinct(pageid)) as count,
    (100*count(distinct(pageid))/67198) as percent 
    from requests WHERE pageid <= 14802750 AND pageid >= 14489007
    and url like "%//ajax.googleapis.com/ajax/libs/dojo/%"
    UNION
    select "ext-core" as name,count(distinct(pageid)) as count,
    (100*count(distinct(pageid))/67198) as percent 
    from requests WHERE pageid <= 14802750 AND pageid >= 14489007
    and url like "%//ajax.googleapis.com/ajax/libs/ext-core/%"
    UNION
    select "jqueryui" as name,count(distinct(pageid)) as count,
    (100*count(distinct(pageid))/67198) as percent 
    from requests WHERE pageid <= 14802750 AND pageid >= 14489007
    and url like "%//ajax.googleapis.com/ajax/libs/jqueryui/%"
    UNION
    select "mootools" as name,count(distinct(pageid)) as count,
    (100*count(distinct(pageid))/67198) as percent 
    from requests WHERE pageid <= 14802750 AND pageid >= 14489007
    and url like "%//ajax.googleapis.com/ajax/libs/mootools/%"
    UNION
    select "prototype" as name,count(distinct(pageid)) as count,
    (100*count(distinct(pageid))/67198) as percent 
    from requests WHERE pageid <= 14802750 AND pageid >= 14489007
    and url like "%//ajax.googleapis.com/ajax/libs/prototype/%"
    UNION
    select "scriptaculous" as name,count(distinct(pageid)) as count,
    (100*count(distinct(pageid))/67198) as percent 
    from requests WHERE pageid <= 14802750 AND pageid >= 14489007
    and url like "%//ajax.googleapis.com/ajax/libs/scriptaculous/%"
    UNION
    select "swfobject" as name,count(distinct(pageid)) as count,
    (100*count(distinct(pageid))/67198) as percent 
    from requests WHERE pageid <= 14802750 AND pageid >= 14489007
    and url like "%//ajax.googleapis.com/ajax/libs/swfobject/%"
    UNION
    select "webfontloader" as name,count(distinct(pageid)) as count,
    (100*count(distinct(pageid))/67198) as percent 
    from requests WHERE pageid <= 14802750 AND pageid >= 14489007
    and url like "%//ajax.googleapis.com/ajax/libs/webfont/%"
    order by count;
    


    Script Count Percent
    jquery 59977 89.2541
    jqueryui 12437 18.5080
    webfontloader 4624 6.8812
    swfobject 2347 3.4927
    prototype 993 1.4777
    scriptaculous 787 1.1712
    mootools 445 0.6622
    angularjs 353 0.5253
    dojo 186 0.2768
    chrome-frame 75 0.1116
    ext-core 16 0.0238
    jquerymobile 1 0.0015

    jQuery — действительно самый популярный скрипт. Обходит остальные библиотеки на порядок!..
    Заметили интригующий результат? jQuery mobile подключен только на одном сайте!
    Это не ошибка, я проверил трижды :)

    Примерное влияние Wordpress

    В ходе анализа данных я заметил устойчивый паттерн, вносящий шум в результаты. А именно непонятный параметр в запросах к статике: ?ver=xxx.
    Как оказалось, в основном это проделки Wordpress! Он добавляет к статике параметр с версией.
    К тому же, есть еще несколько характерных паттернов — некоторые сайты добавляют кеш бастинг ко всем ресурсам, включая статику из CDN.

    Вернемся к вордпрессу. Я обнаружил интересные закономерности, которые позволяют ввести простую эвристику и оценить, на сколько распространён вордпресс:
    • Wordpress использует плагин jquery-migrate. Этот плагин — довольно редкий и используется для того, чтобы вернуть устаревшие фичи jQuery из старых версий в версии 1.9+.
    • Как упоминалось выше, Wordpress добавляет параметр с версией к ресурсам.

    Используя эти знания, получаем следующее.
    Скрытый текст
    select count(distinct(pageid)) as count,
    (100*count(distinct(pageid))/290835) as percent 
    from requests where pageid >= 14489007 and pageid <= 14802750 
    and url LIKE "%jquery-migrate%.js\\?ver=%"
    or url LIKE "%jquery-migrate%.js\\?v=%";
    


    Число сайтов % от общего количества
    29819 10.2529

    Как видите — более 10% самых посещаемых сайтов в мире используют wordpress.

    P.S. В ходе исследования ни один сайт не пострадал. А вот расширение может что-нибудь сломать. Если вы его все же решите использовать и обнаружите такое поведение — напишите мне в личку.
    P.P.S. Если у вас есть интересные вопросы, то задавайте их в комментариях. Я буду обновлять статью и добавлять ответы.
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 41

      +5
      Реквестирую таблицу популярности CDN'ов. Любопытно, на каком месте jsdelivr.com.
        0
        На шестом месте, в статье это есть.
          0
          Прошу прощения, проглядел.

          Добавлю количество JS-библиотек, размещаемых на каждой CDN:

          Google: популярность 86.5801, 12 библиотек
          jQuery: популярность 11.7989, 6 библиотек
          Cloudflare: популярность 5.1126, 671 библиотека с возможностью добавления
          Yandex: популярность 3.0438, 18 библиотек
          Microsoft: популярность 1.6633, 18 библиотек
          JsDelivr: популярность 0.4145, 940 библиотек с возможностью добавления

          Сам пользуюсь JsDelivr.
        +1
        Тоже задумывался над вопросом хранения js/css на клиенте, на первый взгляд решением был бы cache manifest, но там запрос разрешения, это смущает. А так, если подумать -десяток мегабайт самых востребованных библиотек могли бы сэкономить прилично траффика, в глобальном отношении.
          0
          Судя по данным, которые я получил из датасета — даже одного jQuery будет достаточно.
          Я основные идеи с клиентским кешем вложил в расширение. Посмотрим, какую статистику с него можно будет снять.
          А как только расширения появятся в мобильных браузерах — это будет победа :)
            0
            AFAIK он и так в кэше браузера более чем у 90% пользователей.
              +1
              Да вот неизвестно, что творится в кеше конкретного пользователя, он может быть забит чем угодно, и довольно часто обновляться, если его размер сильно ограничен.
                0
                Я где-то видел исследование. Если не полные идиоты пишут кэши браузеров, jquery в них должен быть почти всегда.
                  +1
                  Это к вопросу о приоритете частоиспользуемых файлов? Ну, вероятно да. Но опять же — в одной этой статье 3 десятка разных версий jQuery, а популярны из них только первые 5-7.
            +1
            Есть предположение, что jQuery Mobile динамически подключается сервером на основании HTTP-заголовком от мобильных браузеров, из-за этого скорее всего такая статистика. Попробуйте «подделать» User-Agent под мобильный Safari, например — это может ощутимо изменить статистику по jQuery Mobile.
              0
              Да, мне кажется вы правы. У httparchive есть два караулена — один на десктопном IE, а второй на базе iPhone 4. Я не брал результаты мобильного краулера.
              +1
              Тоже задумывался над вопросом локального хранилища популярных библиотек таких как jQuery. Но потом понял, то такое хранилище уже есть и предлагает много больше, чем я мог себе представить. Называется оно — кеш браузера. В самом деле, если браузеру приходится опрашивать CDN в поисках нужной библиотеки для сайта, для другого сайта она с большей степенью вероятности уже будет в кеше (естественно, если оба сайта обращаются к CDN по одному url). Уже потом я нашёл статью уважаемого Dave Ward aka Encosia, которая называется 6,953 reasons why I still let Google host jQuery for me. В этом труде 2010 года приводится аналогичная статистика и один из выводов:
              sites must reference exactly the same CDN URL in order to obtain the cross-site caching benefit
                0
                Ну и еще один вывод: разработчики должны грамотно писать софт.
                Однако в реальном мире всё не так.

                Возвращаясь к кешу — CDN и кеширование просто рождены друг для друга.
                Однако многие до сих пор подключают скрипты локально и не умеют пользовать заголовки для кеша. И если браузерное размещение ресурсов из CDN погоды особо не сыграет (хотя и 100% безопасно), то возможность не загружать ресурсы самого хоста может стать киллер-фичей.
                +7
                У расширения действительно есть киллер-фича: одна из [многих] причин локального размещения скриптов — возможность работы над своей копией сайта без подключения к Интернету. После установки расширения можно указывать внешние URL'ы и ничего не бояться.
                  0
                  И сразу просьба: очень хочется настройки для отключения кнопки твита. Как человека с установленным Ghostery она меня очень пугает.
                    0
                    Я её скорее всего вообще выпилю, полому что эстетически она там ни к селу, ни к городу. Да и функционально я ее еще не заставил полноценно работать.

                    А вот за юзкейс с отсутствием интернетов спасибо, я это даже не предполагал.
                  0
                  Я дико извиняюсь, но как вы считали проценты в «Профиле загрузки скриптов из Google CDN»?
                  image
                    +6
                    Мы считали проценты точно так же, как сайт Сочи2014: у нас возможны «двойные» ответы. т.е. 1 сайт грузит 2-3 скрипта из набора одновременно. Процент в каждом случае считается относительно всех сайтов, грузящих скрипты из Google CDN, а не относительно уникальных запросов. Т.е. суммирование по процентам тут не покатит.
                    +2
                    Хочу предложить интересные ссылки по теме статьи.
                    Статистика по использованию CMS и javascript (переключайте вкладки) в российских национальных зонах:
                    statonline.ru/metrics/webapp_cms?tld=ru — в качестве репрезентативной выборки выступают сайты в зоне ru
                    statonline.ru/metrics/webapp_cms?tld=rf — в качестве репрезентативной выборки выступают сайты в зоне рф
                    statonline.ru/metrics/webapp_cms?tld=su — в качестве репрезентативной выборки выступают сайты в зоне su
                    Статистика по использованию CMS в зоне ru за 2013 год:
                    stat.nic.ru/reports/whist-ru/cms2013.html
                    На следующих страницах в качестве репрезентативной выборки используются первые 10 миллионов участников рейтинга Alexa:
                    w3techs.com/technologies/overview/javascript_library/all
                    w3techs.com/technologies/overview/content_management/all
                      +1
                      У меня вопрос:
                      2.Популярные сайты, использующие jQuery, переходят на подключение библиотеки из CDN. С каждым годом правильных ребят всё больше.

                      Не совсем понимаю, почему CDN это более правильно чем просто jquery на том же сервере, что и сайт?
                        0
                        Потому что, загруженные данные браузер кэширует и не загружает повторно.
                        Когда пользователь будет посещать разные сайты, на которых jquery подключается с CDN, то этот jquery будет загружен всего один раз.
                        А на каждом новом сайте со «своим» jquery, он будет загружаться заново.
                        Есть и другие фичи связанные с огрничением подключений к одному домену, задержки между пользователем и серверами вашими и cdn. Но это погуглите.
                          0
                          У меня как-то так случилось, что провайдер блокировал Майкрософтовский CDN уж не знаю почему. Все сайты майкрософта грузились по несколько минут (ждали JS-библиотеку). Это единственная причина, почему я избегаю CDN сейчас.
                            +3
                            <script>//ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.0.min.js</script>
                            <script>
                            window.jQuery || document.write('<script src="/path/to/your/jquery"></script>');
                            </script>
                            


                            Соответственно, если jQuery не обнаруживается, то цепляем из другого источника. Хоть локального, хоть другого cdn.
                          0
                          С другой стороны, jquery в проде часто прилепляют к остальным скриптам. Не уверен что в этом случае имеет смысл цеплять jquery отдельно из CDN.
                            0
                            Имеет смысл не прикреплять такие библиотеки к остальному барахлу. Кеш рулит, не нужно его обходить!
                              –1
                              Остальное барахло все равно надо загрузить, и оно точно также попадет в кэш. В такой ситуации CDN может с какой-то вероятностью убрать 40 килобайт из общих, скажем, 200 килобайт скриптов.
                                0
                                Если вы не контролируете заголовки статики лично, то я бы не утверждал, что «оно так же попадёт в кеш». К тому же, любое изменение «вымывает» кеш полностью.
                        0
                        Кстати, а те ребята, которые придумывают различные стандарты Веба, не думали ли про усовершенствование системы кеширования?

                        Первое, что приходит в голову (по теме статьи) – сделать кеш браузера единым для различных сайтов, по ETag, например. Потенциально, есть узкое место в безопасности, но этот вопрос можно решить.
                          0
                          Единым его сделать не получится, потому что людям нужно обновлять кеш независимо друг от друга.
                          CDN как раз и делают кеш единым, кстати :)
                          +1
                          >> Популярные сайты, использующие jQuery, переходят на подключение библиотеки из CDN.
                          У моего провайдера случился заскоко и половина сайтов стала разваленными и недоступными. Оказывается многие CDN просто перестали грузится.
                          Задумался.
                            +3
                            Добавлю свои 5 копеек.

                            Во-первых, пора великим и ужасным «распространенным движкам» (это и WP, и Битрикс) переставать указывать версии css и js файлов в коде. Это, конечно, костыль, но, не будь его, ускорение многих бы сайтов свелось к установке (и должной настройке) mod_pagespeed (http://code.google.com/p/modpagespeed/). Оно уже одно сразу оправдывает усилия.

                            Во-вторых, библиотеки, откуда бы они не отдавались, имеют проблему множественности версий. Загрузите в кеш только все версии jQuery, Bootstrap,… (подставьте здесь сами все библиотеки и фреймворки, что знаете), да еще в версии «просто» и "-min" каждый файл — и вот уже наш кеш и забит. Добавьте в кеш еще столь модные загружаемые с Google Fonts шрифты — опа, а библиотеки-то уже и выдавлены из кеша!

                            В-третьих, давате пожалеем мобильный юзеров. У них на планшетах и телефонах кеши буквально в мегабайты (и это сейчас, раньше еще меньше было), им вообще всегда все качать приходится с нуля. Зато лишний DNS запрос, связь с хостом и прочее добавляет некоторое время к времени загрузки страницы.

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

                            Пока же… остается перехватывать код страницы на выводе из CMS, в нем все "?ver=7896789" убирать, и тогда уже отдавать этот код на обработку в минификатор/оптимизатор (pagespeed или еще что). Тогда можем на что-то надеяться. А без этого, боюсь, у нас только академическое исследование сферического CDN-а в вакууме ).

                            P.S. Ах да, не забываем про CDN-ы «имени CMS» (возьмем тот же Битрикс-CMS). Вы думаете, он мало забивает кеш теми же библиотеками, но уже со своих URL-ов, специфических для сайтов?
                              –1
                              Зря боитесь.
                              Как показывают цифры выше — достаточно десятка версий самых популярных библотек (jQuery, Boostrap, Angular, Backbone, ...) для того, чтобы наступило массовое счастье.
                              Мой экстеншен уже сейчас имеет все версии jQuery, популярные версии boostrap и font awesome, скрипты статистики гугла и яндекса и соцкнопки твиттера и гугла. Всё это добро в ужатом виде весит 1.65 мб, в распакованном виде 4.5 мб. Злые птицы весят примерно 30 мб.
                              Сможет ряд пользователей отказаться от трижды пройденной игры ради заметного ускорения интернета? Думаю да.

                              Все ваши проблемы с вымыванием кеша вообще — решаются моим расширением. Надеюсь, такой механизм когда-нибудь попадёт в браузеры хотя бы частично. Можно сказать, что я «изобрёл» аналог shared virtual memory для фронтэнд-библиотек.

                                +1
                                «Ваши бы слова...» :)

                                Было бы, конечно, удачно, чтобы браузеры из коробки умели такое «грамотное» использование библиотек. Но, или чтобы ваш плагин хотя бы оказался на первых позициях в списке рекомендованных плагинов под каждый из браузеров.

                                Скажите, а версии под FF (хотя бы), под Оперу (новую, видимо), IE ждать? А то Хром — Хромом, но масса людей
                                  0
                                  Плюсики, установки, твиты, обзоры, отзывы. Всё в ваших руках в том числе ;)
                                    0
                                    Версию под FF ждать сразу после того, как я определюсь с надобностью экстеншена вообще :)
                                    Под IE — сильно сомневаюсь.
                                    Под Оперу и Сафари — вероятно. По мере адаптации Extension API.
                              • UFO just landed and posted this here
                                  0
                                  Вот скажите: зачем грузить разные версии одной и той же библиотеки?
                                  Yandex на главной грузит jQuery 1.8.3, а на странице поиска 1.7.2.
                                  Т.е. если я первый раз зашел на яндекс, а потом что-то искал, то получаю две версии.
                                    0
                                    Потому что над разными модулями работают разные люди и исторически модули писались в разное время с разными либами в основе.
                                    А потом поверх «багов» старой версии jQuery начали писать свои костыли, завязываясь на реализацию конкретной версии.
                                    А потом еще и API в jQuery изменился, и проапгрейдить либу становится крайне затратно.

                                    Это болезнь любого крупного проекта.
                                      0
                                      Я бы понял, если бы это был какой-нибудь стартап.
                                      Все-таки яндекс.
                                      И дай бог бы еще разные проекты. Там допустим Я.Диск или Я.Деньги, а то страница одного и того же сайта по сути.
                                      Ну да ладно.
                                      Просто для коммерческого сайта ориентированного на трафик с поиска Яндекса, встает дилемма — какую версию с CDN Яндекса использовать.

                                  Only users with full accounts can post comments. Log in, please.