缓存服务器页面 (CSP) 中的缓存变量作用域
Cache Variable Scope in Cache Server Page (CSP)
我正在尝试在 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>
在页面加载期间,警报 return test
为“1”而不是“2”。这里发生了什么?
还有其他更好的方法可以在 CSP 中存储此类数据吗?
#()#在页面渲染时执行。
所以你得到如下页面。右键单击生成的页面并查看其源代码。
<script language="Javascript">
function init(){
#server(..Update())#
alert("1");
}
</script>
此外,考虑到通常情况下,不同的 CSP 请求由不同的服务器进程处理,因此在全局变量中处理状态并不是一个好主意。
如果您需要为每个用户会话保留数据,最好的方法是使用 %session
我正在尝试在 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>
在页面加载期间,警报 return
test
为“1”而不是“2”。这里发生了什么?还有其他更好的方法可以在 CSP 中存储此类数据吗?
#()#在页面渲染时执行。
所以你得到如下页面。右键单击生成的页面并查看其源代码。
<script language="Javascript">
function init(){
#server(..Update())#
alert("1");
}
</script>
此外,考虑到通常情况下,不同的 CSP 请求由不同的服务器进程处理,因此在全局变量中处理状态并不是一个好主意。
如果您需要为每个用户会话保留数据,最好的方法是使用 %session