Javascript 在cookie中存储多个表单的选项卡位置-如何防止混乱

Javascript 在cookie中存储多个表单的选项卡位置-如何防止混乱,javascript,html,session,Javascript,Html,Session,我有一个基于PHP和HTML的CMS。在CMS的每个页面中,都有一个表单,其中包含一个基于Javascript的选项卡式对话框,可以在多个div之间切换 从CMS的每个页面,都可以打开预览页面查看所做的更改,然后返回CMS。当用户返回时,我希望打开与他们离开预览时相同的选项卡页面 我目前的方法是每次用户更改选项卡时更改cookie(“当前选项卡”)的值 onclick='setCookie("current_tab", 5);' 生成选项卡式对话框时,我检查cookie并将适当的DIV设置为“

我有一个基于PHP和HTML的CMS。在CMS的每个页面中,都有一个表单,其中包含一个基于Javascript的选项卡式对话框,可以在多个div之间切换

从CMS的每个页面,都可以打开预览页面查看所做的更改,然后返回CMS。当用户返回时,我希望打开与他们离开预览时相同的选项卡页面

我目前的方法是每次用户更改选项卡时更改cookie(“当前选项卡”)的值

onclick='setCookie("current_tab", 5);'
生成选项卡式对话框时,我检查cookie并将适当的DIV设置为“display:block”

但是,我需要将cookie设置限制到特定的CMS页面,而不是所有页面。如果用户更改为其他页面,则不能预先选择该选项卡

我目前的方法是为每个页面创建cookie,例如,为页面ID 10254:

onclick='setCookie("current_tab_10254", 5);'
并且,作为清理的尝试,在呈现页面时删除该cookie。但很明显,这并不是要清理所有设置的cookie,因为用户可以选择不返回表单,或者导航到其他页面。我担心系统中的几十个cookie会造成混乱


有谁知道怎么做更好吗

尝试通过更改cookie的“path”参数来限制cookie的可见性


如果应用程序的结构不允许这样做,我建议您不要使用这种方法,因为cookies通常随每个请求一起发送,包括对静态信息(图像、css)的请求。

为什么要担心删除cookies?它们将过期并自行移除

嗯,这个主意很有趣,但我不认为它能解决杂乱的问题,是吗?我可能可以相应地改变CMS的路径结构,但从长远来看,很多cookie(每个页面一个)会聚集在用户的浏览器中-只是它们的名称相同,基本路径不同?哦,我不认为这会影响用户体验=)我还有以下疯狂的想法:你们可以将你们的设置存储在数据库中。当用户切换选项卡时,您将其存储到cookies,但下次他对您的应用程序进行任何查询时,您将从cookies中删除与选项卡位置相关的所有数据,并将其存储到数据库。我看到的唯一缺点是,对于这样简单的任务来说,逻辑太复杂了。您这样做可能只是为了简化您的问题,但通常不建议使用
onclick
HTML属性。相反,事件应该以编程方式注册和处理。