Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2012.05.06;
Скачать: [xml.tar.bz2];

Вниз

"Заморозить" TWebBrowser на время перезагрузки страницы   Найти похожие ветки 

 
Дмитрий С ©   (2010-12-12 11:45) [0]

Суть в чем:
Пользователь нажимает кнопку, после чего необходимо обновить содержимое TWebBrowser-а и прокрутить (scroll) его в то же положение, что он и был.
Делаю так:
- Сохраняю положение скроллов
- Обновляю страницу (на это уходит порядка 1 сек)
- Восстанавливаю положение скроллов.
Что видит пользователь, нажимая на кнопку:
- Старые данные
- Шапку страницы (около 1 сек)
- Новые данные
Что надо, чтобы видел пользователь:
- Старые данные (около 1 сек)
- Новые данные

DHTML не применим, т.к. страница слишком сложная, чтобы ее переделать, используются скрипты с document.writeln для ее построения, с вызовами external.

Вобщем вопрос: можно как нибудь заморозить изображение браузера, а после загрузки показать новое изображение.
Вариант в лоб (показ другого контрола со снимком страницы) пока оставлю напоследок.


 
Сергей М. ©   (2010-12-12 16:48) [1]

Может таки обратить свой взор в сторону AJAX, пока не поздно ?


 
Дмитрий С ©   (2010-12-12 19:22) [2]


> Сергей М. ©   (12.12.10 16:48) [1]
> Может таки обратить свой взор в сторону AJAX, пока не поздно
> ?

Сам понимаю, что это правильное решение будет, но думаю стоит ли овчинка выделки.

Весь этот эффект нужен, чтобы всего лишь не сбивать с толку оператора (пользователя), а работы по переделыванию на аякс очень много. Т.к. ранее не планировалось, что отчет будет хоть как то динамичен.

В общем, сделал пока через снимок страницы. К тому же и небольшое затемнение удалось сделать.


 
Медвежонок Пятачок ©   (2010-12-12 20:03) [3]

Как раз с аяксом переделка будет минимальной.
Если взять к примеру прототайп.
Будет и модальность диалоговых окон и недоступность остальной страницы и все что хочешь.


 
sniknik ©   (2010-12-12 22:35) [4]

а LockWindowUpdate что не работает?


 
Дмитрий С ©   (2010-12-13 07:51) [5]


> sniknik ©   (12.12.10 22:35) [4]
>
> а LockWindowUpdate что не работает?

Работает. Странная функция какая-то: Only one window can be locked at a time. Гарантии нет, что кто-нибудь другой не будет ею пользоваться, ведь неизвестно как там этот WebBrowser устроен.


> Медвежонок Пятачок ©   (12.12.10 20:03) [3]
>
> Как раз с аяксом переделка будет минимальной.
> Если взять к примеру прототайп.
> Будет и модальность диалоговых окон и недоступность остальной
> страницы и все что хочешь.

Проблема не в недоступности, это я и сам на js могу сделать. Проблема в том, то скролл страницы "скачет" при обновлении. А переделать то что уже есть на ajax сложно. На это нет времени, ни оплаты.

Вариант с LockWindowUpdate, скрытием WB, перекрытием WB на время работает отлично, но при показе или при анлоке WB перерисовывается выполняя, видимо, EraseBackground и моргает. DoubleBuffered не помогает


 
sniknik ©   (2010-12-13 07:58) [6]

> скрытием WB
зачем? прятки противоречат
> Что надо, чтобы видел пользователь:
> - Старые данные (около 1 сек)
> - Новые данные

> но при показе или при анлоке WB перерисовывается выполняя, видимо, EraseBackground и моргает.
просто "разлочить" позже.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2012.05.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.002 c
2-1326061288
Anthony
2012-01-09 02:21
2012.05.06
Как узнать что в буфере обмена Windows есть текст?


2-1325795317
Gu
2012-01-06 00:28
2012.05.06
stdcall


4-1256757673
istok20
2009-10-28 22:21
2012.05.06
uac и автозагрузка...


2-1325903132
Gu
2012-01-07 06:25
2012.05.06
имена функций длл


15-1325422003
Димка На
2012-01-01 16:46
2012.05.06
mode в линуксе





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский