我正在尝试将临时数据存储在CSP中。
由于并发性问题,我尝试避免^ Global和%session,并且出于安全性问题,我尝试避免Javascript变量。
然后我遇到了混乱。以下代码全部包含在一个CSP中:
<script language="Cache" runat="server">
s test = 1
</script>
<script language="Cache" method="Update">
s test = 2
</script>
<script language="Javascript">
function init(){
#server(..Update())#
alert("#(test)#");
}
</script>
<body onload="init();"></body>
在页面加载期间,警报返回test
为“ 1”而不是“ 2”。这是怎么回事?
还有其他更好的方法将这种数据存储在CSP中吗?
答案 0 :(得分:1)
#()#在页面渲染期间执行。
因此您将获得如下所示的页面。右键单击生成的页面并查看其源代码。
<script language="Javascript">
function init(){
#server(..Update())#
alert("1");
}
</script>
另外,请考虑通常,不同的CSP请求由不同的服务器进程处理,因此处理全局变量中的状态不是一个好主意。
如果您需要保留每个用户会话的数据,最好的方法是使用%session