当前位置:  开发笔记 > 编程语言 > 正文

检测当前标签

如何解决《检测当前标签》经验,为你挑选了1个好方法。

是否可以检测是否在2个不同的浏览器中打开了一个页面?

我已经构建了一个小应用程序,它在$ _SESSION中存储了一些数据,问题是当多个选项卡打开时,会话变量被覆盖(搜索过滤器在搜索表单中),因此选项卡可能会显示相同的结果不同的搜索.

用于此应用程序的主浏览器是IE,因此需要一段时间才能解决此问题并且应用程序得到了更大,更难以修改.

直到我修复了对此搜索的所有引用,我想做一个"快速和脏修复"并拒绝打开同一页面的两个选项卡,或者至少显示一个警告..

编辑:@arjun:是的,我知道,但是当用户返回搜索页面时我必须恢复搜索过滤器:)所以$ SESSION就是这样做的.此外,过滤器由AJAX发送,当你有大量的过滤器时很难调试(GET的大小有限,所以我使用POST)

@tomhaigh:thx ..但这就是我现在正在尝试做的事,但这需要一段时间,因为这个标签"东西"影响整个应用程序,我必须更改所有模块中的过滤器...我现在正在寻找快速和肮脏的东西.提示:我不想使用time()和rand(),因为theese函数可以(并最终将)生成重复的数字.在新的"重写"中,我使用PHP中的microtime和JS中的Date.getTime()并连接theese 2以生成真正唯一的id.此外,我写了一个函数来不时解析SESSION并清理存储过滤器超过2小时,所以它不会变得太大.

@Gortok:我知道..但是设计时考虑到了IE6,大多数用户(90%左右)在登录这个应用程序时仍然使用IE6 ......所以我从未看到需要考虑多个打开的标签.



1> 小智..:

我建议避免使用$ _SESSION存储搜索过滤器,而是将它们编码在搜索查询字符串中(即/search.php?filter1=val&filter2=val等).这样,每个窗口都有一个唯一的URL,并避免破坏另一个窗口.

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有