Я пытаюсь сохранить временные данные в 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>
Во время загрузки страницы предупреждение возвращает test как «1», а не «2». Что здесь происходит?
И есть ли другой лучший подход для хранения таких данных в CSP?
Мне нужен CSP, так как он является частью веб-приложения, а API REST не настроен. Я могу использовать только то, что у меня есть сейчас.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


#()# выполняется во время рендеринга страницы.
поэтому вы получаете страницу, подобную следующей. Щелкните правой кнопкой мыши сгенерированную страницу и просмотрите ее исходный код.
<script language = "Javascript">
function init(){
#server(..Update())#
alert("1");
}
</script>
Кроме того, учтите, что обычно разные запросы CSP обрабатываются разными серверными процессами, поэтому не рекомендуется обрабатывать состояние в глобальных переменных.
Если вам нужно хранить данные для каждого сеанса пользователя, лучше всего использовать %session
Спасибо за объяснение. Мне рекомендуется избегать %session в лучшем случае из-за многофункциональных вкладок веб-приложения, и между ними часто возникают конфликты.
Зачем вообще нужен CSP? Проверьте подход REST-API с InterSystems. например community.intersystems.com/post/restful-api