Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.05.06;
Скачать: CL | DM;

Вниз

"Заморозить" 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
2-1325978911
Gu
2012-01-08 03:28
2012.05.06
Exception dll


15-1325361710
Anatoly Podgoretsky
2012-01-01 00:01
2012.05.06
С Новым Годом


2-1326069317
Gu
2012-01-09 04:35
2012.05.06
x64 str


6-1255871408
VASILII250288
2009-10-18 17:10
2012.05.06
Интернет


15-1324526689
И. Павел
2011-12-22 08:04
2012.05.06
Сайт, сделанный на ucoz.ru