У меня есть QWebView в моем приложении, которое отображает html-страницу, хранящуюся в приложении, как Qresource. Однако на этой странице нужны мясистые внешние библиотеки Javascript, такие как MathJax, которые я бы хотел включить в качестве ресурса из-за его размера.Кэширование внешнего javascript для виджета QtWebkit в приложении PyQt
Моя проблема заключается в том, что QtWebkit не кэширует эти файлы, как это делает обычный браузер, и каждый раз, когда я обновляю виджет, он загружает MathJax заново.
Итак, мой вопрос: есть ли способ кэшировать эти библиотеки после первого раза их загрузки, не прибегая к отправке его с помощью приложения в качестве ресурса?
Ну код ясно, как это может быть, виджет определяется как это :: self.modelWebView = QtWebKit.QWebView (self.scrollAreaWidgetContents_2) и загружает документ HTML, который загружает некоторые внешние JS Использование данных в/tmp/не может быть хорошей идеей, поскольку на других платформах (например, в окнах) данные могут оказаться в другом месте. – fccoelho
извините .. Я должен был указать каталог (temp) или сказать, что это другой способ подразумевать, что я имел в виду это временную папку независимо от ОС.
Поскольку вы работаете с базовым классом, вам нужно будет переопределить, как он работает. Один из способов сделать это - превратить все ваши веб-страницы в QWebElements перед тем, как перейти к ним. При первой загрузке страницы вы можете извлечь скрипт, сохранить его как объект, а затем повторно использовать его содержимое из памяти, вставив скрипт и локальное местоположение в качестве элемента. – 2010-10-09 03:07:46
Я хотел добавить второй комментарий, так как у меня закончились символы. Процесс довольно прост, и вы можете сделать это, как хотите. Вы загружаете источник сценария и создаете объект с его содержимым, а затем используете его локально. Это то, что я хотел бы предложить. – 2010-10-09 03:09:06