|
Асинхронные вызовы | ☑ | ||
---|---|---|---|---|
0
fantomrik
15.07.16
✎
10:12
|
Привет, коллеги.
Делал обработку, ее нужно было сертифицировать в 1сфреш. Пришло замечание от разработчиков о том, что необходимо оформить вызов процедур асинхронно. Собственно возникло пару вопрос. 1) Когда нужно использовать такие вызовы, а когда нет смысла? К примеру диалоги с вопросами нужно описывать асинхроннымим процедурами, дабы убрать модальность. А если такая ситуация. Пусть обработка при запуске тянется в интернет, скачивает его, распаковывает в определенную папку. Интерфейса у обработки и диалогов нет, при запуски последовательно отрабатывают 5 процедуры, 3 на клиенте 2 на сервере и обработка завершается. Нужно описывать эти процедуры через описание оповещения или не обезательно? 2) Если взять предыдущий пример, то ВыполнитьОбработкуОповещения доступна только на клиенте, то есть с серверной процедуры я не смогу вызвать процедуру на клиенте что и логично. Как тогда поступать правильно? |
|||
1
pavig
15.07.16
✎
10:13
|
ИМХО только для исключения модальности интерактивных диалогов
|
|||
2
fantomrik
15.07.16
✎
10:14
|
скачивает его* - скачивает файл)
|
|||
3
MrStomak
15.07.16
✎
10:14
|
(0) Требования по асинхронности относятся только к контексту клиента.
Делать это нужно, т.к. иначе в хроме работать не будет. |
|||
4
fantomrik
15.07.16
✎
10:19
|
(3) Верно ли утверждение, что все что покажет "Рефакторинг - нерекомендованные синхронные вызовы - найти вызовы модуля " нужно переделывать? Или данный поиск пока не совершенен и ошибается? У меня просто находит места где я выполняю .Добавить с структуру или массив.
|
|||
5
MrStomak
15.07.16
✎
10:23
|
(4) Раз ругается на .Добавить(), то очевидно, что утверждение не верно.
Но нужно всё, что касается работы с файлами со стороны клиента, переделывать с КопироватьФайл() на НачатьКопированиеФайла() и т.д. Потому что хром для этого вызывает внешнюю компоненту, а вызов в синхронном режиме они решили прикрыть. |
|||
6
EugeniaK
15.07.16
✎
10:24
|
(0) Все, что вызывается на клиенте, обязательно должно работать асинхронно.
Иначе просто браузер сеанс завершит, пока вызов на сервере будет что-то делать. |
|||
7
fantomrik
15.07.16
✎
10:30
|
(5) Что то я не совсем понимаю, зачем добавление в структуру нужно делать асинхронно.
К примеру МойМассив= Новый Структура; МойМассив.Добавить("Ленин"); ОбработатьМассивНаСервере(Массив); .... В чем сокральный смысл добавлять асинхронно элемент массива? |
|||
8
fantomrik
15.07.16
✎
10:34
|
(7) Думаю о массиве, а пишу структра. вы поняли, там массив везде. Со структурой аналогично, требует асинхронности при добавлении
|
|||
9
RomaH
naïve
15.07.16
✎
10:38
|
(5) это ты вообще про что? можно ссылочку на RTFM
|
|||
10
fantomrik
15.07.16
✎
10:46
|
(9) Делаю в модуле Рефакторинг - не рекомендованные синхронные вызовы - находит сроку в файле парсинга xml файла на клиенте, где в начале процедуры создаю новый массив, парся xml добавляю необходимые мне данные в этот массив для дальнейшей обработки. Не нравится ему метод "Добавить" к к моему массиву почему то.
|
|||
11
MrStomak
15.07.16
✎
10:47
|
(10) У метода "Добавить" нет асинхронных аналогов
|
|||
12
fantomrik
15.07.16
✎
10:51
|
(11) Ну вот и не понятно, что хочет тогда типовой рефакторинг
|
|||
13
MrStomak
15.07.16
✎
10:55
|
(12) Не обращай на это внимания
|
|||
14
MrStomak
15.07.16
✎
10:57
|
||||
15
RomaH
naïve
15.07.16
✎
11:30
|
(14) про это я в курсе
я не в курсе про массив.Добавить() |
|||
16
MrStomak
15.07.16
✎
11:35
|
(15)
Автор спросил:"Верно ли утверждение, что все что покажет "Рефакторинг - нерекомендованные синхронные вызовы - найти вызовы модуля " нужно переделывать?" Я ответил: " Раз ругается на .Добавить(), то очевидно, что утверждение не верно. " Что именно тебя смущает? |
|||
17
Garykom
гуру
15.07.16
✎
11:49
|
(11) отказаться от массивов? и перейти на нечто что имеет асинхронные ))
|
|||
18
fantomrik
15.07.16
✎
13:34
|
(13) Спасибо! Понятно вроде )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |