缓存服务器页面(CSP)中的缓存可变范围

问题描述 投票:1回答:1

我试图在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>
  1. 在页面加载期间,警报将test返回为“1”而不是“2”。这里发生了什么?
  2. 还有其他更好的方法可以在CSP中存储这种数据吗?
javascript intersystems-cache objectscript
1个回答
1
投票

#()#在页面呈现期间执行。

所以你得到的页面如下。右键单击生成的页面并查看其源代码。

<script language="Javascript">
function init(){
 #server(..Update())#
 alert("1");
}
</script>

此外,考虑到通常,不同的CSP请求由不同的服务器进程处理,因此处理全局变量中的状态不是一个好主意。

如果您需要为每个用户会话保留数据,最好的方法是使用%session

© www.soinside.com 2019 - 2024. All rights reserved.