我们有一个Singleton,它维护applet的当前UI状态。问题是:
我发现的原因是,当用户第二次返回applet时,保存UI状态的Singleton无法保持其状态。所有静态变量都将重置为其默认值。
我发现applet应该是无状态的link:
其中说:
如果由类加载器缓存获取的内存不是出于其他目的而需要,则存储在applet中的值可能会在调用之间保留。但你不能依赖这种行为。通常,applet应该是无状态的。如果需要持久存储,请使用浏览器cookie。
在这种情况下,我们如何为Applet创建单身人士?我无法在浏览器cookie中保存整个UI状态。
答案 0 :(得分:1)
我看到了一些选项:
向服务器发送http请求以保存当前状态,使用ajax调用,在applet中引用http调用:how to (simply) generate POST http request from java to do the file upload
使用Cookie保存状态,以下是参考:can java applets (not signed) create / read cookies?
调用javascript函数以使用Jstorage将状态保存在浏览器的本地存储中,参考:http://www.jstorage.info/
使用Jstorage非常简单看看这个存储名为“contador”的计数器的例子
<html><head>
<script src="jquery.min.js"></script>
<script src="jstorage.js"></script>
<script>
function init() {
var contador = $.jStorage.get("contador");
$('#you').html('contador=' + contador);
contador++;
$.jStorage.set("contador", contador);
}
</script>
</head>
<body onload="init()">
<div id="you"></div>
</body>
</html>