我創建了一個Google地圖窗口小部件,該窗口小部件爲QWebView子類。基本上,所有的谷歌地圖的東西都是用Javascript編寫的(使用Google的Javascript API)並保存在本地存儲的html文件中。然後,小部件只是顯示html ....並做了一些其他的事情,但這是無關緊要的。Qt Webview谷歌地圖緩存
我遇到的問題是,如果我在Chrome或Safari中打開相同的HTML文件,地圖磁貼的加載時間會明顯更長。 Chrome和Safari不是基於Qt使用的WebKit嗎?
有沒有人遇到類似的情況?有沒有辦法緩存地圖圖塊,以便在每次顯示更新時都不必重新獲取它們?理想情況下,我希望能夠永久緩存它們,以便我的程序可以脫機運行,但我知道這是針對Google的TOS。我會滿足於能夠緩存切片以加快平移/縮放。
在尋找各種論壇時,使用QNetworkDiskCache已經成爲一個潛在的解決方案,但似乎沒有人能夠得到這個工作。我似乎無法弄清楚爲什麼Chrome和Safari中的相同html/javascript運行速度明顯快於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。 –