Как веб-сайты показывают блоки "помощи", пока пользователь не нажмет X, чтобы не видеть их снова
На некоторых веб-сайтах, которые вы посещаете, они будут предоставлять инструкции или помощь или подсчитывать, сколько раз вы отклоняли помощь / понимание. Они обычно делают с cookie, обновляют запись базы данных для профиля пользователя или что?
У веб-приложения, над которым я работаю, есть маркированный список шагов, которые нужно выполнить. Клиент просит, чтобы это было отклоняемым, а не разборным, как сейчас (пользователь должен минимизировать его каждый раз, когда они попадают на страницу). Обычно я просто обновляю профиль пользователя, где столбец может быть showHelpText
со значением бита.
Поскольку это настройка для каждой страницы, я подумываю о создании таблицы сопоставления, в которой я могу выполнить поиск по запросу cgi.script_name
( Переменные сервера Adobe CGI) и userID
, Если запись существует, не показывайте помощь. Если записи не найдены, покажите текст справки. Есть ли более эффективный способ сделать это. Файлы cookie отсутствуют, поскольку пользователь может использовать разные устройства / ПК / планшеты / и т. Д. Повторное отображение помощи не является частью этого запроса.
1 ответ
Я думаю, что в этой ситуации я бы использовал API локального хранилища и добавил бы к записи пользователя в БД поле ui_preferences, которое будет копией значения локального хранилища, при загрузке, если значение не существует. Вы можете получить его, позволяя значениям распространяться между устройствами.
Псуедо Дж.
someCustomObject.savePreferences(uiPreferences);
/* somewhere in the method call: */
var uiPreferences = {'helpDialog':{'pageNameHere': true}};
localStorage.setItem('uiPreferences', JSON.stringify(uiPreferences));
Таким образом, когда страница загружается, вы можете перейти;
var uiPreference = someCustomObject.getPreference('somepreference');
Который может проверить локальное хранилище на предмет предпочтения, и если оно не существует, пропинговать сервер для этого. Ваш пользовательский объект js может работать со значениями по умолчанию, что означает, что вам не нужна фиксированная схема для предпочтений. Поскольку локальное хранилище является просто хранилищем значений ключей, вам понадобится всего один столбец в БД для хранения текстового поля большого размера.