防止用户多次刷新页面
prevent user from refreshing a page multiple times
当用户按住F5键10-15分钟时,网页变得没有响应,最终IIS抛出错误时,我面临一个问题。
为了管理这一点,我想限制用户在一定次数后按下F5(锁定F5事件)。经过一段时间间隔,比如说5分钟后,我想启用刷新功能(解锁F5事件)。
我正在使用cookie来保存用户按F5的次数。为了处理cookie,我使用了这里提到的代码。
指定一个事件以检查是否按下F5键。
$(document).on("keydown", tryingF5);
我使用一个变量来保存cookie值,并在用户按下F5时将其递增。
var numberOfF5Click = 1;
var thresholdClick = 10;
var numberOfF5Click = 1;
function tryingF5(e) {
if ((e.which || e.keyCode) == 116) {
//alert(numberOfF5Click);
if (numberOfF5Click > thresholdClick) {
e.preventDefault();
alert("Multiple refresh has been prevented for some time!!");
}
numberOfF5Click = numberOfF5Click + 1;
docCookies.setItem("NumberOfF5Click", numberOfF5Click);
//alert("F5 Clicked =" + numberOfF5Click);
};
};
完整的代码设置在这里:JSBin
问题:代码没有按预期工作,有些地方是n,我该如何做得更好?
试试这个:
var everyXMinutes = 5 * 1000; // 5 seconds
var maxPerEveryXMinutes = 5; // 5 times per x seconds.
document.onkeydown = function (e) {
if (e.keyCode === 116) {
if (!localStorage.refreshments) {
localStorage.refreshments = JSON.stringify([]);
}
var refreshments = JSON.parse(localStorage.refreshments);
var date = new Date();
if (date.getTime() - refreshments[refreshments.length - 1] >= everyXMinutes) {
refreshments = [];
} else if (refreshments.length >= maxPerEveryXMinutes) {
alert("You must wait " + ((everyXMinutes - (date.getTime() - refreshments[refreshments.length - 1])) / 1000) + "s in order to be able to use the refresh function.");
return false;
}
refreshments.push(date.getTime());
localStorage.refreshments = JSON.stringify(refreshments);
}
};
相关文章:
- 如何在用户返回和上一个按钮时刷新下拉列表
- 防止用户多次刷新页面
- 用户使用浏览器时SPA中的问题's的后退或刷新功能
- 禁止用户刷新页面
- 当至少有一个用户触发事件而不刷新页面时,更改所有用户页面中的内容
- 允许用户在不刷新页面的情况下留下多条评论
- 如何在用户更新AngularJs中的控制器时刷新$state
- 当用户单击关闭浏览器时(但不是当用户单击刷新按钮时),JavaScript会确认启动
- 当用户刷新页面时,如何在单独的服务器中处理socket.io上的会话
- 重新启动/刷新时在Google Maps API上保存标记,之后's已被用户拖动.下面的
- 在用户提交表单后显示数据(从API调用检索),而不刷新页面
- 在JS web应用程序中,如何确保具有访问令牌的恶意用户无法刷新它
- 如何限制用户导航回以前的页面并刷新
- 检查用户是否刷新,返回,关闭浏览器等 socket.io
- 余烬.当用户刷新网站时,保留下拉菜单中的选择
- 当用户从下拉列表中选择时刷新 CKEDITOR
- 根据用户选择的计时器间隔自动刷新页面
- 在用户不刷新时更新 Web 应用程序
- 刷新所有联机用户的页面
- 基于Javascript的应用程序中的安全性-刷新用户哈希