Я создал виджет Google maps, который подклассы QWebView. В принципе, все материалы Google Maps записываются в Javascript (с использованием Javascript API Google) и сохраняются в html-файле, хранящемся локально. Затем виджет просто отображает html .... и делает некоторые другие вещи, но это не имеет значения.Qt Webview Google Maps Caching
Проблема, с которой я сталкиваюсь, заключается в том, что накладки на карте занимают значительно больше времени, чем если бы я открывал один и тот же файл html, скажем, Chrome или Safari. Разве Chrome и Safari не основаны на одном и том же WebKit, который использует Qt?
Неужели кто-нибудь сталкивается с подобной ситуацией? Есть ли способ кэшировать плитки карт, чтобы он не возвращал их каждый раз при обновлении дисплея? В идеале, я хотел бы иметь возможность кэшировать их навсегда, чтобы моя программа могла работать автономно, но я знаю, что это против Google TOS. Я соглашусь на возможность кэшировать плитки, чтобы ускорить панорамирование/масштабирование.
При поиске по различным форумам использование QNetworkDiskCache стало потенциальным решением, но никто, похоже, не может заставить это работать. Я просто не могу понять, почему тот же html/javascript работает значительно быстрее в Chrome и Safari, чем в QWebView.
проверили вас из 'класс QWebSetttings' ? Есть некоторые настройки, которые могут ускорить просмотр и взаимодействие. Как 'QWebSettings :: DnsPrefetchEnabled',' QWebSettings :: OfflineWebApplicationCacheEnabled' и 'QWebSettings :: TiledBackingStoreEnabled'. – Ammar
Благодарим вас за предложение @Ammar. Я попытался добавить эти настройки, используя «this-> settings() -> setAttribute (...)» вместе с вызовом setOfflineWebApplicationCachePath (...), но это, похоже, совсем не помогло. Сначала, пытаясь включить TiledBackingStore, резко замедлилось приложение. Затем я преобразовал QWebView в QGraphicsWebView и попробовал еще раз. На этот раз все, что отображается, это шаблон контрольной панели. – gwiz1124
Лучше всего посмотреть сетевой трафик и посмотреть, какие ресурсы вытягивают. Также «тот же WebKit» не существует, см. Мое объяснение здесь http://ariya.ofilabs.com/2011/06/your-webkit-port-is-special-just-like-every-other-port.html. –