0
我发现如果我们并行地加载一个带有不同QWebView对象的URL,我们将得到相同的输出:只有一个QWebView会提出真正的请求。这里是例子:不同的QWebView对象为同一个URL产生相同的输出
from PyQt5.QtCore import QUrl
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWebKitWidgets import QWebView
def load_and_print(url):
view = QWebView()
view.load(QUrl(url))
def on_ready(ok):
print(view.page().mainFrame().documentElement().toPlainText())
view.loadFinished.connect(on_ready)
if __name__ == '__main__':
app = QApplication([])
# This url outputs random number:
url = 'https://www.random.org/integers/?num=1&min=1&max=100&col=1&base=10&format=plain&rnd=new'
load_and_print(url)
load_and_print(url)
app.exec_()
# output:
# 39
# 39
我们怎样才能得到“公平”,每个QWebView对象的唯一输出,如果url是相同的?
的PyQt 5.4,Windows 7的
应该指定使用的Python,PyQt的,OS版本。 – Trilarion 2015-02-11 22:04:48
尝试禁用缓存页面。在C++中,它是通过使用:QWebSettings :: globalSettings () - > setMaximumPagesInCache (0); 72 QWebSettings :: globalSettings () - > setObjectCacheCapacities (0,0,0); 我相信python有类似的东西。 – MKAROL 2015-02-11 22:29:20
@MKarol就像一个额外的评论(错误地发布为答案之前):我没有看到这种行为在Python 3.4.2,PySide 1.2.2(Qt 4.8),Windows 7的所有64位,即使设置了objectcachecapacities到非零的东西。所以它可能是特定于实现的。 – Trilarion 2015-02-12 13:05:36