Хостинг JavaScript-библиотек

Сегодня мы запустили новый сервис для веб-разработчиков — хостинг популярных JavaScript-библиотек на серверах Яндекса.

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

  • Снижается нагрузка на ваш сервер.
  • Браузеры, следуя рекомендациям спецификации HTTP 1.1, обычно устанавливают не более 2 одновременных соединений с одним хостом (в современных браузерах — 6). Библиотеки загружаются с домена Яндекса, поэтому не блокируют загрузку данных с вашего домена.
  • Правильное кэширование и использование gzip.
  • Если пользователь уже посещал какой-либо сайт, который использует библиотеки Яндекса, ему не надо будет заново загружать файлы на вашем сайте - они сохраняются в кэше.
  • При использовании нашего загрузчика вы получаете неблокирующую загрузку JS и Яндекс.Метрику в подарок.
  • Каждая библиотека доступна как в сжатом виде, так и в стандартном (версия для разработки). Например, последнюю версию jQuery можно загрузить по такому адресу: http://yandex.st/jquery/1.4.2/jquery.min.js

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

Новости проекта будут публиковаться в нашем клубе, там же вы можете задать вопросы и оставить отзывы.

Алексей Андросов и Леонид Хачатуров, ускоряем интернет
59 комментариев
А есть какой-то способ всегда забирать последнюю стабильную версию? Типа http://yandex.st/jquery/jquery.min.js?
только через лоадер
Весь смысл в том, что урл должен быть один. Иначе он будет плохо кэшироваться.
Аха, а последнюю стабильную можно делать через 302 found — тогда будет кэшироваться :-)
Все эти редиректы еще и поддерживать постоянно надо. Да и вообще, менять версис без ведома пользователя - зло, т.к. новые версии имеют свойство быть несовместимыми со старыми.
Ага, и закэшируется старая версия и всё потом упадёт нафиг :)
Это было бы слегка опрометчиво. Сделали вы сайт, допустим, он работает себе, хлеба не просит. А через пару лет в jQuery какое-нибудь API поменялось, придётся переделывать.
Ну, зачем нужна версия для больших проектов — я понимаю. А для домашней странички я бы вполне хотел такой редиректик :-)
маленькие странички ломаются от нового api точно также как и большие проекты
Хватит копировать всё у Google! Это не прикольно, поверьте! Совсем не прикольно..  :\
Сергей Смирнов
26 ноября 2015, 18:05
Предлагаете не перенимать удачные идеи из принципа?
Да. Согласен. Но у Google CDN слабо развит в России. И в нем нет Raphaёl.
Комментарий удалён
Не волнуйтесь, не забудем :)
А для Яндекса в этом какая польза?


Дополнительную статистику по сайтам? :)
Во-первых, мы сами этими библиотеками пользуемся. Теперь просто решили открыть к ним доступ для всех разработчиков. Во-вторых, если библиотеками будут пользоваться другие сайты, то Яндекс будет открываться быстрее и пользователю меньше трафик.
Спасибо!
И ещё вопрос. А почему вы не выставляете файлу заголовок Expires на много лет вперёд, например?
Ведь мы гарантированно знаем, что файл заданной версии никогда не изменится, а браузер всё равно будет спрашивать if-modified-since.
Выставляем.
$ wget -S yandex.st/jquery/1.4.2/jquery.min.js
--2010-03-15 19:22:53--  http://yandex.st/jquery/1.4.2/jquery.min.js
Распознаётся yandex.st... 77.88.21.159, 93.158.134.159, 213.180.204.159
Устанавливается соединение с yandex.st|77.88.21.159|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 
  HTTP/1.0 200 OK
  Connection: keep-alive
  Expires: Wed, 22 Jan 2020 16:23:21 GMT
  Cache-Control: max-age=311040000
  Vary: Accept-Encoding
  Content-Type: application/x-javascript
  Accept-Ranges: bytes
  ETag: "863973785"
  Last-Modified: Wed, 24 Feb 2010 17:14:30 GMT
  Content-Length: 72174
  Date: Mon, 15 Mar 2010 16:23:21 GMT
  Server: lighttpd/1.4.19
Длина: 72174 (70K) [application/x-javascript]
Saving to: «jquery.min.js»

100%[=======================================================================================================================================>] 72 174      --.-K/s   в 0,02s    

