|
Поддержание соеденения с сервером (csp)
|
|||
---|---|---|---|
#18+
Доброго времени суток. При разработке с использованием csp возникла следующая ситуация: вызываю из JS метод в асинхронном режиме #call(ep.utils.JSON.getCalcResCall(tCo,duo))#; по окончанию работы данный метод вызывает перерисовку части страницы следующим образом: &js< var listOfResult=(jQuery.parseJSON('#(res)#')).OutputList; showResList(listOfResult[0]); RemoveLoad($('.wrapper')); >Метод достаточно времязатратный и естественно со временем вызывает ошибку Код: plaintext
Решил данную проблему исправив таймауты в настройках веб-шлюза. Но это временное решение, поскольку время работы данного метода напрямую зависит от кол-ва обрабатываемых параметров и не хотелось бы переписывать таймауты каждый раз, при изменении программы. Хотелось бы узнать, существуют ли программные трюки, которыми этого можно избежать? Например, можно ли во время работы на сервере данного метода посылать пустые запросы, для поддержания коннекта? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2014, 11:19 |
|
Поддержание соеденения с сервером (csp)
|
|||
---|---|---|---|
#18+
DKspiderНапример, можно ли во время работы на сервере данного метода посылать пустые запросы, для поддержания коннекта?Это бесполезно, все они встанут в очередь и будут ждать пока выполнится первый запрос. Если сессия не хранимая то просто будут висеть на сервере в ожидании блокировки на сессию, т.к. сессия уже занята другим процессом. Если сессия хранимая то шлюз, зная что процесс еще работает поставит его в очередь. вариант самый верный, это попытаться разделить задачу, на много мелких, и делать его в несколько запросов, так даже можно организовать прогресс выполнения для отображения пользователю так же еще есть вариант с использованием WebSockets (начиная с 2014.1), в данном случае соединение является постоянным пока сокет открыт в браузере, и сервер на один запрос может отправлять ответ порциями по мере готовности ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2014, 11:52 |
|
Поддержание соеденения с сервером (csp)
|
|||
---|---|---|---|
#18+
DKspiderХотелось бы узнать, существуют ли программные трюки, которыми этого можно избежать? Например, можно ли во время работы на сервере данного метода посылать пустые запросы, для поддержания коннекта? Нужно не сервером клиента шубуршить... А пусть сам клиент обращается к серверу с вопросами типа "как там дела". ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2014, 13:17 |
|
Поддержание соеденения с сервером (csp)
|
|||
---|---|---|---|
#18+
krvsa, Пытался сделать что-то подобное через Код: javascript 1. 2. 3. 4.
В этом то собственно и проблема. Как написал DAiMor данные запросы с клиента просто встанут в очередь, даже если их вызов был асинхронным. Видимо все-таки придется пытаться делать через WebSockets. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2014, 13:28 |
|
Поддержание соеденения с сервером (csp)
|
|||
---|---|---|---|
#18+
DKspider , выкинь ты тот КАЛ... Делай обычный Ajax-запрос. Полученый ответ можно обрабатывать как обычный прогресс... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2014, 20:52 |
|
Поддержание соеденения с сервером (csp)
|
|||
---|---|---|---|
#18+
DKspider, предлагаю такую схему: Клиент вызывает сервер для запуска длительного по времени исполнения метода Сервер запускает метод в отдельном процессе ( JOB ) и сразу отдает клиенту некий идентификатор запущенного процесса ($ZCHILD) Клиент периодически опрашивает сервер (ajax, webSocket) о состоянии процесса, при определенном ответе прекращает опрос ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2014, 21:30 |
|
Поддержание соеденения с сервером (csp)
|
|||
---|---|---|---|
#18+
doublefint , поддерживаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2014, 08:12 |
|
Поддержание соеденения с сервером (csp)
|
|||
---|---|---|---|
#18+
DKspider , Можете посмотреть пример на ZEN ( 16154583 , вариант №2) запуска фоновой задачи с выводом прогресса её выполнения и переделать его на CSP. Под капотом ZEN используется как раз описанная doublefint схема работы. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2014, 19:30 |
|
|
start [/forum/topic.php?fid=39&gotonew=1&tid=1556810]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
12ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 267ms |
total: | 406ms |
0 / 0 |