2013-05-15 1 views
2

У меня есть небольшое веб-приложение (у которого только 1 страница), что позволяет пользователю вводить и выбирать некоторые параметры. Входные тексты и выборки будут отображаться в другом div в виде таблицы. Вы можете обратиться к примеру здесь: http://jsfiddle.net/xaKXM/5/ В этой скрипке, вы можете напечатать что-нибудь, и после того, как вы нажали submit он получит ввод текста и добавить их в другую таблицу #configtableTableСохранение состояния страницы. Печенье или сеанс?

$('#labels #labelTable tr:last').after(addmore); 
$('#configtable #configtableTable tr:last').after(displaymore); 

Я использую CherryPy как мини-веб-сервер (и, следовательно, основные коды написаны на python), и я знаю, что он имеет sessionhere, но я понятия не имею, как его использовать вообще, поскольку приведенный ниже пример не совсем то, что я хочу видеть.

FYI, я не с использованием PHP вообще, и все находится на одной странице. я просто показываю и скрываю их. Но я хочу, чтобы страница оставалась как показано #configtableTable и скрывалась #labelTable даже после обновления. Обратите внимание, что скрипка - это просто часть веб-приложения, которое будет показывать все это только после получения ответа от другого устройства.

Не знаю, что такое cookie, потому что все links я нашел, кажется, сломан. Как насчет jQuery session? Это применимо в моем случае? Мне нужны некоторые примеры приложений :(

ОК, чтобы завершить мои вопросы: 1. Могу ли я сохранить состояние страницы после обновления? И как? Какой из методов, упомянутых выше, стоит попробовать? Есть ли примеры для мне обратиться? или какие-либо другие предложения? 2. могу ли я просто DISABLE обновления или назад после достижения страницы?

Спасибо всем заранее :)

ответ

3

не отключайте Refresh и/или обратно навигации. Это страшная идея - у пользователя есть определенное ожидание того, какие действия будут выполнять эти кнопки и их изменение, что приводит к плохому пользовательскому опыту.

Что касается состояния сохранения, если вы можете использовать сеанс или файлы cookie, если вам не нужна эта сторона сервера данных, вы также можете сохранить состояние на стороне клиента.

Например, вы могли бы использовать localStorage

В качестве альтернативы, вы можете создать объект из данных, приведенных в таблице, JSON.stringify() его и добавить его в URL-адрес, как это: example.com#stateData.

В случае любой опции при загрузке страницы вам нужно будет проверить, имеются ли данные состояния. если вы его найдете, используйте его для воссоздания таблицы вместо отображения формы.

Недостатком первого является то, что not all browsers support localStorage. Недостатком второго является то, что URL-адреса имеют ограничение по длине, и поэтому это решение не обязательно будет работать для вас, если вы ожидаете больших объемов данных.

EDIT
Оказывается, что Мидори does support most HTML5 features including localStorage however, it's turned off by default.. (Я пытаюсь найти лучшую ссылку). Если вы можете, просто укажите Midori на html5test, чтобы узнать, какие функции HTML5 он поддерживает.

+0

спасибо за ваши предложения :) Я ожидал бы довольно некоторых данных, поскольку таблица в моем примере скрипта выше - это всего лишь половина приложения (у меня есть еще одна половина: http://jsfiddle.net/qJdaA/2/), и пользователь может добавить более 10 строк. Кроме того, поскольку я использую raspberrypi, браузер, скорее всего, будет 'Мидори', не уверен, поддержит ли это это :( – yvonnezoe

+0

См. редактирование. Похоже, что Midori поддерживает localStorage. – xbonez

+0

так для localstorage (как видно из пример) Я могу сохранить заданные данные с помощью этого 'var field = document.getElementById (" field "), где поле' '' будет идентификатором для каждого ввода текста, который у меня есть, но их так много ><и таблицы динамичны: все кажется мне настолько сложным :( – yvonnezoe