Pull to refresh

Comments 47

Идеальная Opera будет с молчаливой ненавистью закрывать страницу и добавлять сайт под именем 127.0.0.1 в hosts.
Тогда я не смогу потом прочитать свою почту, скажем, на Яндексе.
Читайте её через IMAP ;)
А нельзя просто, скажем, сохранить что поменялось в черновики, а в следующий раз — открывать как оно было?

Зачем при всех наличии всех этих гигабайтов памяти до сих пор использовать шаблон «открой-закрой программу» со стародавных времен? Тем более — в вебе?
Разумеется, можно. Только для этого нужно время и деньги.
Для этого вполне достаточно LocalStorage и любви к своей работе.

LocalStorage поддерживают 87.53% браузеров.
Любовь к своей работе поддерживают 19.5% разработчиков.
В 73.9% случаев статистика врёт.
На одной любви без денег и времени не выедешь
Вы редактировали документ в вики-подобной системе и ушли со страницы. Система не знает, оставили ли вы адекватную версию (то есть надо ли перезаписать в основную ветку), поэтому скидывает в черновик в профиле (или в LocalStorage). Вы вернулись к системе через неделю (и с другого компа, LocalStorage?), документ давно изменён другими пользователями, merge выдаёт конфликты, вы паритесь, пытаясь склеить две версии документа. А ведь надо было просто задать один вопрос и получить на него вдумчивый ответ и проблемы бы удалось избежать.
Если вы про этот документ вспомнили аж через неделю — значит он вам так сильно нужен был. Плохой пример юзкейса.
Если я был уверен, что система его сохранила, мог и вообще не вспомнить. Конечно, всегда проще обвинить пользователя в криворукости, чем признать недоработки интерфейса.
А откуда у вас вообще уверенность, что система его сохранила?

Я вот переходил дорогу на красный свет и был уверен, что автомобиль — не трамвай, объедет. Конечно, проще обвинить пользователя в незнании правил дорожного движения, но вряд ли это избавит его от полученных травм.
Человек пришёл через неделю и вы ему говорите (как в ЖЖ, например) — вы там чё-та недописали, но текст уже кто-то менял. Чё будем делать? И юзер решает чё делать. Problem solved.
Код сохранения на клиенте любых данных обходится в 3 строки, какие деньги и время?
Приведите пожалуйста эти универсальные 3 строки.
$.jStorage.set(key, value); // работает со всеми крупными фреймверками, или без.
Я одну приведу, или Вы ожидали полностью кроссбраузерный код сохранения? Естественно берется уже готовое и проверенное решение и используется с помошью одной (трех? иф добавить можно для проверки) строки.
Нет, мне интересны строки кода, которые позволят сохранить любое состояние любых данных любых веб страниц.
Эта строка позволяет сохранить любые данные которые можно засунуть в JSON. Или Вы храните все данные фрагментированно? Раскидано как куча мала по странице? Я нет, у меня все структурировано, и я элементарно в 3 строки сохраняю состояние.
Нет, я про универсальность некоторых строк, которые бы позволили сериализовывать всю веб-страницу вне зависимости от того, что на ней.

Только при таких условиях каждый будет этим пользоваться. Иначе это так и останется уделом избранных.

ИМХО конечно.
$.jStorage.set('body', document.body.innerHTML); // Но Вы ведь понимаете всю тупость такого действия?
Не нужно сохранять всю страницу, нужно сохранять нужные данные.
У меня щас проект, в котором сохраняются (грубо говоря) 54 страницы. И прекрасно все работает. Для этих 54 страниц я сохраняю 3 набора данных (это система тестирования, я сохраняю вопросы, ответы и настройки) этого достаточно чтоб восстановить любую страницу в том виде в каком пользователь ее оставил.
А если сохранение (передача данных) — в процессе?
В таком случае, стандартный текст подходит.
localStorage всегда сохранится.
Потому что не все, что поменялось — черновик. Например, это могут быть настройки. Или рабочий процесс.
Лучше бы сделали так, чтобы эти все модальные окна (уйти со страницы, окно http-авторизации и прочее) не блокировали весь браузер и не всплывали внезапно, требуя срочного-пресрочного внимания к ним. Аддоны искал, на мозила.раша.ру искал, не нашёл решения. В тех же Опере и Хроме просто мигают вкладки, без фокуса на них и блокировки.
Полностью поддерживаю! Очень обрадовали Opera и Chrome своим подходом.
Скажем, если вы реализуете интерфейс для работы со многими документами в одном окне, и какой-то из них не сохранён, можно было бы сказать, какой конкретно, но в Firefox вы этого не поймёте.

