Coldfusion 网站如何显示;“帮助”;阻止,直到用户单击X以不再看到它们

Coldfusion 网站如何显示;“帮助”;阻止,直到用户单击X以不再看到它们,coldfusion,lucee,Coldfusion,Lucee,在您访问的某些网站上,他们会提供说明或帮助,或者计算您拒绝帮助/见解的次数。它们通常是通过cookie完成的,为用户的配置文件更新数据库记录还是什么 我正在开发的web应用程序有一个项目符号列表,列出了要执行的步骤。客户端要求它是可撤销的,而不是像现在这样可折叠的(用户每次点击页面时都必须将其最小化)。通常我只会更新用户的配置文件,其中一列可能是showHelpText,并带有一个位值 由于这是一个每页设置,我正在考虑创建一个映射表,我可以查询搜索cgi.script\u name()和user

在您访问的某些网站上,他们会提供说明或帮助,或者计算您拒绝帮助/见解的次数。它们通常是通过cookie完成的,为用户的配置文件更新数据库记录还是什么

我正在开发的web应用程序有一个项目符号列表,列出了要执行的步骤。客户端要求它是可撤销的,而不是像现在这样可折叠的(用户每次点击页面时都必须将其最小化)。通常我只会更新用户的配置文件,其中一列可能是
showHelpText
,并带有一个位值


由于这是一个每页设置,我正在考虑创建一个映射表,我可以查询搜索
cgi.script\u name
()和
userID
。如果存在记录,则不显示帮助。如果未找到记录,则显示帮助文本。有没有更有效的方法来实现这一点。由于用户可能正在使用不同的设备/pc/平板电脑/等等,Cookie被删除。再次显示帮助不是此请求的一部分。

我认为在这种情况下,我会使用,并在数据库中的用户记录中添加一个名为“ui\U首选项”的字段,该字段将是本地存储值的副本,加载时,如果值不存在,则可以获取它,从而允许值在设备之间传播

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对象可以处理默认值,这意味着您不需要为首选项设置固定的模式。鉴于本地存储实际上只是一个键值存储,您只需要数据库中的一列来存储一个大的ish文本字段。

我认为在这种情况下,我会使用,并在数据库中的用户记录中添加一个名为“ui_首选项”的字段,该字段将是本地存储值的副本,加载时,如果值不存在,则可以获取它,从而允许值在设备之间传播

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对象可以处理默认值,这意味着您不需要为首选项设置固定的模式。因为本地存储实际上只是一个键值存储,所以您只需要数据库中的一列就可以存储一个大的ish文本字段。

我从未需要访问本地存储,也不知道
本地存储中存储的数据没有过期时间。
。这很有趣。因此,为了回应我的理解,用户单击了
永远退出
按钮。侦听器响应,但设置localstore ui_首选项值。下次用户访问该页面时,该页面将在localStorage中检查ui_首选项,并且不再显示帮助块。我不清楚为什么需要db。你能详细说明一下这方面吗?啊,等等,db将发挥作用,以确保用户的ui_偏好从一个设备传递到另一个设备,对吗?这是一个解决方案;您只需要在某些内容发生更改时将其记录回服务器,当他们重新访问站点时,您可以在需要时与数据库重新同步。正如我所说,您只需要一个文本列来存储序列化字符串,您可以使用服务器上的文件,或者任何其他您喜欢的持久性解决方案。一旦你开始谈论从一个设备到另一个设备同步首选项,你就需要一些服务器级的持久性。我从来没有需要访问本地存储,也不知道存储在本地存储中的数据没有过期时间。这很有趣。因此,为了回应我的理解,用户单击了
永远退出
按钮。侦听器响应,但设置localstore ui_首选项值。下次用户访问该页面时,该页面将在localStorage中检查ui_首选项,并且不再显示帮助块。我不清楚为什么需要db。你能详细说明一下这方面吗?啊,等等,db将发挥作用,以确保用户的ui_偏好从一个设备传递到另一个设备,对吗?这是一个解决方案;您只需要在某些内容发生更改时将其记录回服务器,当他们重新访问站点时,您可以在需要时与数据库重新同步。正如我所说,您只需要一个文本列来存储序列化字符串,您可以使用服务器上的文件,或者任何其他您喜欢的持久性解决方案。一旦开始讨论从一个设备到另一个设备同步首选项,您就需要一些服务器级持久性。