22.11.2004, 08:32 | #1 |
Участник
|
RunOn у классов
Добрый день!
Итересует такая ситуация: первый класс выполняется на сервере (RunOn = server) и внутри себя вызывает второй класс, который выполняется на клиенте (RunOn = client). Где в итоге будет выполняться второй класс? Спасибо!
__________________
Paul_ST |
|
22.11.2004, 09:30 | #2 |
Участник
|
new произойдет на сервере.
затем будет вызван метод pack. упакованные параметры будут переданы на клиента. где будет вызван свой new и unpack. выполнение второго класса будет происходить на клиенте. затем при помощи pack/unpack результаты будут переданы обратно на сервер. см. best practice, паттерн pack/unpack |
|
22.11.2004, 09:56 | #3 |
Участник
|
Спасибо за ответ!
Т.е. RunOn не равный "Called from" - жёстко определяет место выполнения класса и не может нарушаться?
__________________
Paul_ST |
|
22.11.2004, 12:25 | #4 |
Участник
|
определяет жестко.
а вот насчет нарушаться... может. но точный условий - не знаю. например, если job вручную через F5, то он всегда будет выполняться на клиенте что бы ни было написано в модификаторе. для того, чтобы job запустить на сервере, его надо запускать через menuitem. наверное для классов тоже какая-нибудь подобная фигня есть. но это эксперементировать надо. |
|
22.11.2004, 12:52 | #5 |
Administrator
|
Не встречал, чтобы свойство RunOn у классов не учитывалось ядром.
С Job'ами ситуация ясная. Они всегда выполняются Called From, независимо от модификаторов. Поэтому, если вызвать их из интерефейса, они будут запускаться на клиенте. MenuItem позволяет регулировать, откуда будет вызываться Job. И еще одно (про паттерн pack/unpack): Методы pack и unpack никогда не будут вызваться ядром автоматически. Их можно использовать для того, чтобы перебросить объект с клиента на сервер или наоборот, но для этого из надо вызывать явно. Также их можно использовать в составе более общего паттерна - работа с SysLastValue.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
22.11.2004, 13:20 | #6 |
Участник
|
Спасибо. Значит, я ошибался.
|
|