Javascript 如何仅允许每个用户使用3个会话

Javascript 如何仅允许每个用户使用3个会话,javascript,Javascript,我有一个股票图表网站,用户可以登录,会话存储在php中 当用户登录时,我想限制他们一次只有3个选项卡(或N个选项卡)。当第4个选项卡打开时,第一个选项卡应该有一些警告,或者我做一些javascript工作来禁用ajax 我能够使用以下代码存储每个url var location = location.href; var old = window.sessionStorage.getItem("activetabs"); old = JSON.parse(old); newon

我有一个股票图表网站,用户可以登录,会话存储在php中

当用户登录时,我想限制他们一次只有3个选项卡(或N个选项卡)。当第4个选项卡打开时,第一个选项卡应该有一些警告,或者我做一些javascript工作来禁用ajax

我能够使用以下代码存储每个url

var location = location.href;
var old = window.sessionStorage.getItem("activetabs");
old = JSON.parse(old);
newone = old.push(location);
newonestring = JSON.stringify(newone);
window.sessionStorage.setItem("activetabs", location);
我试图设置超时,并每隔10秒检查url是否不在最后3个元素中。但重复的url在这里不起作用


PS:如果旧url的所有url都是相同的或不同的,但所有url都是相同的域,我将尝试阻止它。

如果这是一种安全措施,请知道用户可以忽略/覆盖您在JavaScript中执行的任何操作。这里要解决的根本问题是什么?为什么用户打开更多的标签页特别重要?每个标签页都会发送大量服务器请求,我想减少负载,因为用户在后台打开多个标签页。我不想太严格,即使我可以限制80个用户100个,我的带宽也会减少。让我们看看问题,而不是假设的解决方案。为什么页面发送这么多请求?(足以导致服务器出现问题。)这可以减少吗?它的高级图表库和我有很多价格、数量数据,我甚至有websocket连接。。因为用户希望延迟非常低,所以我希望尽可能让我的服务器保持红绿灯状态。如果用户看不到非活动选项卡,则更新它们是没有意义的,因此在它们返回页面之前,您最好不要更新它们。因此,使用此方法时,选项卡的数量是不相关的。要检测当前选项卡是否处于活动状态,请参见: