Комментарии 48
Круто!
-10
Костыли-костылики:-) Есть же postMessage.
+1
Если не ошибаюсь, то postMessage появился только во времена HTML5? Данный способ, думаю, будет работать даже в нецкейпе :)
0
Ибо такой же старый, как и «Нецкейп».
0
У меня в проекте используется postMessage для общения между разными доменами, но в рамках одного окна, через ифрейм, делал я это еще до HTML5, 3 года назад. Если мне память не изменяет то браузеры начали поддерживать postMessage с версий: Firefox 3.5, Opera 10, Safari 4.0/Chrome 3.0+, Internet Explorer 7.0+. В IE8, интерфейс postMessage работает только с ифреймами. Он не работает между табами и окнами, в более высоких версиях все нормально.
0
Имхо, гораздо удобнее использовать localStorage (или sessionStorage) и использовать событие storage. Разве что они поддерживаются меньшим числом браузеров…
+30
В том то и дело, что поддержка этих методов пока что не слишком распространена.
0
Оно не поддерживается IE<8, FF<3.5 O<10.5
Т.е. фактически он поддерживается в браузерах примерно 98% пользователей. Стоит ли ради 2% городить такое с куки?
Т.е. фактически он поддерживается в браузерах примерно 98% пользователей. Стоит ли ради 2% городить такое с куки?
+18
Ну, решение можно использовать как альтернативу для браузеров, которые ничего не знают о localStorage (if никто не отменял) :)
0
У меня разрыв шаблона. Не поддерживается 98% пользователей, но судя по комментарию ниже, вКонтакте пользуется именно этим способом. Им-то точно не пофиг на 98%.
Где правда?
Где правда?
-2
Данный скрипт к шаблону мало отношения имеет, вероятно вы либо скрипт не загнали в файл(либо не одели в теги, либо библиотеку jQuery не поставили.
-1
Ты ошибся в чтении, указанно, что поддерживается у 98% пользователей, а у двух как раз нет. Всегда статистику браузеров здесь: www.w3schools.com/browsers/browsers_stats.asp можно посмотреть
0
Написано поддерживается 98%.
developer.mozilla.org/ru/docs/DOM/Storage#Browser_compatibility
developer.mozilla.org/ru/docs/DOM/Storage#Browser_compatibility
0
0
Ну так и сделали бы fallback в cookie, в зависимости от поддержки.
В своё время делал общение между вкладками при помощи LocalConnection (Flash) c fallback в cookie.
В своё время делал общение между вкладками при помощи LocalConnection (Flash) c fallback в cookie.
+1
LocalStorage поддерживает уже большинство браузеров (ie8+) и проверять cookie через setTimeout совсем не изящное решение, как вы написали. При изменение localStorage срабатывает событие, которое можно слышать в любой вкладке. Посмотрите как работает soundcloud.
+6
Пример не работает (Chrome, Ubuntu). Добавьте
{path: '/' }
.0
И кстати, да VK использует как раз localStorage, а не cookies
+1
Opera 12.12
Ничего не происходит…
Ничего не происходит…
+3
НЛО прилетело и опубликовало эту надпись здесь
«Не стреляйте в пианиста! Он играет как умеет.»
Эта статейка вполне может быть полезна просто для понимания идеи, как передавать данные внутри браузера. А cookie и localStorage — всего лишь 2 разных «контейнера».
Эта статейка вполне может быть полезна просто для понимания идеи, как передавать данные внутри браузера. А cookie и localStorage — всего лишь 2 разных «контейнера».
+17
Корректней использовать setInterval, меньше вызовов и «мусора» от сохранений в документе.
Есть кроссбраузерное LocalStorage => github.com/devote/localstorage
Есть кроссбраузерное LocalStorage => github.com/devote/localstorage
+1
Есть более интересный вариант github.com/marcuswestin/store.js
0
А появились ли пути обойти ограничение в 5 мегабайт для LocalStorage? Или может есть функции превращающие LocalStorage в IndexedDB или другое, без особых ограничений в локальное хранение данных?
0
IE8/9 Только localstorage, хотя по документации лимит в них 10мегабайт.
Остальные браузеры поддерживают либо WebSQL(Opera, Chrome, Safari, Android, iOS) либо IndexedDB(FF,IE10, Последний desctop Chome)
Остальные браузеры поддерживают либо WebSQL(Opera, Chrome, Safari, Android, iOS) либо IndexedDB(FF,IE10, Последний desctop Chome)
0
А появились ли пути обойти ограничение в 5 мегабайтВ принципе можно использовать iframe c нескольких своих доменов, в каждом своё LocalStorage, данные на TOP.document отдавать через postMessage (или window.name с ченчем страницы фрейма)
0
Свежаааак идея. Жду статьи «использование text-decoration для подчёркивания текста», «выделение жирным при помощи тега <B>» и другие столь же незатёрные темы.
+3
Поправьте меня пожалуйста, если я не прав.
Этот метод работает только в двух случаях.
1. Когда браузер динамично выставляет куки, т.е. и в открытых окнах тоже.
2. Когда дополнительно идут запросы на сервер и сервер параллельно выставит в остальные окна кукисы.
Т.к. ни первое ни второе не происходит, то примеры в двух окнах само собой не работают. Chrome.
Этот метод работает только в двух случаях.
1. Когда браузер динамично выставляет куки, т.е. и в открытых окнах тоже.
2. Когда дополнительно идут запросы на сервер и сервер параллельно выставит в остальные окна кукисы.
Т.к. ни первое ни второе не происходит, то примеры в двух окнах само собой не работают. Chrome.
0
Куки одни для браузера а не для открытой страницы (за исключением кукловодских модернизаций), дополнительные запросы на сервер не нужны.
Чисто для примера www.bodo.ua — как раз таким образом работает синхронизация корзины. Добавляем первое впечатление в корзину, возвращаемся на главную. Открываем новую вкладку сайта и там добавляем еще одно, возвращаемся на первую — вуаля.
Чисто для примера www.bodo.ua — как раз таким образом работает синхронизация корзины. Добавляем первое впечатление в корзину, возвращаемся на главную. Открываем новую вкладку сайта и там добавляем еще одно, возвращаемся на первую — вуаля.
0
А как по нагрузке localStorage vs Cookies на клиентский ПК?
Я-то думаю чего у меня ВК на не старом ПК тормозят вкладки под Firefox и Chrome…
Я-то думаю чего у меня ВК на не старом ПК тормозят вкладки под Firefox и Chrome…
-1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Общение между окнами одного браузера средствами cookie