Как избежать перегрузки основной формы приложения веб-браузером с несколькими вкладками? - PullRequest
1 голос
/ 01 октября 2011

Я использую несколько TCppWebBrowser в главной форме, и при запуске приложения все вкладки из последнего интернет-сеанса восстанавливаются. Но это делает основную форму приложения перегруженной. У меня вопрос, как мне избежать перегрузки основной формы?

Я пытался добиться этого, но безуспешно. Я использовал TThread класс из C ++ Builder и попытался начать навигацию оттуда, но безуспешно, главная форма все еще перегружалась. Я тоже попробовал CreateThread() - тоже самое.

Я нашел:

Управление WebBrowser (MFC), созданное в отдельном потоке, работающем в Windows 7 и Vista, но в Windows XP

Но я не очень хорошо понимаю это.

Пожалуйста, кто-нибудь подскажет, как решить мой вопрос в C ++ Builder!

1 Ответ

0 голосов
/ 18 октября 2011

Если возможно, я бы оставил темы в стороне и попытался бы загружать одну страницу за другой. Это легче. Все, что вам нужно сделать, это не загружать содержимое всех TCppWebBrowsers сразу, вместо этого начать с загрузки только первого (видимого пользователю), а затем загружать остальные по одному.

Загружать вкладку, когда происходит одно из следующих действий:

  • пользователь активирует вкладку - вам обязательно нужно загрузить эту страницу немедленно
  • приложение бездействует, и никакая другая вкладка не загружается - загрузить следующую

Делайте это, пока не загрузятся все вкладки.

Конечно, вы должны иметь возможность каким-то образом влиять на "механизм восстановления сеанса" для реализации этой загрузки с задержкой. Но если вы сможете добавлять темы, вы также сможете загружать вкладки одну за другой. Это увеличит нагрузку на более длительное время и предотвратит перегрузку приложения при запуске.

...