javascript - 更好的解决方案或更换window.unload
问题描述
再会,
我有 java web 应用程序,我会在登录后执行以下操作:
- 登录后,系统会显示登陆页面,在登陆页面中,会有一个标签菜单,并且有很多模块可以从标签菜单中触发导航到不同的页面。
- 当用户尝试导航到其他页面时,我需要实现一些运行逻辑,该逻辑将是一种检查某些内容并返回 a 的方法
boolean
,如果boolean
为真,那么它将引导用户到他从导航选项卡单击的页面。如果boolean
为假,那么我希望系统将用户引导到特定页面。
起初,我正在考虑使用$(window).unload()
然后对我的 java 代码执行 ajax 来执行此逻辑,但是,我发现该unload
方法已经从 latest 中删除jQuery
。
之后我找到了beforeunload
jQuery
方法。我使用它并调用 ajax 到 java 代码。但是,我发现在调用ajax时,如果我的为boolean
false,它不会将我定向到特定页面,它仍然会将我定向到我单击的页面。
** 我的jQquery
版本是 jQuery v1.12.4,我Stripes
用于服务器代码**
有什么建议或更好的解决方案来做这种方法吗?
好心提醒。
解决方案
我想我找到了解决方案,但不确定是否是最佳实践。
beforeunload
当我离开登陆页面时,我使用jQuery 如下调用后端代码。
$(window).bind('beforeunload', function(){
myfun();
});
然后使用ajax调用:
function myfun(){
// Write your business logic here
var updateViewGuideUrl = '<s:url beanclass="com.cs.c.ui.customer.action.LandingAction" event="loginCheck2"/>';
$.ajax({
url : updateViewGuideUrl,
success: function(data, textStatus) {
window.location.href = "http://stackoverflow.com";
}
});
}
推荐阅读
- c# - 异步/等待在方法结束时抛出异常
- webpack - Webpack 将一些文本注入站点
- c++ - QtCreator 如何识别正在使用的覆盖?
- protobuf-java - 将 protobuf 转换为其他 protobuf
- swift - Swift 枚举值不可设置
- sql - 正则表达式解析至少 20 个字符文本,字符串中没有空格
- java - 如何将带有句点(。)的 xml 标记转换为 jaxb 变量
- reactjs - Visual Studio 2017(不是 VS Code)中的 React (jsx) 支持
- javascript - 如何在页面加载时生成随机数?
- java - HashMap get 方法在 hm.get(hm) 上抛出错误