2010-08-24 69 views
2

我在这里阅读了几篇文章,这些文章激发了我的解决方案,但是想知道我是否以正确的方式进行操作。使用jQuery捕获丢失的连接或丢失身份验证事件

我所做的是创建一个捕捉到一个jQuery的Ajax错误事件:通过另一个Ajax调用

$('body').ajaxError(function(xmlHttpRequest, ajaxOptions, error) { 
     if (!locked) CheckUserAuthentication(); 
}); 

然后CheckUserAuthentication()去试图检查认证仍然有效web服务。如果它返回一个需要重新登录的值,那么我会提示一个显示登录表单的模式框。如果ajax调用失败,那么假设互联网连接已经丢失是安全的,所以我会提示另一个显示消息的模块框和一个js循环,它们会间隔再次检查连接。

我首先关心的是,上面的事件代码实际上会重复触发自身,如果它达到第二个Ajax错误使其成为重复循环。所以我做了一个变量来设置布尔值是否锁定事件以防止这种情况。

我的问题:

1)我做得对吗?

2)如果是,那么我可以处理一个ajax异常,这样我就不需要再次触发.ajaxError事件了吗?

3)任何其他的想法,我在做什么很有效?

我感谢所有的帮助!

回答

0

我已经实现了这样的东西。

我为beforeSend设置了jQuery Ajax选项,以发出ajax请求来查看用户是否仍然登录。如果未登录,我使用HTTP基本身份验证。

HTTP基本验证是丑陋和跛,但在其轨道上停止原的Ajax事件死者而言在所有浏览器美妙的形态特性,同时试图让用户身份登录。

HTTP基本认证后,原始的Ajax事件恢复。


结帐JavaScript源文件,它应该提供一些见解:http://bit.ly/g5jUes

相关问题