Автосохранение, или Бережем время и нервные клетки

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

    Результат всегда один — мы теряем все те данные, которые уже успели набрать. Мы теряем драгоценное время на восстановление уже набранного текста, расстраиваемся… И, думаю, у самых экспрессивных личностей разбита уже не одна клавиатура — как отдушина, на которой можно сорвать всю злость.





    Посмотрим на разные способы, которыми можно решить задачу «не терять свои данные».

    № 1 — «Спасение утопающих — дело рук самих утопающих»

    После того, как я сам лично несколько раз потерял достаточно большие набранные тексты и довольно эмоционально высказался по этому поводу, коллеги подсказали отличный плагин для Firefox и Chrome — Lazarus.

    Lazarus периодически локально сохраняет данные заполняемых форм, умеет работать с визуальными редакторами и AJAX-формами. В целях безопасности сохраняемые на диск данные шифруются.

    Восстановить данные можно буквально в два клика!



    В целом — отличная штука!

    За исключением пары минусов: во-первых, поддерживаются далеко не все браузеры, во-вторых, способ не применим, например, в интернет-кафе.

    № 2 — «Используем современные технологии — HTML5 Local Storage»

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

    Все современные браузеры поддерживают такую возможность HTML5 как Local Storage. По сути, это — локальная база данных, в которой можно сохранять пары «ключ — значение».

    И именно Local Storage можно использовать для автоматического сохранения данных в веб-формах. На Хабре этот подход уже обсуждался, и даже представлены готовые решения, которые разработчики могут использовать в своих проектах.

    № 3 — «Сохраняем данные не локально, а на сервере»

    В 11-ой версии «1С-Битрикс: Управление сайтом» появилась функция автоматического сохранения данных веб-форм.

    Мы рассматривали разные варианты решения этой проблемы. В том числе, конечно же, думали и о возможности использования Local Storage. В итоге выделили несколько ключевых недостатков, из-за которых отказались от этой идеи.
    • Самый главный вопрос — безопасность. За одним компьютером может работать несколько человек, а хранилище — общее (для одного браузера). Способ совершенно не применим в публичных местах (интернет-кафе). Данные могут быть прочитаны из локального хранилища вирусом, трояном и т.п.
    • Хочется независимости от локального компьютера. Села батарейка в ноутбуке, «полетел» диск… Такие ситуации, конечно, не слишком часты, но все же приятно просто открыть любой другой браузер на другом компьютере/мобильном устройстве и продолжить работать.

    Поэтому мы решили реализовать функцию автосохранения на стороне сервера, привязывая данные к профилю пользователя, а не локально.

    Тем самым решаются оба вопроса: обеспечена безопасность и сохранность данных, при этом механизм универсален — работает совершенно прозрачно и независимо от браузера.

    Как это работает?

    Если ваш сайт работает на «1С-Битрикс: Управление сайтом» 11-ой версии, то функция автосохранения уже подключена на большинстве веб-форм административного раздела, а также в формах добавления/редактирования страниц и элементов инфоблоков. В ближайшее время автосохранение будет подключено в блогах и форумах.

    Если в форме работает автосохранение, то в правом углу формы (при редактировании в административной части) появится такой значок:



    В формах, вызываемых в публичной части, значок расположен в левом нижнем углу формы:



    Автосохранение происходит все время пока пользователь редактирует форму. Можно нажать на значок и выполнить сохранение вручную — на всякий случай. :) Ну, или как вариант «экстремального черновика». :)

    Если какой-то сбой произошел во время создания нового элемента, а не в процессе редактирования, то автосохранение сработает для формы создания соответствующей новой страницы/элемента. То есть, когда в следующий раз будет открыта форма добавления, выведется запрос на восстановление данных.



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

    Comments 29

      +6
      Один раз писал статью на сайт. В браузере было открыто примерно 20 вкладок и я случайно закрыл мне нужную вкладку, и статья пропала. Хорошо, что дома никого не было и никто не слышал моего гнева.
        0
        ага, после этого задумываешься, почему браузеры без спросу позволяют закрывать вкладки)
          +7
          Ctrl+Z или Ctrl+Shift+T не помогло восстановить закрытую вкладку? :)
            0
            Ого! Где вы были раньше!
              0
              У меня не хватает слов выразить, какой я идиот :) Спасибо.
                0
                Magic!
                  0
                  а на маке?
                  +1
                  Вот оно — тлетворное влияние Эксплорера.
                    +1
                    Пару раз так закрывал в хроме странички со статьями (правда всегда имел менее свежую локальную копию). Пара секунд волнения перед нажатием Ctrl+Shift+T и… Уф, страница восстанавливается вместе с изменениями.

                    Не помню уже точно когда, но в хром добавляли данную фичу — видимо не у меня одного «наболело» :)

                    Данные сохраняются даже после перезапуска браузера — хранил так около месяца (да, отчасти ради теста, признаю) прямо в открытом табе одно письмо. В итоге за месяц работы с ним ничего так и не случилось (даже при бсодах, падениях браузера и обновлениях страницы) и я успешно отправил его, когда потребовалось.
                      0
                      Да, после таких потерь информации, я всегда стал текст предварительно писать в word или другой текстовый редактор.

                      Привычка жать Ctrl+S сохраняется и в браузерах — предлагает сохранить html-страницу :)
                      +1
                      Безусловно, очень полезная функция. Александр, скажите, а есть ли возможность использовать данную функцию в формах собственных компонентов?
                        +2
                        Мы сейчас сами готовим реализацию в блогах, форумах и комментариях. На основе своих же разработок напишем на сайте для разработчиков подробные howto по использованию автосохранения в собственных формах.
                          0
                          Было бы очень здорово :) У нас в предстоящем проекте как раз присутствует требование по автосохранению форм.
                        0
                        А можно технологию более детально описать? Например, сохраненные значения для нового элемента персонализируются или общие?
                        В документации описание данной технологии стоит ждать? Например если хочется подобный функционал для своих форм реализовать.
                          0
                          Подробная документация, конечно же, будет (немного позже).
                          +2
                          Одно время у меня была неудобная клавиатура и я постоянно жал в Опере CTRL+Q (выход из приложения) вместо CTRL+W (закрытие вкладки). Можно, конечно, переназначить клавиши, но побороть привычку очень трудно.
                            –4
                            Ага, и реализация у вас как обычно херня. Я давно с битриксом не работал, а тут надо было страницу поправить, зашел, кое-что сделал, нажимаю кнопку сохранить, и у меня появляется прекрасная надпись: «данные не были сохранены». ппц, господа. Это вы так бережете меня от RAGE MODE?
                              +3
                              Не валите, пожалуйста, в кучу реализацию автосохранения и локальную проблему на одном проекте (которая, скорее всего, вообще не имеет отношения к автосохранению).

                              В подобном случае лучше всего создать тикет в тех. поддержку и разобраться в причинах.
                                0
                                Не валю, просто констатирую факт, что в этом проекте есть такая ошибка. А ответственность за отправку тикета я оставил на владельце.
                                То есть вы считаете, что обсуждать проблемы тут не стоит?..
                                  +1
                                  Локальные проблемы одного проекта стоит обсуждать именно с суппортом.

                                  Здесь — что-то более общее. И по теме.
                                +1
                                Появление этой надписи скорее всего связано с тем, что истекла сессия авторизации. Автосохранение здесь действительно ни при чем.
                                  0
                                  зашел, кое-что сделал,

                                  Дайте угадаю, прикрепили картинку на 100500Мб?
                                    0
                                    сейчас можно гадать сколько угодно. важно то, что ошибка была в публичной версии обновления. сейчас я ее повторить не могу.
                                    кстати правильная позиция: начинать с самого простого, что пользователь долбоеб.
                                      0
                                      Кстати, скорее всего, Вы действительно столкнулись с истекшей сессией.

                                      Проблема эта была решена достаточно давно: www.1c-bitrix.ru/blog/rsv/2397.php

                                      Кстати, на какой версии Битрикса была проблема?
                                        0
                                        наконец-то конструктив, а то некие «локальные проблемы», которые оказались недоработкой продукта. главное сейчас все обновления установлены, и все работает. спасибо.
                                  0
                                  После нескольких потерянных текстов выработалась привычка ctrl+A, ctrl+C каждые несколько минут.
                                  Достаточно быстро и просто. А для маленьких форм (суммарно до 100 символов)
                                  потеря не так страшна, чтобы даже заботится об этом.
                                    0
                                    Ctrl+A, Ctrl+C не спасет от севшей батарейки, зависшего или внезапно решившего перезагрузиться после установки обновлений компьютера.
                                    0
                                    Да с формами бывают всякие неожиданности, автосохранение или просто кнопочка сохранить спасает много нервов. В связке с поддержкой откатов действий намного упрощает наполнение сайтов.

                                    В Битриксе есть контроль версий контента с возможностью вернуть значения предыдущих действий, подскажите пожалуйста, если нет, то советую сделать, крайне полезно.
                                      +1
                                      Пока есть только отмена последнего действия при создании / редактировании страниц. Позже будет полноценная «версионность».

                                      Еще есть модуль «документооборот», которые уже сейчас можно использовать для контроля версий. Он очень мощный и функциональный, правда, при этом и несколько более сложный.

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