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

时间:2019-05-14 03:12:38

标签: javascript java jquery onbeforeunload stripes

美好的一天,

我有Java Web应用程序,登录后我会做如下操作:

  1. 登录后,系统将显示登录页面,在登录页面中将有一个选项卡菜单,并且有很多模块可从该选项卡菜单触发以导航到其他页面。
  2. 当用户尝试导航到其他页面时,我需要实现一些正在运行的逻辑,该逻辑将成为检查某项并返回boolean的方法,如果boolean为true,则它将直接用户到他从导航选项卡中单击的页面。如果boolean为假,那么我希望系统将用户定向到特定页面。

首先,我正在考虑使用$(window).unload(),然后对我的Java代码进行ajax来执行此逻辑,但是,我发现unload方法已经从最新的{{ 1}}。

此后,我找到了jQuery beforeunload方法。我用它并调用ajax到Java代码。但是,我发现在调用ajax时,如果我的jQuery为false,它不会将我定向到特定页面,它仍会将我定向到我单击的页面。

**我的boolean版本是jQuery v1.12.4,我正在使用jQquery作为服务器代码**

有什么建议或更好的解决方案可以做到这一点?

请告知。

1 个答案:

答案 0 :(得分:0)

我认为我找到了解决方案,但不确定是否是最佳实践。

我要使用def markastweeted(): """Sets tweeted field to 1""" with open("data.csv", "r", newline='') as csvDataFile: r = csv.DictReader(csvDataFile) fieldnames = r.fieldnames quotesdb = [row for row in r] for line in quotesdb: #Field names in CSV #----- id_serial #----- id_season #----- quote #----- file_path #----- id_group #----- trigger_time #----- tweeted #----- check "tweeted" field for data -- if true go to next row if not line['tweeted']: line['tweeted'] == 1 # writing back to file **(OVERWRITE)** with open("data.csv", "w", newline='') as fout: writer = csv.DictWriter(fout, fieldnames=fieldnames) writer.writeheader() writer.writerows(quotesdb) jQuery,当我离开登录页面时,使用它来调用后端代码。

beforeunload

然后使用ajax调用:

$(window).bind('beforeunload', function(){
  myfun();
});