是否有可能检测到页面是否在2个不同的浏览器中打开?检测当前标签
我已经构建了一个小应用程序,它将一些数据存储在$ _SESSION中,问题是当打开多个选项卡时,会话变量被覆盖(搜索表单中的搜索过滤器),因此选项卡可能会显示对于明显不同的搜索,结果相同。
这个应用程序使用的主要浏览器是IE浏览器,所以它需要一段时间来打这个问题,应用程序得到..更大,更难以修改。
,直到我解决这个搜索到所有的引用,我愿做一个“快速&脏的修复”,并拒绝打开两个卡口与同一个页面,或至少显示警告..
编辑: @arjun:是的,我知道,但是当用户返回到搜索页面时,我必须恢复搜索过滤器:)所以$ SESSION是这样的方式。另外,这些过滤器通过AJAX发送,当你有很多过滤器(GET的大小有限,所以我使用POST)时,它很难调试。
@tomhaigh:thx..but这就是我试图做现在,但这将需要一段时间,因为这个标签“东西”影响整个应用程序,我必须改变所有模块中的过滤器...我一直在寻找快速&脏东西。提示:我不想使用time()和rand(),因为这些函数可以(并最终会)生成重复的数字。在新的“重写”中,我使用PHP中的microtime和JS中的Date.getTime(),并将它们连接起来以生成一个真正唯一的ID。此外,我写了一个函数来解析SESSION不时并清理超过2小时的存储过滤器,所以它不会变得太大。
@Gortok:我知道..但是是设计与IE6在脑海里和大多数用户(如90%)仍然使用IE6登录到这个应用程序...所以我从来没有看到需要考虑多个打开标签。
他已经表示他想要一个快速和肮脏的临时解决方案。无论如何,我无法理解单身模式在这种情况下的帮助。 Singleton $ _Session?在PHP中没有应用程序,所以不能有单身人士。响应结束时,每个对象都会死亡 – Diadistis 2008-12-29 01:52:54