Но ведь можно по этому событию начать мигать несохранённым документом.
Это даже лучше, чем длинный поясняющий текст.
Мало ли что там мигает, у меня скролл может быть подтянут в самый низ, а то что будет мигать останется вне поля зрения.
Мысль хорошая, но внимание пользователя всё же будет приковано к модальному окошку, чем к странице. Но надо её обмозговать. Может, стоит рисовать полоску вверху страницы наподобие той, какую браузер выдаёт при блокировке попапа…
Вообще, кто бы что ни говорил, я поддерживаю мозиллу, и в частности оперу. Я не люблю когда мне запрещают что-то сделать. Если я не хочу оставаться на этой страничке то я ее закрываю/перехожу на другую. Честно, с компом уже знаком почти 15 лет, и ни разу не пожалел что меня не предупредили там что-то доделать, а раз не жалею, значит мне оно не нужно было.
Это как старый винт с хламом, пока туда не лезешь он тебе и нафик не нужен, можно смело удалять все, и не вспомнишь даже, но не дай бог туда залезть, сразу то нужно и то нужно и то нужно. И сразу не понимаешь как без этого жил.
К этому добавить localStorage и problem solved. Не понимаю паники «веб-девелоперов»… Не умеете готовить — занимайтесь бальными танцами.
Банальная паника хомячков: «О боже! Они это убрали!!! Я обязательно должен быть против, не важно что это такое».
Как Вы и сказали:
Сейчас делаю проект, который хранит все данные на клиенте, и хоть ты куда уходи, никуда то что ты ввел не денется, и сделано специально чтоб разгрузить сервер, и даже если сессия потеряется (человек может чехлить долго) среди данных хранится хеш чтоб знать кто это вообще такой. Причем за пользование этой системой берут деньги, и данные могли потеряться при закрытии в другом случае, но я как-то даже в мыслях не имел делать это таким костылем как «boforeunload». Так что по прежнему считаю это ненужной сранью =)
Вот-вот! Технологии уже не первый год и даже в IE работает. И костылики для старичков есть обкатанные. А всё паника… Эх…
Расскажите плз о костылях?
Вы спросите, почему я не упомянул Оперу? А в ней вообще никакого окошка не выдаётся. Страница молча закрывается.

Страница молча закрывается потому, что мы выбрали не поддерживать событие onbeforeunload, а не менять интерфейс каждую мажорную версию, путая пользователей. И если Firefox спустя много лет пришёл к Won't Fix, то мы решили это давно. Багу про это событие в нашем трекере исполняется в этом году 11 лет.
И я бы рекомендовал автору не путать читателей последней фразой про «молча закрывает», правильнее будет написать «осознанно не поддерживает событие».
Я поддерживаю вас в таком решении. Но может быть, всё-таки стоит дать возможность приложению по событию сохранить данные в localStorage, без показа каких-либо окон?
Когда мы придумаем, как это сделать так, чтобы это было не только удобно разработчикам, но и понятно пользователям — мы обязательно реализуем это событие.
Ну я вроде не соврал. Действительно ведь молча закрывает. Дописать «осознанно молча закрывает»? Вроде и так понятно, что с точки зрения Оперы это фича, а не баг.
Можно по-разному не соврать ;) По-моему, это вводит людей в заблуждение, особенно при том, что топик из-за его названия будут читать те, кто вообще не в курсе как это дело работает.
С переходом на Webkit или Blink Опера будет поддерживать событие «onbeforeunload»?
Вот сегодня в очередной раз понял, что хочу запретить js обрабатывать это событие, потому что единственное, где оно постоянно встречается — это в рекламных лендингах. Запарило невероятно. Может кто-то знает, как в хроме его запретить напрочь? Не на оперу же из-за этого переходить :(
Sign up to leave a comment.

Articles