powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / CSR и локальные переменные
15 сообщений из 15, страница 1 из 1
CSR и локальные переменные
    #34594961
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допустим, есть CSR-тег
Код: plaintext
1.
2.
3.
4.
5.
6.
<csr:rule name=xxx match=xxx >
<csr:action>
 //Создание объектов, и какие-то действия с ними
 <csr:children>
  //Работа с объектами и закрытие объектов
<csr:action>
</csr:rule>
Все бы хорошо, но переменные внутри action будут затирать внешние переменные.
Можно сделать переменные cо специальными названиями, вроде ruleXXXi, но даже в этом случае в конструкциях типа
Код: plaintext
1.
2.
3.
<xxx>
 <xxx>
 </xxx>
</xxx>
переменные вложенного тега будут затирать переменные внешнего тега.
Как разделить контексты переменных разных тегов? На ум лезут одни извращения.
...
Рейтинг: 0 / 0
CSR и локальные переменные
    #34594968
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приватные переменные как я понял, в csr-тегах нельзя сделать?
...
Рейтинг: 0 / 0
CSR и локальные переменные
    #34596010
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В упор не понятно что мешает вручную указывать new и kill ??? :spy:
...
Рейтинг: 0 / 0
CSR и локальные переменные
    #34596033
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
new сделать можно, но непонятно, как потом вернуть предыдущее значение?

вот во что развернутся в csp-классе вложенные csr-теги
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 //начало csr-тега1
 n xxxVar
 s xxxVar=1
 
 //начало csr=тега2
 n xxxVar
 s xxxVar=2
 w xxxvar
 //конец csr-тега2
 
 w xxxVar 
 //конец csr-тега 1
в конце csr-тега1 я хочу видеть значение xxxVar=1
...
Рейтинг: 0 / 0
CSR и локальные переменные
    #34596286
solwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блок А.Н.new сделать можно, но непонятно, как потом вернуть предыдущее значение?

вот во что развернутся в csp-классе вложенные csr-теги
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 //начало csr-тега1
 n xxxVar
 s xxxVar=1
 
 //начало csr=тега2
 n xxxVar
 s xxxVar=2
 w xxxvar
 //конец csr-тега2
 
 w xxxVar 
 //конец csr-тега 1
в конце csr-тега1 я хочу видеть значение xxxVar=1Если в силу каких то причин нет возможности называть переменные уникальными именами можно значение переменной сохранять временно двумя способами. Как я понимаю Вы используете CSP технологию? Если да, то значение можно сохранять в %session, или вставлять тэг <script language=cache></script> и в нем записывать значение переменной в глобал.
...
Рейтинг: 0 / 0
CSR и локальные переменные
    #34596348
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том, что это один csr-тег, вложенный один в другой.
И генерация для каждого экземпляра csr-тега своих уникальных переменных - чрезмерное усложнение кода.
Хранение переменных в сессии не решает проблему конфликта переменных с одним именем.

Можно сделать переменную - имя тега, и все переменные делать с префиксом имени тега.
Можно сделать аналог стека и сохранять свои переменные туда.
Но все это не слишком красивое решение.

Нельзя же сделать приватные переменные в каше "на ровном месте", не на уровне программы?
...
Рейтинг: 0 / 0
CSR и локальные переменные
    #34596399
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.new сделать можно, но непонятно, как потом вернуть предыдущее значение?

вот во что развернутся в csp-классе вложенные csr-теги
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 //начало csr-тега1
 n xxxVar
 s xxxVar=1
 
 //начало csr=тега2
 n xxxVar
 s xxxVar=2
 w xxxvar
 //конец csr-тега2
 
 w xxxVar 
 //конец csr-тега 1
в конце csr-тега1 я хочу видеть значение xxxVar=1Что значит непонятно ???
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
 //начало csr-тега1
 n xxxVar
 s xxxVar=1
 
 //начало csr=тега2
 n xxxVar
 s xxxVar=2
 w xxxvar
 #; вот и все проблемы
 k xxxVar
 //конец csr-тега2
 
 w xxxVar 
 #; и тут так же
 k xxxVar
 //конец csr-тега 1
solwolf код CSR выполняется в момент компиляции страницы с указанным тегом - откуда там %session ?

