Raj*_*esh 6 javascript asp.net ajax
几天来一直坚持这个问题,真的需要,并希望得到一些帮助.我的要求是,当用户导航离开我们的页面时,我想进行服务器端回调以清除某些对象,而不单击注销.出于商业原因,我们的ASP.NET会话超时必须设置为非常高的值.此外,我不想弹出警报/对话框以强制用户返回页面并单击"注销".
到目前为止我所得到的解决方案是通过在页面中嵌入此javascript来进行AJAX回调.
window.onunload = pageleave;
function pageleave() {
alert('test');
PageMethods.CheckLogout('abc','xyz',OnSucceed,OnFail);
}
Run Code Online (Sandbox Code Playgroud)
这是问题所在:对于IE和Firefox,卸载触发,警报被看到,我看到在我想要的所有情况下我的C#侧的回调
a) User closes browser
b) User types in a new URL in the address bar
c) User clicks on a link causing page to reload
Run Code Online (Sandbox Code Playgroud)
对于Chrome和Safari,案例a和b工作正常.但是,当用户单击链接时,会导致我的aspx页面重新加载,我的C#端代码不会被调用.但javasacript警报被解雇了.
我试图了解如何让Chrome/Safari像IE/Firefox一样运行.这有可能吗?
在此先感谢您的帮助,
拉杰什.
使用beforeunload事件而不是unload事件.
此外,使用同步AJAX请求,而不是异步请求,以便在beforeunload函数退出之前完成请求.
我不确定如何使用JavaScript框架执行同步AJAX请求.在jQuery中,它看起来像这样:
window.onbeforeunload = function() {
jQuery.ajax({
url: '/page/to/load',
async: false
});
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8094 次 |
| 最近记录: |