更好的解决方案或更换Window.unload



美好的一天,

我有Java Web应用程序,我会做一些登录后的事情:

  1. 登录后,系统将在"着陆页"中显示着陆页,将有一个选项卡菜单,并且有许多模块可以从"选项卡"菜单触发以导航到其他页面。
  2. 我需要在用户试图导航到其他页面时实现某些逻辑运行,逻辑将是一种检查某些内容并返回boolean的方法,如果boolean为True,则它将将用户引导到他从中单击的页面导航选项卡。如果boolean是错误的,那么我希望系统将用户引导到特定页面。

首先,我想使用$(window).unload(),然后对我的Java代码进行AJAX进行此逻辑,但是,我发现unload方法已经从最新的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";
            } 
            });
}

最新更新