我负责提出一种方法,通过使用后退按钮(意味着他们离开我们的网站并返回)来确定一个人是否已经到达我们的网站,如果是,则将其注销。阻止人们返回网站?
我想出了一些选择,但我想知道我可能会失去什么其他选项。仅供参考,我们确实有一个会话状态,所以在服务器端我们需要长时间缺席,但他们希望在客户端进行额外的检查。
选项1:通过onunload设置烹饪,过期时间为x秒。在我们网站的每一页上,我检查了上述cookie。如果存在,我认为他们来自我们网站上的另一个页面,什么都不做。如果它不在那里,我认为它们已经离开我们的网站超过了x秒,并且重定向了。 Con:运行OS5的Blackberry设备不支持onunload。选项2:与#1相同,但不是设置cookie onunload,而是在每次点击每个链接时都将其设置为转到我们网站上的其他页面。 con:messy
选项3:
检查我们网站每页上每个负载的浏览器历史记录。如果以前的网址不是我们的网址,我们会将其注销。缺点:浏览器支持?
由于安全性,它看起来像上一个/下一个历史对象现在在现代浏览器中被阻止。选项4:通过JS,每隔x秒检查一次cookie。如果存在,请将其重置为在x秒内过期。如果不在那里,假设他们已经从其他地方回来了。答:不知道是否在页面可能位于后台(应用程序在iPhone上切换或在桌面浏览器中使用不同的选项卡)时设置JS cookie。
我应该考虑的其他选项?有没有一种“适当”的方式来处理这个问题?这只是抓住了试图阻止浏览器正常行为的吸管?
我对这方面的其他一些探索感兴趣。我已经看到一些有趣的Javascript与cookie和其他与AJAX会话检查。 – tamarintech 2011-04-05 18:55:30
选项5:放弃。尽管如此,选项1和选项2有明显的缺陷(互联网的间歇性特征之一),但考虑到事实上的标准是现在选项卡式浏览,选项3会被排除在外,选项4也是如此只是简单的愚蠢。除此之外,还有什么其他的东西可以抓住吸管,击败一匹死马 - 无论委婉说法如何,它们在这种棘手的情况下都会带来麻烦。 – 2011-04-05 18:58:30
我应该给更多的上下文。这主要是针对移动设备的。因此,由于网络滞后,我们不会采用AJAX路线。不过,标签式浏览是一个问题,就像移动Safari一样。 – 2011-04-05 19:01:13