会话-两个浏览器窗口使用单独的会话
本文关键字:会话 单独 窗口 -两 浏览器 | 更新日期: 2023-09-27 18:01:16
我的网站由一个主要的仪表板页面与建筑物列表。
通过点击一个建筑,它打开了一个新的浏览器窗口,其中包含该特定建筑的许多功能和特性。
在这种情况下,我可以同时打开多个浏览器窗口,每个窗口代表另一个建筑物的数据。我如何设置会话数据不会在窗口之间混淆?
您可以通过在会话中存储数据时将建筑物的唯一标识符附加为键的一部分来标识每个建筑物的信息。
所以我们不这样做:
Session["Building"] = something;
Session["Building_"+buildingID] = something;
现在,使用建筑id,您总是可以在当前窗口中找到属于该建筑的适当信息。
说了这么多,我想问为什么你真的需要在会话中存储这个?每次都从数据库中获取数据不是很便宜吗?我不会担心性能,除非在数据库端有非常昂贵的操作。
我们使用在给定页面的ViewState中存储ID的组合来测试处理不同窗口数据的复杂Session对象的ID。考虑到不同浏览器在选项卡、页面和会话处理方面的差异,您可能会得到一些非常奇怪的行为。