ПредишенСледващото

Различен контекст и общите модули

Използването на общите свойства на модули предпроцесорни и инструкциите могат да бъдат организирани за извършване на различни техники за общи модули в правилния контекст.
Всеки модул е ​​обща собственост е отговорен за способността да се компилира (и изпълни) главния модул в определен контекст.
Следните свойства са отговорни за контекста, в който са налични методи общия модул:
● Client (нормално приложение) - най-често срещаните методи модул са на разположение за дебел клиент в нормален режим заявление;
● Client (управлявано) - най-често срещаните методи модул са на разположение за тънък клиент, уеб клиент, както и дебел клиент
Режим успя приложения;
● сървър - методи общ модул ще бъдат на разположение на сървъра;
● Външна връзка - методи общ модул ще бъде на разположение във външната връзка.
Ако зададете няколко свойства, то това означава, че общите методи на модула ще бъдат на разположение в няколко ситуации.
Ако общ модул настроите сървъра свойства и дори някои имот, това означава, че общият модул ще бъде на разположение, както на сървъра и избрания клиента. Трябва да се разбере, че в действителност той ще бъде няколко версии на компилиран код (броят на избрани клиенти и действителната сървър).
В този случай, ако методът е подредена по такъв общ модул се нарича от клиента, след което клиентът ще използва копие от общия модул и ако сървърът - сървър. В този случай, с помощта на директивите на предпроцесорни (вж. Тук) може да "защити" сървъра на кода, че тя не може да бъде изпълнена.
Помислете за пример. Като цяло модул (което може да се извърши на тънък клиента и сървъра) е метод, който има няколко различно поведение от страна на тънък клиент и сървъра страна. Нека да видим как това може да се направи:

MetodObschegoModulya () процедура за износ
// Тук е важно място различен код
# Ако TonkiyKlient Тогава
// ще покаже предупреждение
PokazatOpovescheniePolzovatelya ( "На клиента");
# ENDIF
KonetsProtsedury
След това, на страната на сървъра код ще получите следния вид:
MetodObschegoModulya () процедура за износ
// Тук е важно място различен код
KonetsProtsedury
И от страна на кода на тънък клиент ще бъде, както следва:
MetodObschegoModulya () процедура за износ
// Тук е важно място различен код
// ще покаже предупреждение
PokazatOpovescheniePolzovatelya ( "На клиента");
KonetsProtsedury

За да прехвърлите контрол от клиента към сървъра, има няколко начина:
● наричаме метод на сървъра сподели модул;
● в модула на формата или се обадете на метод на екипа, който се предшества от директивите за съставяне NaServere, NaServereBezKonteksta

Повторна употреба на стойностите за връщане

Ако главния модул не е глобално, тя стане достъпна имот Повторно използване на стойности връщане. Този имот може да отнеме от следните стойности:
● Не използвайте - повторно използване на стойности за връщане за функциите на този общ модул не се използва.
● В поканата и на сесията в - за основния метод за определяне модул използва повторно използване на данни. Същността на този метод се състои в това, че системата за изпълнение по време на код съхранява параметрите и резултатът от първата функция след извикването на функция. При активиране на функцията се нарича отново със същите параметри, връща запаметените стойности (първото обаждане), без да задействате функцията. Ако функцията по време на неговото изпълнение се променят стойностите на параметрите, функцията за обратно повикване няма да го направя.
Можете да изберете следните характеристики спести резултатите от обаждания:
● ако функция се изпълнява на сървъра и се нарича от кода на сървъра, а след това на стойностите на параметрите и в резултат на поканата се съхраняват за текущата сесия на сървъра страна;
● Ако функцията се извършва на дебел или тънък клиент, стойностите на параметрите и резултатите от поканата се съхраняват от страна на клиента;
● Ако функцията се извършва от страната на сървъра, и се нарича от кода на клиента, стойностите на призоваващи параметри и се съхранява от страна на клиента и сървъра страна (за текущата сесия).
Съхранените стойности се заличават:
● Ако Имотът е разположен на повикване:
● От страна на сървъра - при връщане на контрола към сървъра;
● От страна на клиента - в края на процедурата, или език функцията вградена най-високо ниво (причинено от системата от интерфейса, а не от друга процедура или функция вграден език);
● Ако общата единица Имотът е разположен на заседанието:
● От страна на сървъра - в края на сесията;
● От страна на клиента - когато клиентското приложение е затворен.
Съхранените стойности ще бъдат изтрити:
● на сървъра, в дебел клиент, във външна връзка, на тънък клиент и уеб клиент с нормални връзки за скорост - 20 минути след изчисляване на съхранена стойност или 6 минути след края на последния използването;
● тънък клиент и уеб клиент с нисък дебит - 20 минути след изчисляване на запаметените стойности;
● при недостиг памет в сървъра на работния процес;
● рестартиране на работния процес;
● Ако клиент преминаването към друг работен процес.
След отстраняване ценности изнесени извикване на функция се изпълнява като първата покана.
За да изпълните процедурите общи модули, този хотел няма ефект - процедури винаги се изпълняват.

Ако общата стойност модул имот повторно използване на връщане е настроен на Включен сесията. след връщането стойност на такъв модул, не можете да използвате стойност от тип TempTablesManager.
Ако общото функцията на модула, с установената повторната употреба, наречен от същия този общ модул (например, името ObschiyModul), вие трябва да имате предвид следните характеристики: ако функцията се нарича с името на MoyaFunktsiya (). изпълнението на функция да се случи на всеки извикване на функция. За да се използва съхранената стойност, функцията трябва да бъде извикана от неговото пълно име:
ObschiyModul.MoyaFunktsiya ().
глобален метод ObnovitPovtornoIspolzuemyeZnacheniya контекст () премахва всички многократна употреба стойност, както за страната на сървъра и от страна на клиента, независимо от мястото на извикване на метод. След извършване метод ObnovitPovtornoIspolzuemyeZnacheniya (), първото извикване на функция се изпълнява напълно.

навигация в публикациите

Свързани статии

Подкрепете проекта - споделете линка, благодаря!