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