无法通过系统间缓存服务器方法设置变量值
Unable to set variable value from Intersystem Cache Server Method
我在使用 Javascript 进行系统间缓存服务器页面时遇到了一个问题。
这是我的示例代码:
案例一:
<script language="Javascript">
function test1(){
var val = 0;
#server(..Set())#;
alert(val);
}
</script>
<script language="Cache" method="Set">
Write "val = 50;"
</script>
在这种情况下,当函数test1()
被调用时,值=0,它是一个局部变量。
案例二:
<script language="Javascript">
function test1(){
#server(..Set())#;
alert(val);
}
</script>
<script language="Cache" method="Set">
Write "val = 50;"
</script>
在这种情况下,当函数 test1()
被调用时,val = 50 并且值现在是一个全局变量。
所以我的问题是:
- 如何通过缓存服务器方法成功设置案例1中的值?
- 为什么 Cache Server Method 可以在 Javascript 中声明全局变量但不能为变量设置值?
您不能仅通过这种方式在服务器端生成 javascript 代码。您可以 return 此方法中的一个值并在 Javascript 中取回它。
<script language="Javascript">
function test1(){
var val = #server(..Set())#;
alert(val);
}
</script>
<script language="Cache" method="Set">
quit 50
</script>
实际上你可以用这种方式设置一个变量,但它必须在全局范围内而不是在函数范围内。如果您从函数中删除 var val=0;
它应该可以工作。最好只使用 return 值而不是使用硬编码变量名,以避免范围界定、重复命名等问题。
我在使用 Javascript 进行系统间缓存服务器页面时遇到了一个问题。
这是我的示例代码:
案例一:
<script language="Javascript">
function test1(){
var val = 0;
#server(..Set())#;
alert(val);
}
</script>
<script language="Cache" method="Set">
Write "val = 50;"
</script>
在这种情况下,当函数test1()
被调用时,值=0,它是一个局部变量。
案例二:
<script language="Javascript">
function test1(){
#server(..Set())#;
alert(val);
}
</script>
<script language="Cache" method="Set">
Write "val = 50;"
</script>
在这种情况下,当函数 test1()
被调用时,val = 50 并且值现在是一个全局变量。
所以我的问题是:
- 如何通过缓存服务器方法成功设置案例1中的值?
- 为什么 Cache Server Method 可以在 Javascript 中声明全局变量但不能为变量设置值?
您不能仅通过这种方式在服务器端生成 javascript 代码。您可以 return 此方法中的一个值并在 Javascript 中取回它。
<script language="Javascript">
function test1(){
var val = #server(..Set())#;
alert(val);
}
</script>
<script language="Cache" method="Set">
quit 50
</script>
实际上你可以用这种方式设置一个变量,但它必须在全局范围内而不是在函数范围内。如果您从函数中删除 var val=0;
它应该可以工作。最好只使用 return 值而不是使用硬编码变量名,以避免范围界定、重复命名等问题。