2010-03-15 19:22:53 (3,33 MB/s) - «jquery.min.js» saved [72174/72174]
Удалённый пользователь
26 ноября 2015, 18:05
Курл клевее Вгета ) $ curl -I yandex.st/jquery/1.4.2/jquery.min.js HTTP/1.1 200 OK Expires: Wed, 22 Jan 2020 23:23:56 GMT Cache-Control: max-age=311040000 Content-Type: application/x-javascript Accept-Ranges: bytes ETag: "863973785" Last-Modified: Wed, 24 Feb 2010 17:14:30 GMT Content-Length: 72174 Date: Mon, 15 Mar 2010 23:23:56 GMT Server: lighttpd/1.4.19
Генту лучше убунты! :)
Вы оба позорные ;)
$ telnet yandex.st 80
Trying 213.180.204.159...
Connected to yandex.st.
Escape character is '^]'.
GET /jquery/1.4.2/jquery.min.js HTTP/1.0        
Host: yandex.st

HTTP/1.0 200 OK
Connection: close
Expires: Thu, 23 Jan 2020 06:13:56 GMT
Cache-Control: max-age=311040000
Vary: Accept-Encoding
Content-Type: application/x-javascript
Accept-Ranges: bytes
ETag: "863973785"
Last-Modified: Wed, 24 Feb 2010 17:14:30 GMT
Content-Length: 72174
Date: Tue, 16 Mar 2010 06:13:56 GMT
Server: lighttpd/1.4.19

ps: Windows - рулит! :)

А почему из ExtJS только Core ?
ExtJS не распространяется под открытыми лицензиями.
GPL3 -- не открытая лицензия? 8-0
http://www.extjs.com/products/license.php Еxt JS распространяется под двойной лицензией. Одна из них коммерческая и есть правила для ее свободного использования. Мы не может гарантировать выполнения этих правил, поэтому не можем ее распространять.

$ curl -I yandex.st/jquery/1.4.2/jquery.min.js
HTTP/1.1 200 OK
Expires:
Wed, 22 Jan 2020 23:23:56 GMT
Cache-Control: max-age=311040000
Content-Type:
application/x-javascript
Accept-Ranges: bytes
ETag: "863973785"
Last-Modified:
Wed, 24 Feb 2010 17:14:30 GMT
Content-Length: 72174
Date: Mon, 15
Mar 2010 23:23:56 GMT
Server: lighttpd/1.4.19



 PR: wait...  I: wait...  L: wait...  LD: wait...  I: wait... wait...  Rank: wait...  Traffic: wait...  Price: wait...  CY: wait...  I: wait...  YCat: wait...  I: wait...  Top: wait...  I: wait...  L: wait...  C: wait...



А какие еще библиотеки есть и где можно их полный список увидеть?
Комментарий удалён
Leonid Khachaturov
26 ноября 2015, 18:07
Перейдем обязательно, но такой переход требует обстоятельного тестирования.
API не менялось, только добавлялись новые фишки, исправлялись баги и увеличивалась скорость. http://webscripts.softpedia.com/scriptViewChangelog/jQuery-Javascript-Library-Changelog-39111.html P.S. простите, не удержался:
Leonid Khachaturov
26 ноября 2015, 18:07
Не совсем так - http://jquery14.com/day-01/jquery-14, секция "Backwards-Incompatible Changes".
Эти изменения вряд ли нарушат работу, но все же: We’ve also written a plugin that provides backwards compatibility with every potentially-breaking change that we’ve made in 1.4.
RightJS будет?
Думаю, да. Где вы его используете?
В списке:
"Требуется для работы Prototype" -> "Требуется Prototype для работы"
Иначе упячка.
Leonid Khachaturov
26 ноября 2015, 18:07
Там написано "требует", а не "требуется", что меняет дело :)
1. какое отличие от гугла ( не камень в огород), просто хотел бы знать преимущества

2. яндекс с этого будет иметь статистику использования

3. метрику в подарок - я не понял о чем вы

4. сл. шаг будет гугло коде - типа яндекс коде - хостинг приложений, хотя наверно рановато еще это, вы с кодировками еще толком не разобрались))) ну это так не смог удержаться ?
Leonid Khachaturov
26 ноября 2015, 18:07
1. Если большинство ваших посетителей из России - с большой вероятностью доступ до нас будет быстрее, чем до Google. 2. Это вопрос? :) Да, будет. 3. Если вы используете наш загрузчик и зарегистрированы в Метрике, можно не подключать JS Метрики - просто укажите ваш ID в параметрах загрузчика.
1. есть Raphaёl и некоторые плагины для jQuery
Комментарий удалён
Здесь нет ошибки, это подключение по текущему протоколу.
...которое даёт в итоге двойную загрузку js'ок, между прочим
только для css-файлов в ie , впрочем http://www.stevesouders.com/blog/2010/02/10/5a-missing-schema-double-download/
Ростислав Дмитриев
26 ноября 2015, 18:07
Ваше сообщество попало в ТОП30 самых обсуждаемых тем в блогосфере.
Почитать текст со всеми комментариями по ссылке.
Это Ваш 3-й ТОПовый пост за последний год.
Посмотреть статистику автора можно в карточке топблогера.
Также можно подключать любые скрипты с любых других порталов, причем Я не берет обязательств, что доступ будет гарантирован всегда при любой нагрузке. Хорошо конечно, что официально разрешили :)
Давно хотела узнать: зачем для хранения многих файлов вы начали использовать домен yandex.st? Вот и сейчас библиотеки лежат на .st вместо .ru или хотя бы .com.
Виталий Харисов
26 ноября 2015, 18:07
st = static
Туда складываются статические неизменяемые файлы, которые можно закешировать в браузере «навечно» и для которых не нужны куки (они на этот домен не ставятся).
Спасибо. Так и знала, что есть какой-то особый ответ, который так сразу не заметен.
Есть ли какое нибудь приемущество в использовании библиотек от Яндекса чем библиотек от Google?
Скорость загрузки и т.п.?
для пользователей из России скорость загрузки будет выше
> мы запустили новый сервис

Откуда берутся новые сервисы ?
Понятно, что сначала оценивают аудиторию, затраты и прочие плюсы-минусы, а потом руководство принимает решение "разрабатывать" или "погодить". Но ведь и предварительные оценки кто-то должен запустить, причем этот кто-то уже решил оценивать именно хостинг JS-библиотек, а не инструкций по содержанию КРС.
Кто этот человек ?
Это человек — я.
То есть это вы решили, что было бы интерсно посчитать экономические характеристики таких сервисов как Афиша, Открытки, Деньги, Пробки, Словари ?
Простите, я, видимо, не понял ваш первый вопрос. Я принял решение, что надо сделать хостинг JS-библиотек, но я не понимаю, как это связано с другими сервисами. Уточните ваш вопрос, пожалуйста.
Кто именно решил, что было бы интересно посчитать экономические характеристики таких сервисов как Афиша, Открытки, Деньги, Пробки, Словари ?

Каждый из этих сервисов был в свое время новым (не вообще, конечно, а для Яндекса). Кому-то захотелось понять - будет ли он выгоден компании, кто-то сказал "А посчитайте аудиторию, клики-показы"

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

Простите, я все равно не понимаю. Запуск Хостинга JS-библиотек никак не связан с экономическими характеристиками других сервисов Яндекса. Может быть вы имеете в виду как принималось решение конкретно о запуске хостинга js-библиотек? Тогда могу сказать, что такое решение пришло прежде всего из-за необходимости единого и простого хранилища js-фреймворков для Яндекса. Потом мы уже поняли, что можем легко и без затрат открыть его для внешних пользователей. В общем случае нет единой методики для принятия таких решений. Методов очень много и для каждой конкретной идеи нужны свои. Это может быть как простой анализ популярности поисковых запросов, так и масштабное маркетинговое исследование.
> я все равно не понимаю
Вот где ужас-то.  В один прекрасный день приходит коллектив Яндекса на работу, а там - ВНЕЗАПНО - Афиша. Сидят люди, строчат что-то киношно-театральное, роют интернет, раскрашивают страницу сервиса "Афиша". Откуда взялись неизвестно, "давно здесь сидим".

> масштабное маркетинговое исследование
На колу мочало... Это исследование прводится не вследствие каких-то квантовых флуктуаций, кто-то дает команду "провести". Кто ?

Но ведь и этот кто-то не от фонаря назначает тему.
От кого сама тема приходит ? Причем это явно не генральный директор. Трудно представить, чтобы генеральный директор вдруг загорелся: "А давайте соорудим сервис Окрытки". Генеральные в Яндексе уже достаточно далеки от этих девачковых радостей.

Все это ясно из самых общих соображений, а спрашиваешь - "я не понимаю". Ладно.
Тогда КТО ПОНИМАЕТ ? Конкретно.
Идеи приходят от всех сотрудников яндекса, а также обычных пользователей. Потом анализируются, что-то воплощается в жизнь
> Идеи приходят... Потом анализируются
Идеи сами не ходят и не анализируются. Кто-то  кому-то их передает и предписывает проанализировать.

Вот вы - сотрудник. Пришла идея и по вашему распоряжению аналитический отдел (?) берет ее в работу ? Сомневаюсь.

Или вот я - обычный пользователь. К кому может прийти моя идея, если даже сотрудники не знают к кому обратиться ?
Leonid Khachaturov
26 ноября 2015, 18:07
Извините, но пока вы задаете вопросы таким тоном, рассчитывать на ответы по существу не стоит - не на базаре.
"Кто хочет делать, ищет возможности; кто не хочет, ищет повод."
Спасибо kasihh на информации, которую вы очень полезно для меня лично
Обновлено 16 марта 2017, 20:25