1

我在使用 Javascript 进行系统间缓存服务器页面时遇到了一个问题。

这是我的示例代码:

情况1:

<script language="Javascript">
function test1(){
  var val = 0;
  #server(..Set())#;
  alert(val);
}
</script>
<script language="Cache" method="Set">
Write "val = 50;"
</script>

在这种情况下,当test1()调用函数时,value = 0,它是一个局部变量。

案例二:

<script language="Javascript">
function test1(){
  #server(..Set())#;
  alert(val);
}
</script>
<script language="Cache" method="Set">
Write "val = 50;"
</script>

在这种情况下,当test1()调用函数时,val = 50 并且 value 现在是一个全局变量。

所以我的问题是:

  1. 如何通过缓存服务器方法成功设置案例 1 中的值?
  2. 为什么缓存服务器方法可以在 Javascript 中声明全局变量但不能为变量设置值?
4

2 回答 2

2

您不能以这种方式在服务器端生成 javascript 代码。您可以从此方法返回一个值并在 Javascript 中取回它。

<script language="Javascript">
function test1(){
  var val = #server(..Set())#;
  alert(val);
}
</script>
<script language="Cache" method="Set">
 quit 50
</script>
于 2018-09-08T16:47:46.900 回答
1

实际上,您可以以这种方式设置变量,但它必须在全局范围内而不是在函数范围内。如果你var val=0;从你的函数中删除它应该可以工作。最好只返回值而不是使用硬编码的变量名,以避免范围界定、重复命名等问题。

于 2018-09-10T01:14:59.870 回答