Программисты развлекаютсяОплата электронная

Кнопка BackSpace и история

Только что сделал перемещение по "страницам", создаваемых с помощью JS, с помощью истории (то есть, кнопки Backspace и других) без скрытых кадров.

В проекте есть как-бы страница заказа модели. По сути, в поисковиках ей нечего делать, и я решил разработать её полностью на клиенте, потому что в заказе как-бы несколько страниц (6 вкладок) и по ним можно туда-сюда шататься.
Чтобы не гнать post-данные туда-сюда и не грузить сервак, всё сделал на клиенте. Сначала не заморачивался о том, что будет, если юзверь нажмёт на backspace - интуитивно это может быть, чтобы типа вернуться на прошлую вкладку (в этом случае он вернётся на прошлую страницу, что сбросит заказ, хотя предупреждение тоже сделал). Но в голове вертелось слово хеш и решил попробовать. В результате получилось на ура, не отличить даже, что это не обычная страница, а создаваемая с помощью JS. На хеш в строке браузера никто внимания не обращает, он никому не мешает. Так что без всяких скрытых кадров можно сделать переход на нужное состояние проекта, в хеше можно хранить разные переменные, даже можно шифровать их, чтобы непонятно было.
Конечно, всё зависит от проекта. Но в данном случае вошло как влитое.

Comments (4):

  • А это кстати часто проблема, так как нажав кнопку назад, перед отсылкой, а потом снова нажав заказ или рефреш, можно заново регистрироваться или отправить заказ, что не хорошо обычно.
    И плохо то, что при ошибке вернувшись, часто на многих сайтах сбрасывается вся информация.
    • для этого нужно ввести цифирки от спама. и тогда повторно нельзя будет что-либо сделать.


      а вот запоминать информацию - можно. в сессии, например. но зачем? лишнее..
      • Чтоб не вводить в сотни полей все заново при ошибке или случайного сброса информации.
        • если случайно закроют браузер - никакая сессия не спасёт. она сбросится. а запоминать для каждого прохвоста в базе - накладно. 


          но для важных работа, конечно, нужно работать с БД.