所以我的网页有一个链接删除广告
,它应该从我的网站中删除广告,并记住在 session 的其余部分中不要显示任何广告。
我的方法首先是 Controller 中的私有(private)静态变量,可以通过方法设置。
private static boolean Ads = true;
public static void closeAds() {
Logger.debug("Ads removed");
Ads = false;
}
我做了一些研究,发现play框架提供的session()
方法可能更合适。
无论如何,我的问题是,我不知道如何在我的 html 页面中调用这些 Controller 方法,因为每个 HTTP 请求都必须有一个响应,而且我不想重新加载我的页面,我只想设置变量或 session 变量。
我认为 Ajax 可能是答案?我还想不出任何办法
最佳答案
Play 将客户端的 session 信息保存在签名的 cookie 中。
所以你有两个选择(我会选择第二个):
1) Ajax 调用来更新游戏的 session 数据(因为您不希望使用 javascript 在客户端修改此数据,因为它是签名的 cookie 并会破坏内容)
2)再创建一个cookie来保存广告开/关标志,并在客户端通过javascript修改它,然后可以在服务器端检查这个cookie的值来实现广告开/关。这将阻止您进行额外的 ajax 调用。
关于java - 更改 session 变量而不重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28540522/