На клиенте имеется текстовый файл с ТВ-программой следующей структуры:
// куча
// всякой
// муры
// вся программа в одну строку
<div бла-бла-бла> 00:00 Передача1 <p> 00:09 Передача2 <p> .....23:55 ПередачаNNN </div>
// ещё одна куча
// всякой
// муры
Показать
Требуется занести ТВ-программу в периодический регистр сведений, по одной записи на каждую ТВ-передачу.
Как сделать правильно и эффективно с точки зрения высоких материй:
1) отдать на сервер весь текст целиком и парсить его уже там?
2) выкусить строку с ТВ-программой и парсить на сервере ужЕ только её?
3) разбить строку на клиенте на ТВ-передачи и послать на сервер их список/ТЗ/ещё что-то?
Передавать на сервер по одной ТВ-передаче за раз, я полагаю, смысла не имеет.
(1) Получаете ДвоичныеДанные вашего текстового файла, запихиваете его во временное хранилище и передаете адрес ВХ на сервер; далее на сервере получаете двоичные данные из ВХ и уже на сервере разбираете ваш файл. Если файл очень большой, то можно организовать выполнение в фоне.
(1) все зависит от размера всего файла и сложности парсинга.
Если файл большой и нужна только небольшая часть и клиент не веб, то можно на клиенте сделать подготовительную работу и передавать на сервер только нужную информацию.
Если размер файла отличается от размера без мусора менее чем в 2 раза, то смысла нет парсить клиентом.
(1)Распарсить в массив строк, в строке одна передача, а массив записать в регистр сведений. Парсить на клиенте, массив соответственно писать на сервере. Это ИМХО, однако. ;)
(13)одна строка массива будет вида "00:00 Передача1" при записи в регистр первые 5 символов пишете как время передачи, остальное начиная с 6 символа как название передачи.
ЗЫ это ваш 3 вариант, но не тз делать а массив.
На мой вкус так. Если данный функционал реализуется в контексте одной формы, т.е. нет необходимости в разработке удобного программного интерфейса, то предпочтительнее второй вариант. В противном случае - третий.