在PyQt应用程序中缓存QtWebkit小部件的外部javascript

在PyQt应用程序中缓存QtWebkit小部件的外部javascript,javascript,python,pyqt,qtwebkit,Javascript,Python,Pyqt,Qtwebkit,我的应用程序中有一个QWebView,它将应用程序中存储的html页面呈现为Qresource。然而,这个页面需要大量的外部Javascript库,比如MathJax,由于它的大小,我希望将其作为一个资源包含进来 我的问题是QtWebkit似乎不像普通浏览器那样缓存这些文件,每次我刷新小部件时,它都会重新下载MathJax 所以我的问题是:有没有办法在这些库第一次下载后缓存它们,而不用将其作为资源随应用程序一起提供?你能发布一些源代码吗?下载后,该数据将在/tmp/文件夹中保留一段时间。您可能会

我的应用程序中有一个QWebView,它将应用程序中存储的html页面呈现为Qresource。然而,这个页面需要大量的外部Javascript库,比如MathJax,由于它的大小,我希望将其作为一个资源包含进来

我的问题是QtWebkit似乎不像普通浏览器那样缓存这些文件,每次我刷新小部件时,它都会重新下载MathJax


所以我的问题是:有没有办法在这些库第一次下载后缓存它们,而不用将其作为资源随应用程序一起提供?

你能发布一些源代码吗?下载后,该数据将在/tmp/文件夹中保留一段时间。您可能会使用temp文件夹中的数据,我猜您没有强制执行该策略。

您可以发布一些源代码吗?下载后,该数据将在/tmp/文件夹中保留一段时间。您可能会使用temp文件夹中的数据,我猜您没有强制执行该策略。

您应该尝试一下基于网络的简单下载是否符合缓存设置。此外,请查看设置(QWebSettings)是否设置正确


在所有情况下,您都应该能够注入一个定制的QNetworkAccessManager,用于处理定制JS库的缓存。请参见和作为示例,并从那里继续进行操作。

您应该尝试基于网络的简单下载是否符合缓存设置。此外,请查看设置(QWebSettings)是否设置正确


在所有情况下,您都应该能够注入一个定制的QNetworkAccessManager,用于处理定制JS库的缓存。查看和作为示例,并从那里跟进。

代码尽可能简单,小部件的定义如下::self.modelWebView=QtWebKit.QWebView(self.scrollAreaWidgetContents_2),它加载一个html文档,使用/tmp/中的数据加载一些外部js可能不是一个好主意,因为在其他平台上(例如windows)数据可能会在其他地方结束。对不起。。我应该说是(temp)目录,或者用其他方式来暗示我的意思是,不管操作系统如何,它都是临时文件夹

因为您使用的是基本类,所以需要重新定义它的操作方式。一种方法是在导航到QWebElements之前将所有网页转换为QWebElements。第一次加载页面时,您可以提取脚本,将其另存为对象,然后从内存中重新使用其内容,将脚本和本地位置作为元素插入。我想添加第二条注释,因为我没有字符了。这个过程非常简单,你可以随心所欲。您可以下载脚本的源代码并使用其内容创建一个对象,然后在本地使用该对象。这就是我的建议。代码尽可能简单,小部件的定义如下::self.modelWebView=QtWebKit.QWebView(self.scrollAreaWidgetContents_2),它加载一个html文档,使用/tmp/中的数据加载一些外部js可能不是一个好主意,因为在其他平台上(例如windows)数据可能会在其他地方结束。对不起。。我应该说是(temp)目录,或者用其他方式来暗示我的意思是,不管操作系统如何,它都是临时文件夹

因为您使用的是基本类,所以需要重新定义它的操作方式。一种方法是在导航到QWebElements之前将所有网页转换为QWebElements。第一次加载页面时,您可以提取脚本,将其另存为对象,然后从内存中重新使用其内容,将脚本和本地位置作为元素插入。我想添加第二条注释,因为我没有字符了。这个过程非常简单,你可以随心所欲。您可以下载脚本的源代码并使用其内容创建一个对象,然后在本地使用该对象。这就是我的建议。