在您访问的某些网站上,它们会提供说明或帮助,或者计算您取消帮助/见解的次数。通常是用Cookie完成,还是更新用户个人资料的数据库记录?
我正在使用的Web应用程序有一个项目符号列表,列出了要执行的步骤。客户端要求它是可消除的,而不是像现在这样可折叠的(用户每次访问该页面时必须将其最小化)。通常,我只是更新用户的个人资料,其中某个列可能是showHelpText
并带有位值。
由于这是每页设置,因此我正在考虑创建一个映射表,我可以查询搜索cgi.script_name
(Adobe CGI Server Variables)和userID
。如果有记录,请不要显示帮助。如果未找到任何记录,请显示帮助文本。有没有更有效的方法来完成此任务。由于用户可能使用了不同的设备/个人计算机/平板电脑/等,因此Cookie消失了。再次显示帮助不是此请求的一部分。
答案 0 :(得分:2)
我认为在这种情况下,我会使用local storage api并在数据库中的用户记录中添加一个名为'ui_preferences'的字段,这将是本地存储值的副本,如果值不存在,您可以提取它,以允许值在设备之间传播。
Psuedo Js;
someCustomObject.savePreferences(uiPreferences);
/* somewhere in the method call: */
var uiPreferences = {'helpDialog':{'pageNameHere': true}};
localStorage.setItem('uiPreferences', JSON.stringify(uiPreferences));
因此页面加载时就可以去;
var uiPreference = someCustomObject.getPreference('somepreference');
哪个可以检查本地存储的首选项,如果不存在,则可以为该服务器ping服务器。您自定义的js对象可以处理默认值,这意味着您不需要为首选项设置固定的架构。鉴于本地存储实际上只是键值存储,所以您只需要在数据库中存储一列大文本字段即可。