Невозможно установить значение переменной из метода Intersystem Cache Server - PullRequest
0 голосов
/ 08 сентября 2018

Я столкнулся с вопросом, когда я делаю страницу межсистемного кэша с 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(), значение = 0 и это локальная переменная.

Случай 2:

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

В этом случае, когда вызывается функция test1(), val = 50 и значение теперь являются глобальной переменной.

Итак, мои вопросы:

  1. Как успешно установить значение в случае 1 с помощью метода сервера кэширования?
  2. Почему Cache Server Method может объявить глобальную переменную в Javascript, но не может установить значение переменной?

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

На самом деле вы можете установить переменную таким образом, но она должна быть в глобальной области видимости, а не в области функций. Если вы удалите var val=0; из вашей функции, она должна работать. Лучше просто возвращать значения, а не использовать жестко закодированные имена переменных, чтобы избежать проблем с областью видимости, дублированием имен и т. Д.

0 голосов
/ 08 сентября 2018

Таким способом вы не можете просто сгенерировать код JavaScript на стороне сервера. Вы можете вернуть одно значение из этого метода и вернуть его обратно в Javascript.

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