我使用JavaScript jQuery开发了一个ASP.NET MVC应用程序。
我已实施使用onbeforeunload
/ beforeunloadevent
同时限制多个用户登录。
一切正常,但有时无法在onbeforeunload
/ beforeunloadevent
中使用。
var myEvent = window.attachEvent || window.addEventListener;
var chkevent = window.attachEvent ? 'onbeforeunload' : 'beforeunload'; /// make IE7, IE8 compitable
myEvent(chkevent, function (e) { // For >=IE7, Chrome, Firefox
if (!validNavigation)
{
$.ajax({
url: '@Url.Action("ClearSession", "Account")',
type: 'Post',
data: "",
dataType: "json",
success: function (data)
{
console.log("onbeforeunload Success")
},
error: function (data) {
console.log("onbeforeunload Error")
}
});
}
return null;
});
答案 0 :(得分:0)
AJAX - jQuery
中还有一个函数称为complete: function(){};
此function
检查天气request is running
是否在浏览器上显示相同的用户ID和密码,如下所示
complete: function() {
$(this).data('requestRunning', false);
}
此处的整个AJAX-jQuery
实现相应地查看并实施,我希望它能为您工作
代码
$('#do-login').click(function(e) {
var me = $(this);
e.preventDefault();
if ( me.data('requestRunning') ) {
return;
}
me.data('requestRunning', true);
$.ajax({
type: "POST",
url: "/php/auth/login.php",
data: $("#login-form").serialize(),
success: function(msg) {
//stuffs
},
complete: function() {
me.data('requestRunning', false);
}
});
});
请参阅此me.data('requestRunning', false);
是否会获得针对相同用户ID和密码运行的任何请求returns false
并取消登录。
如需更多帮助,请参阅此处链接Duplicate, Ajax prevent multiple request on click
这不是完美的解决方案,但您可以像这样实施