Для передачи между секциями можно и наверное следует использовать временные глобалы.
...
Рейтинг: 0 / 0
CSR и локальные переменные
    #34598858
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После первого kill переменная будет undefined - вот это проблема :-(
Cache for Windows (Intel) 5.2 (Build 329) Thu Jun 15 2006 16:40:08 EDT

код csr выполняется дважды - одни раз во время компилляции csp, второй раз во время выполнения - уже сгенерированный код. Если хотим сделать уникальные переменные, нужно не повториться в обоих случаях. Поэтому хочется просто научиться изолировать переменные, независимо от их имен.

%session в этом не помогает, скорее наоборот - будут конфликты с тегами других страниц этого приложения.

в С++ например это запросто
Код: plaintext
1.
2.
3.
4.
{int i=1;
   {int i=2; //то разные переменные.
   }
}

В каше 5 сделали сделали шаг в эту сторону, например введением PROCEDUREBLOCK и приватных/общих переменных
Код: plaintext
1.
2.
3.
4.
proc() [publickVar1,publickVar2]
{
 s i=1 //приватная переменная
 s publickVar1=2 //общая переменная
}
А вот "на ровном месте", этого сделать похоже нельзя, по крайней мере без хитроумных операций.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
CSR и локальные переменные
    #39132489
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.new сделать можно, но непонятно, как потом вернуть предыдущее значение?

вот во что развернутся в csp-классе вложенные csr-теги
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 //начало csr-тега1
 n xxxVar
 s xxxVar=1
 
 //начало csr=тега2
 n xxxVar
 s xxxVar=2
 w xxxvar
 //конец csr-тега2
 
 w xxxVar 
 //конец csr-тега 1
в конце csr-тега1 я хочу видеть значение xxxVar=1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 //начало csr-тега1
 n xxxVar
 s xxxVar=1
 
 //начало csr=тега2
 d 
 . n xxxVar
 . s xxxVar=2
 . w xxxvar
 //конец csr-тега2
 
 w xxxVar 
 //конец csr-тега 1
...
Рейтинг: 0 / 0
CSR и локальные переменные
    #39132522
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
 s x=1 x "n x s x=2 w x" w x
21
...
Рейтинг: 0 / 0
CSR и локальные переменные
    #39133456
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.Поэтому хочется просто научиться изолировать переменные, независимо от их имен.

А вот "на ровном месте", этого сделать похоже нельзя, по крайней мере без хитроумных операций.Если ТС всё ещё интересно: XECUTE (или $XECUTE )Пример test.mac
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
//Создание объектов, и какие-то действия с ними

//начало csr-тега1
n xxxVar
s xxxVar=1
w xxxVar

//Работа с объектами и закрытие объектов

//начало csr=тега2
X ("() { s xxxVar=2 w xxxVar }")
//конец csr-тега2

w xxxVar 
//конец csr-тега 1

USER>d ^test
121

PS:Блок А.Н.
Код: plaintext
1.
2.
3.
...
 s xxxVar=2
 w xxx v ar
...
...
Рейтинг: 0 / 0
CSR и локальные переменные
    #39134220
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitЕсли ТС всё ещё интересноНу блин, я понимаю, некропостинг. Ну год, ну два. Но ведь прошло уже 8 лет!
...
Рейтинг: 0 / 0
CSR и локальные переменные
    #39134278
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.servitЕсли ТС всё ещё интересноНу блин, я понимаю, некропостинг. Ну год, ну два. Но ведь прошло уже 8 лет!
  • не я его "оживил". Я тоже был немало удивлён.
  • если Вам уже не нужно, возможно будет интересно новичкам.
...
Рейтинг: 0 / 0
CSR и локальные переменные
    #39134387
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С трудом вспоминаю, что тогда я пытался разобраться и делать что-то умное с помощью CSR-тегов, но через некоторое время забросил эту идею. И была проблема в том, что если внутри методов тега есть какие-нибудь переменные, то их чистота не гарантируется. Честно говоря, я и сейчас не вижу, как можно обеспечить их чистоту, кроме как генерации уникальных имен переменных для каждого появления CSR-тега. Тогда хотелось более красивого решения.
...
Рейтинг: 0 / 0
CSR и локальные переменные
    #39134396
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нинада CSR новичкам, нет. Не увлекайте их тёмной стороной.
На сервере - API (JSON, XML). Html - компоненты давно уехали на клиент ( Angular, Riot, что угодно ).
В крайнем случае - Zen ( свят, свят, свят :)
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / CSR и локальные переменные
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]