|
Передача строки большого объёма с сервера на клиент | ☑ | ||
---|---|---|---|---|
0
mefisto666series
30.08.16
✎
18:54
|
Доброго времени суток, господа. Есть такая задача: Нужно выгрузить цены в xml. На сервере метод фарширует таблицу значений ценами, получается порядка 150000 записей. Затем, там же на сервере, перебирая эту таблицу получаем текст XML. полученный текстXML, просматриваемый через вычислить выражение содержит 2353 строки и заканчивается многоточием. ВОзможно, это связано с особенностями отображения. Всё вышеописанное происходит вместе с получением кучи других классификаторов по аналогичной схеме. На основании всех выбранных данных так же формируется текст xml, всё это собирается в структуру и отправляется на клиент с целью записи в файл. В этой ситуации при возврате структуры на клиент получаю ошибку "Ошибка преобразования данных XDTO". Хотя структура кроме строк ничего в себе не содержит. Почему именно цены? если цены не передавать или передавать пустую строку, всё ок. Даже если искусственно снизить количество записей до где-то 100 000, всё равно нормально выгружается. В чем дело? Может, как-то можно обойти, или причина вообще в другом? Код, если надо, могу предоставить.
|
|||
1
Defender aka LINN
30.08.16
✎
18:57
|
А почему бы сразу файлы не передавать?
|
|||
2
Господин ПЖ
30.08.16
✎
18:59
|
150000 в xml запихивать - маньяки
|
|||
3
mefisto666series
30.08.16
✎
19:05
|
(1) ну так сервер же? Можно получить имя временного файла, в него запихнуть, но как к нему доступ на клиенте получить? или в base64 его? Но объем все равно будет большой.
|
|||
4
Неверный Параметр И
30.08.16
✎
19:08
|
Предлагаю для полного счастья повторить это в веб-клиенте...
Ну чудесатьте ж вы на сервере, отдайте клиенту готовый файл, он его сразу себе файловую систему положит и будет по уши рад. Для кого временное хранилище придумали? |
|||
5
H A D G E H O G s
30.08.16
✎
19:11
|
Записывать в файл через ЗаписьXML сразу, без всяких текстовых строк, этот файл класть во врем.хран, на клиент отдавать адрес врем.хран.
|
|||
6
Зая Бусечка
30.08.16
✎
19:13
|
+5 и зиповать его
|
|||
7
H A D G E H O G s
30.08.16
✎
19:16
|
(6) Без вас зазипуют.
|
|||
8
Torquader
30.08.16
✎
23:03
|
У меня, когда надо было много передать с сервера на клиента, использовался массив - то есть каждая строка исходного текста - это элемент массива - он прекрасно летит с сервера, а на клиенте мы его "склеиваем".
|
|||
9
youalex
30.08.16
✎
23:05
|
(6) в хз можно пихнуть со сжатием
|
|||
10
Defender aka LINN
30.08.16
✎
23:43
|
(3) "ну так сервер же?"
То есть, когда ты с сервера Microsoft, находящегося на другом континенте, получаешь в пользование какой-нибудь MS Office, а то и целый MSSQL - это нормально. А с одной машины в локальной сети передать на другую XML-файл - то это уже как-то сложно и вообще колдунством попахивает? |
|||
11
H A D G E H O G s
30.08.16
✎
23:52
|
(9) Плохая идея.
|
|||
12
youalex
31.08.16
✎
00:29
|
(11) почему? (не придираюсь, на самом деле - интересно)
|
|||
13
H A D G E H O G s
31.08.16
✎
00:39
|
(12) Будет происходить та же сериализация в
ЗначениеВСтрокуВнутр() Потом сжатие при Новый СжатиеДанных Потом сериализация в XDTO потом сжатие (но не уверен) протоколом передачи платформы и все в обратном порядке на клиенте. Через временное хранилище все на порядки быстрее (но механизмом не интересовался, так как скорость удовлетворяла). |
|||
14
assasu
31.08.16
✎
05:27
|
(0) я делал обмен с 20Г файлом xml. все работало. думаю проблема не в размере , а в "заканчивается многоточием". На каком то этапе файл ломается.
|
|||
15
mefisto666series
31.08.16
✎
10:24
|
(14) ЗаписьXML.Закрыть()
|
|||
16
Неверный Параметр И
31.08.16
✎
10:34
|
(14) Нет. Окно дебаггера для просмотра строк, оно поумнее некоторых будет.
|
|||
17
mefisto666series
31.08.16
✎
10:50
|
(16) да, я думаю оно просто ограничивает объем выводимого текста
|
|||
18
H A D G E H O G s
31.08.16
✎
11:44
|
(15) выводи в файл, а не в текстовую переменную.
|
|||
19
youalex
31.08.16
✎
19:28
|
(13) ясно, спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |