Как стать автором
Обновить

Комментарии 48

Костыли-костылики:-) Есть же postMessage.
Если не ошибаюсь, то postMessage появился только во времена HTML5? Данный способ, думаю, будет работать даже в нецкейпе :)
Ибо такой же старый, как и «Нецкейп».
У меня в проекте используется postMessage для общения между разными доменами, но в рамках одного окна, через ифрейм, делал я это еще до HTML5, 3 года назад. Если мне память не изменяет то браузеры начали поддерживать postMessage с версий: Firefox 3.5, Opera 10, Safari 4.0/Chrome 3.0+, Internet Explorer 7.0+. В IE8, интерфейс postMessage работает только с ифреймами. Он не работает между табами и окнами, в более высоких версиях все нормально.
Имхо, гораздо удобнее использовать localStorage (или sessionStorage) и использовать событие storage. Разве что они поддерживаются меньшим числом браузеров…
В том то и дело, что поддержка этих методов пока что не слишком распространена.
Оно не поддерживается IE<8, FF<3.5 O<10.5
Т.е. фактически он поддерживается в браузерах примерно 98% пользователей. Стоит ли ради 2% городить такое с куки?
Ну, решение можно использовать как альтернативу для браузеров, которые ничего не знают о localStorage (if никто не отменял) :)
Про localStorage и вКонтакте уже давно на хабре писали, ибо вот. Search-то тоже никто не отменял.
Будет ли интересна уважаемому сообществу статья "Установка цвета сообщений браузера с помощью тегов «FONT»"?
Как альтернатива css свойства color, конечно пишите… гы
У меня разрыв шаблона. Не поддерживается 98% пользователей, но судя по комментарию ниже, вКонтакте пользуется именно этим способом. Им-то точно не пофиг на 98%.

Где правда?
Данный скрипт к шаблону мало отношения имеет, вероятно вы либо скрипт не загнали в файл(либо не одели в теги, либо библиотеку jQuery не поставили.
Сарказм?
Разрыв шаблона — неожиданное действие, имеющее целью перелом ума собеседника. «X порвал шаблон Y» означает, что X совершил действие, которое Y от него не ожидал. Фраза широко использовалась в федо и окрестностях. (с) Луркоморье
Ты ошибся в чтении, указанно, что поддерживается у 98% пользователей, а у двух как раз нет. Всегда статистику браузеров здесь: www.w3schools.com/browsers/browsers_stats.asp можно посмотреть
Охты, действительно. Плохо не спать. =(
Ну так и сделали бы fallback в cookie, в зависимости от поддержки.
В своё время делал общение между вкладками при помощи LocalConnection (Flash) c fallback в cookie.
LocalStorage поддерживает уже большинство браузеров (ie8+) и проверять cookie через setTimeout совсем не изящное решение, как вы написали. При изменение localStorage срабатывает событие, которое можно слышать в любой вкладке. Посмотрите как работает soundcloud.
Пример не работает (Chrome, Ubuntu). Добавьте {path: '/' }.
хмм, в Chromium работает
Проверьте пример «2 в 1», у меня через раз раз тоже работает первый пример. Возможно, jsfiddle хитрит :)
И кстати, да VK использует как раз localStorage, а не cookies
Я и не говорю о том, что VK использует cookie, я просто предложил альтернативное решение, поддерживаемое браузерами, которые не знают ничего о localStorage.
Opera 12.12
Ничего не происходит…
НЛО прилетело и опубликовало эту надпись здесь
«Не стреляйте в пианиста! Он играет как умеет.»
Эта статейка вполне может быть полезна просто для понимания идеи, как передавать данные внутри браузера. А cookie и localStorage — всего лишь 2 разных «контейнера».
Наконец-то это кто-то сказал.
Решение часто применяется, единственно что все куки идут на сервер, в отличие от storage
Ну есть и небольшой плюс — эти же куки можно поставить со стороны сервера.
Непонятно, зачем со стороны сервера ставить информацию для общения с вкладками. Но если очень хочется, то что мешает со стороны сервера отдать

?
А появились ли пути обойти ограничение в 5 мегабайт для LocalStorage? Или может есть функции превращающие LocalStorage в IndexedDB или другое, без особых ограничений в локальное хранение данных?
IE8/9 Только localstorage, хотя по документации лимит в них 10мегабайт.
Остальные браузеры поддерживают либо WebSQL(Opera, Chrome, Safari, Android, iOS) либо IndexedDB(FF,IE10, Последний desctop Chome)
WebSQL, кажется тоже 5 мегабайт ограничение по умолчанию. Мне интересно, есть ли плагины упрощающие работу с WebSQL и IndexedDB до уровня LocalStorage, чтобы можно было просто сохранить объект и потом прочитать, без плясок с бубном. Т.е. эмулятор LocalStorage на современных базах данных.
А появились ли пути обойти ограничение в 5 мегабайт
В принципе можно использовать iframe c нескольких своих доменов, в каждом своё LocalStorage, данные на TOP.document отдавать через postMessage (или window.name с ченчем страницы фрейма)
Свежаааак идея. Жду статьи «использование text-decoration для подчёркивания текста», «выделение жирным при помощи тега <B>» и другие столь же незатёрные темы.
Я уже 7 лет в веб-программировании и первый раз вижу такую фигню.
Вы 7 лет в веб-программировании и не знали, что куки одинаковы во всех окнах (зануда mode on: если не заданы особые ограничения на URL, например, а в окнах разные урлы)?
Использование table для верстки страницы :)
Поправьте меня пожалуйста, если я не прав.
Этот метод работает только в двух случаях.
1. Когда браузер динамично выставляет куки, т.е. и в открытых окнах тоже.
2. Когда дополнительно идут запросы на сервер и сервер параллельно выставит в остальные окна кукисы.

Т.к. ни первое ни второе не происходит, то примеры в двух окнах само собой не работают. Chrome.
Куки одни для браузера а не для открытой страницы (за исключением кукловодских модернизаций), дополнительные запросы на сервер не нужны.
Чисто для примера www.bodo.ua — как раз таким образом работает синхронизация корзины. Добавляем первое впечатление в корзину, возвращаемся на главную. Открываем новую вкладку сайта и там добавляем еще одно, возвращаемся на первую — вуаля.
Блин. Только сейчас дату публикации увидел
А как по нагрузке localStorage vs Cookies на клиентский ПК?

Я-то думаю чего у меня ВК на не старом ПК тормозят вкладки под Firefox и Chrome…
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории