我的程序使用带有QWebViews的选项卡式界面。我加载到QWebView中的一些HTML文档非常大(教科书大小)。其他时候,文件是小册子。
每当我首先加载一个巨大的文档时,所有其他后续加载都会慢得多,无论该文档有多大。虽然小册子通常需要几毫秒才能正常加载,如果在这些巨型文档中加载后,可能需要大约10秒钟。
我已经将信号连接到我的每个QWebViews的loadProgress()
信号。在我致电setHtml()
之后,我可以确认减速即将到来。
我还在使用以下内容调用setHtml()
之前清除了缓存:
QWebSettings.clearIconDatabase()
QWebSettings.clearMemoryCaches()
在应用程序启动时,我设置了以下属性:
QWebSettings.globalSettings().setAttribute(QWebSettings.LocalContentCanAccessRemoteUrls, True)
QWebSettings.globalSettings().setAttribute(QWebSettings.LocalContentCanAccessFileUrls, True)
QWebSettings.globalSettings().setAttribute(QWebSettings.LocalStorageEnabled, True)
QWebSettings.globalSettings().setAttribute(QWebSettings.AutoLoadImages, True)
QWebSettings.globalSettings().setAttribute(QWebSettings.JavascriptCanAccessClipboard, True)
我对接下来的尝试感到茫然。
我非常感谢接下来应该做的事情。谢谢!
P.S:我使用MathJax SVG输出和其他JavaScript。所以,这些文件非常重要。
更新
在启动时添加了以下内容,但没有效果:
QWebSettings.setObjectCacheCapacities(0, 0, 0)
这也行不通:
QWebSettings.setMaximumPagesInCache(1)