powered by simpleCommunicator - 2.0.27     © 2024 Programmizd 02
Map
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Нужен совет по JS and M
10 сообщений из 85, страница 4 из 4
Нужен совет по JS and M
    #39968346
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Остановились использовать Python для решение этой задачи.
https://github.com/chrisemunt/mg_python
Не плохая штука, одно не понятно как передать
клиенту не строки а мвсив строк ...
Node JS не пошел почему то. Именно из за Ajax.
...
Рейтинг: 0 / 0
Нужен совет по JS and M
    #39968504
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu
Node JS не пошел почему то. Именно из за Ajax.

При чём тут ajax и node js? Ajax - запросы из браузера на хост, node js - *сервер* приложения. Если надо что-то куда-то отослать, то там есть либы, которые отправляют http запросы, axios, например.
...
Рейтинг: 0 / 0
Нужен совет по JS and M
    #39968967
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,
Я с Вами согласен. Хотелось с наименьшими усилиями
использовать такой же подход, но с серверной стороны.
Поскольку данные нужно было отправлять с М сервера к
PostgreSQL , существовал код но с клиентской стороны, который
оператор должен быть сам это делать но в ручную (действие некое)
По сколько у наших партнеров серверная часть написана на Питоне,
пришлось подстраиваться под ними.
...
Рейтинг: 0 / 0
Нужен совет по JS and M
    #39969180
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu
одно не понятно как передать
клиенту не строки а мвсив строк ...

Да хоть тем же JSON-форматом...

Хотя, если у тебя проблемы с Ajax, как ты собираешься что-то посылать клиенту?
...
Рейтинг: 0 / 0
Нужен совет по JS and M
    #39969206
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,
В моем случае, я не клиенту должен был отправлять данные с М сервера,
а чужому серверу постгри через паутину. Вот здесь и застрял.
Клиент локальной сети через аякс получал данные на его стороне от М,
потом в ручную по нажатием на какой то батон отправлял данные
json через паутину чужому серверу...
Нужно было отказаться от такого подхода и полностью автоматизировать процесс.
Сошлись на крон+питон. Вот вся кухня.
Исходя из этого, пришлось настроится под ними (у них сервер на Питоне-Постгри)
Благо что нашел в инете модуль для М+питон (выше ссылка)
На счет массива строк.
Я к тому, что у них возврат данных по quit (функции)
на стороне М. Те строку больше 32 Кб никак.
Хотя смотрю в полное описание документации mg_python.
Можно пройтись по глобалу (или локально) и получать все данные.
Код: python
1.
2.
3.
4.
key = mg_python.m_previous(0, "^Person", "")
   while (key != ""):
      print(key, " = ", mg_python.m_get(0, "^Person", key))
      key  = mg_python.m_previous(0, "^Person", key)
...
Рейтинг: 0 / 0
Нужен совет по JS and M
    #39969278
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu
Те строку больше 32 Кб никак.

Если есть ограничение по передаче, обычно применяется такая практика:
- Запрос количества "порций"
- Далее цикл по количеству "порций"
- В цикле читается очередная "порция" и записывается/склеивается
Так и собирается весь "пакет" данных, который хотели передать.
...
Рейтинг: 0 / 0
Нужен совет по JS and M
    #40008745
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,
На счет строк я решил по другому.
Передаю отдельно узлы массива сформированного на серверной стороне.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 
OpenSTAD(rc1,rc2,Ret,Ret1) ; 8
 s ^eRECIVE($h)=rc1_"####"_rc2 ;lucreaza !!
 S (A1,Nr)=""
 F  S A1=$O(^stad(A1)) Q:A1=""  D
 . S NAZ=$P(^stad(A1),"\",2)
 . S Nr=Nr+1
 . S Ret(Nr)="Statia nr: "_A1_", "_"Denumirea: "_NAZ
 . s Ret1(Nr)=A1_"/"_NAZ
 . s rc2(Nr)="Statia nr: "_A1_", "_"Denumirea: "_NAZ
 . s rc1(Nr)="Statia nr: "_A1_", "_"Denumirea: "_NAZ
 q
 ;;


Клиент получает данные в json формате (возвращаю для удобства в параметры P1, P2 ...P8) хотя можно сколько угодно(256 ???)
Код: javascript
1.
2.
3.
4.
{"P1":{"1":"Statia nr: 1, Denumirea: Restaurantul \" Butoias \"","2":"Statia nr: 2, Denumirea: str. Ghidighici","3":"Statia nr: 3, Denumirea: Parcul \"La izvor\"","4":"Statia nr: 4, Denumirea: str. Bariera Sculeni","5":"Statia nr: 5, Denumirea: Parcul \"Alunelul\"","6":"Statia nr: 6, Denumirea: Piata Dimitrie Cantemir"}}
...
...
{"P4":{"1":"1/Restaurantul \" Butoias \"","2":"2/str. Ghidighici","3":"3/Parcul \"La izvor\"","4":"4/str. Bariera Sculeni","5":"5/Parcul \"Alunelul\"","6":"6/Piata Dimitrie Cantemir","7":"7/Universitatea de Medicina","8":"8/str. Toma Ciorba","9":"9/Piata Marii Adunari Nationale"}}


Здесь один нюанс есть.
Это у нас старые подпрограммы, которые возвращают данные с разделителями.
Вместо них можно писать сразу название (первый параметр Р1) или оставить так как есть и разобрать на клиенте(Р4) ???
...
Рейтинг: 0 / 0
Нужен совет по JS and M
    #40009127
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu , по организации данных каждый решает сам, как ему это удобнее...

Лично я не использую объект, если используется некое перечисление чего-либо. Так другим будет более понятна структура данных.
...
Рейтинг: 0 / 0
Нужен совет по JS and M
    #40031580
kalin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для формирования json в Cache существует замечательная библиотека https://github.com/PlanetCache/CacheJSON.
Передавать весь массив в браузер плохая идея и сработает только при небольших объемах данных.
Проще создать класс, в который "ложить" сформированныее json строки, затем выбирать их последовательно в клиентском приложении либо через SQL, либо через объектный доступ, что предпочтительней, предварительно "загрузив" клиенту массив необходимых идентификаторов выбираемых объектов. По такому принципу, в общем, работают 'движки' в ERP системах. Встроенная в Cache библиотека python замечательно справляется как с SQL, так и с объектным доступом с любой версией Cache.
...
Рейтинг: 0 / 0
Нужен совет по JS and M
    #40031583
kalin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нужен непосредственный доступ из клиентского приложения на javascript к web ресурсу, то его функции замечательно выполняет микросервис на базе fastcgi, специально заточенный под python.
...
Рейтинг: 0 / 0
10 сообщений из 85, страница 4 из 4
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Нужен совет по JS and M
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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