繁体   English   中英

更改会话变量而无需重新加载页面

[英]Change session variables without reloading page

因此,我的网页上有一个“链接remove Advertisment链接,该链接应从我的网站中删除广告,并记住在剩余的会话中不展示任何广告。

我最初的方法是在控制器中使用私有静态变量,可以通过方法设置。

private static boolean Ads = true;

public static void closeAds() {
    Logger.debug("Ads removed");
    Ads = false;
}

我做了一些研究,发现play框架提供的session()方法可能更合适。

无论如何,我的问题是,我不知道如何在html页面中调用那些控制器方法,因为每个HTTP请求都必须具有响应,并且我不想重新加载页面,所以我只想设置变量或会话变量。

我以为Ajax可能是答案? 我还没想出什么

Play将会话信息保留在客户端的签名Cookie中。

因此,您有2个选择(我会选择第二个):

1)Ajax调用来更新播放的会话数据(因为您不想在客户端使用javascript修改它,因为它是一个签名的cookie并破坏了东西)

2)创建另一个cookie,以保持广告的开/关标志,并在客户端通过javascript对其进行修改,然后您可以在服务器端检查此cookie的值以实现广告的开/关。 这将防止您进行额外的ajax调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM