|
Сжатие данных на клиенте | ☑ | ||
---|---|---|---|---|
0
7OH
15.12.15
✎
10:43
|
Добрый день.
Ищу совета - как сжимать данные на клиенте для отправки на сервер. Пример - читаем на клиенте файл (так как у серверов доступа нет обычно). Прочитанное надо отправить для анализа и обработки на сервер. В моём случае размер данных, отправляемых на сервер - 36 Мб - и приходится довольно долго ждать именно передачу параметра. Хотелось бы сжимать (думаю текстовые данные должны существенно сжаться) и отдавать на сервер. Пробовал через хран = Новый ХранилищеЗначения(стрВнутр, Новый СжатиеДанных(9)); Но (как вычитал на этом же форуме) хоть в хэлпе и написано про ХранилищеЗначения, что "Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер)." при этом стабильно получаем "Тип не определен (ХранилищеЗначения) (Проверка: Тонкий клиент)" |
|||
1
Лефмихалыч
15.12.15
✎
10:46
|
версия платформы?
|
|||
2
7OH
15.12.15
✎
10:49
|
8.3.4.408
|
|||
3
Лефмихалыч
15.12.15
✎
10:49
|
у меня в СП написано, про хранилище, что
Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). |
|||
4
DmitrO
15.12.15
✎
10:51
|
ХранилищеЗначения доступно только на сервере (в СП ошибка).
Предлагаю сжать во временный файл на клиенте объектом ЗаписьZipФайла, передать на сервер как двоичные данные. |
|||
5
7OH
15.12.15
✎
11:02
|
(4) как вариант можно попробовать.
Работа с диском может занять много больше времени (запись + упаковка + чтение), чем передача текущего. Всё таки в памяти работа на порядки быстрее. Попробую с замером. |
|||
6
Лефмихалыч
15.12.15
✎
11:06
|
(5) может просто файлы выкладывать в какое-то место, куда и у сервера, и уклиента есть доступ?
|
|||
7
RomanYS
15.12.15
✎
11:14
|
(6) Какова вероятность наличия такого места с каналом вдвое быстрее чем клиент-сервер? Имхо почти нулевая
|
|||
8
Лефмихалыч
15.12.15
✎
11:17
|
(7) голословно, бездоказательно и бессмысленно
|
|||
9
RomanYS
15.12.15
✎
11:22
|
(8) В (7) вопрос и мое мнение, ничего больше.
Просто я плохо представляю ситуацию, когда канал клиент-сервер меньше чем доступный с обоих сторон канал к третьему ресурсу. Хотя придумать такое можно. |
|||
10
7OH
15.12.15
✎
11:48
|
(6) вопрос ставим принципиально - передаём с вёб-клиента на сервер.
Вряд ли у них есть общий доступ. (4) остался вопрос - как сохранить структуру в файл? ЗначениеВСтрокуВнутр на сервере тоже не доступно. Эксперимент провёл ради интереса со сторокой, обработанной на сервере через ЗначениеВСтрокуВнутр. Передача структуры на сервер и возврат стрВнутр - 106 сек. Передача на сервер стрВнутр - 6 сек. Сохранение в файл - 12 сек. Упаковка файла - 7 сек. Чтение двоичных данных из зип - 0.1 сек. Передача на сервер двоичных данных - 0.6 сек. Итого: 6 сек против 20 сек уже сжатой (106 сек) строки. То есть через файл не вариант даже с учетом того, что в файл структуру ещё как-то записать надо без сервера. |
|||
11
DmitrO
15.12.15
✎
14:14
|
(5)понятно что не писать данные на диск, а получить что-то сжатое в памяти и это сразу передать - будет быстрее.
Но суть в том, что 1С так попросту не умеет. " и приходится довольно долго ждать именно передачу параметра" А как передавал, ДвоичнымиДанными? Надо попробовать через ПоместитьФайлы (НачатьПомещениеФайлов). |
|||
12
Лефмихалыч
15.12.15
✎
14:16
|
(10) зачем сохранять структуру в файл? Она легко передается между клиентом и сервером безо всяких там файлов
|
|||
13
H A D G E H O G s
15.12.15
✎
14:24
|
жесть какая-то
|
|||
14
H A D G E H O G s
15.12.15
✎
14:24
|
(0) Как передаешь строку на сервер?
|
|||
15
7OH
15.12.15
✎
16:29
|
(11) (12) Вот именно при передаче структуры с данными (с большим размером) - долго ждёт.
А при поместить файл - он разве его при этом на сервер не будет отправлять ? (14) - зря я написал "строку" - думал так легче будет. У меня в структуре загруженные данные с листов XLS - данных много. |
|||
16
disla
15.12.15
✎
16:55
|
Я делал ПоместитьВоВременноеХранилище на клиенте, а потом ПолучитьИзВременногоХранилища на сервере, передавал двоичные данные. И наоборот также.
|
|||
17
disla
15.12.15
✎
16:56
|
данные - zip-файлы, которые пакуюся/распакуются на клиенте
|
|||
18
DTX 4th
15.12.15
✎
17:07
|
(10) А как ты строку в файл сохранял?
ЗначениеВФайл для помещения структуры в файл |
|||
19
7OH
15.12.15
✎
17:54
|
(18) ЗначениеВФайл
Сервер, толстый клиент, внешнее соединение а поместить надо бы на клиенте |
|||
20
H A D G E H O G s
15.12.15
✎
18:03
|
(15) Зряяя.
Код передачи покажи. |
|||
21
H A D G E H O G s
15.12.15
✎
18:04
|
(15) "долго ждёт. "
Вооот. Уже ближе. |
|||
22
7OH
15.12.15
✎
18:45
|
(20)
&НаКлиенте Процедура ПроцедураПрочитать() //получаем структуру со значениями и информацией о файле EXCEL СтруктураФайла = ПрочитатьФайлEXCELВсеЛисты(ИмяФайла); ОбработатьДанныеНаСервере(СтруктураФайла); КонецПроцедуры &НаСервере Процедура ОбработатьДанныеНаСервере(СтруктураФайла) //тут со структурой что-то делаем //но от момента вызова до момент входа в процедуру - минута-две, в зависимости от размера файла КонецПроцедуры |
|||
23
H A D G E H O G s
15.12.15
✎
18:47
|
Шаг первый:
&НаСервереБезКонтекста Процедура ОбработатьДанныеНаСервере(Знач СтруктураФайла) //тут со структурой что-то делаем //но от момента вызова до момент входа в процедуру - минута-две, в зависимости от размера файла КонецПроцедуры |
|||
24
H A D G E H O G s
15.12.15
✎
18:48
|
А по факту у тебя тормоза не на передаче данных, а на сериализации/десериализации.
|
|||
25
7OH
15.12.15
✎
18:55
|
(24) это и понятно
"Передача на сервер стрВнутр - 6 сек." самому рисовать преобразователь структуры в строку как-то не очень улыбается. Под рукой 8.3.6 нету, чтобы проверить как с этим справится JSON (и возможна ли работа с ним на клиенте). |
|||
26
H A D G E H O G s
15.12.15
✎
18:56
|
(25) csv ?
|
|||
27
7OH
15.12.15
✎
19:05
|
(26) XLS к сожалению
|
|||
28
H A D G E H O G s
15.12.15
✎
19:06
|
(27) Разбери его в csv, строку передай на сервер.
|
|||
29
H A D G E H O G s
15.12.15
✎
19:07
|
(27) Ну и безконтекстный вызов и передача по значению.
|
|||
30
Garykom
гуру
15.12.15
✎
19:14
|
да похоже на "сериализации/десериализации" все тормоза, а не "на передаче"
|
|||
31
H A D G E H O G s
15.12.15
✎
19:15
|
(30) Ты уже написал убийцу ТимВиевера?
|
|||
32
Garykom
гуру
15.12.15
✎
19:29
|
(31) План уже написал, как и планировал, а что?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |