Enchantner
Сен. 9, 2010 21:20:49
Собственно, возможен ли сабж? Дилемма: есть интерфейс пользователя и есть парсер. Логично, что не хочется, чтобы во время парсинга интерфейс повисал. А еще бы очень хотелось, чтобы данные из потока возвращались по мере их получения, то есть на форме по-очереди появлялись результаты. Как такое реализовать грамотно? На выходе хотелось бы иметь именно поточный итератор по результатам…
Андрей Светлов
Сен. 9, 2010 23:10:02
Пущай поток парсера шлет GUI гуевые же сообщения. А главный гуевый поток в отместку перерисовывает себя, выбирая из парсера что он там наработал.
Не нужен вам итератор, нет для него применения. Точнее, сам парсер делайте как хотите. А вот прокидывание из его потока в GUI thread - только через сообщения этой самой GUI subsystem.
Enchantner
Сен. 10, 2010 01:05:16
Андрей Светлов
В том-то и фишка, что GUI отрисовывается на одном из веб-форм-фреймворков (Titanium, похож на Adobe AIR), а данные передаются из питона в яваскрипт. Поэтому обновление DOM идет через jQuery, который вставляет возвращенные питоном строчки. И не очень понятно, как организовать взаимодействие… Возможно, просто стоит переписать парсер на яваскрипте :)
ziro
Сен. 10, 2010 09:28:06
А у титаниума веб движок какой? Если WebKit, то возможно удастся использовать одну из техник передачи данных в веб типа longpolling или websockets.
o7412369815963
Сен. 10, 2010 20:42:21
можно на период загрузки периодический опрашивать сервер, кстате сервер лочить долгими запросами не тру, это должен делать отдельный процесс, а веб сервер только выдавать результаты (моментально)
Enchantner
Сен. 10, 2010 21:33:54
ziro
Воистину WebKit, причем с поддержкой HTML5 и CSS3.
o7412369815963
Причем тут сервер? Речь о десктопном приложении, из инета только парсится инфа.