Веб-сайт без гражданства, поэтому да, вам нужно будет сохранить состояние где-то, есть несколько способов сделать это ... вы можете полагаться на внутренние службы, хранящие их в базах данных/файлах ... , или вы можете использовать одну из новых функций HTML5, таких как хранение сеансов или локальное хранилище.
С хранения сессии, например, вы могли бы сделать что-то вроде этого:
Сначала вам нужно некоторые функции для загрузки и сохранения данных. Так как вы можете хранить только простые строки внутри session- и LocalStorage, я собираюсь сериализовать их JSON:
var store = {
save: function(object) {
sessionStorage.setItem('fruits', JSON.stringify(object));
},
load: function() {
return JSON.parse(sessionStorage.getItem('fruits') || '{}');
}
};
Затем на каждое изменение вы можете хранить данные:
registry.byId("apple").on("change", function(value) {
fruits.apple = value;
store.save(fruits);
});
registry.byId("banana").on("change", function(value) {
fruits.banana = value;
store.save(fruits);
});
registry.byId("lemon").on("change", function(value) {
fruits.lemon = value;
store.save(fruits);
});
Первоначально вас может загрузить данные:
var fruits = store.load();
и использовать его, чтобы инициализировать виджетам их состояние:
registry.byId("apple").set("value", fruits.apple || false);
registry.byId("banana").set("value", fruits.banana || false);
registry.byId("lemon").set("value", fruits.lemon || false);
Это пример: http://jsfiddle.net/3b2s15xm/ Попробуйте изменить параметры и перезагрузить страницу. Как правило, флажки снова будут сняты, но теперь они будут перезагружать данные из хранилища сеансов при загрузке страницы.
Одна вещь, которую вы должны знать, - это то, что браузеры, которые вам нужны для поддержки, имеют эти возможности HTML5, которые вы можете проверить на caniuse.com.
Я думаю, что у вас в принципе есть правильная идея в том, что вам нужно будет сохранить состояния флажков и обратиться к ним, когда вы вернетесь – Richard