3

Web属性があります(void QWebSettings :: setAttribute(WebAttribute attribute、bool on)):

QWebSettings::LocalStorageDatabaseEnabled
QWebSettings::OfflineWebApplicationCacheEnabled
QWebSettings::OfflineStorageDatabaseEnabled

方法もあります:

void QWebSettings::enablePersistentStorage(const QString &path = QString())
void QWebSettings::setMaximumPagesInCache(int pages)
void QWebSettings::setObjectCacheCapacities(int cacheMinDeadCapacity, int cacheMaxDead, int totalCapacity)
void QWebSettings::setOfflineStorageDefaultQuota(qint64 maximumSize)
void QWebSettings::setOfflineStoragePath(const QString &path)
void QWebSettings::setOfflineWebApplicationCachePath(const QString &path)
void QWebSettings::setOfflineWebApplicationCacheQuota(qint64 maximumSize)

また、QNetworkAccessManagerで使用できるQNetworkDiskCacheがあります。

QNetworkDiskCache *diskCache = new QNetworkDiskCache(this);
QString location = QDesktopServices::storageLocation(QDesktopServices::CacheLocation);
diskCache->setCacheDirectory(location);
networkAccessManager->setCache(diskCache);

また、いくつかの方法があります。

void setCacheDirectory(const QString &cacheDir)
void setMaximumCacheSize(qint64 size)

この紛らわしいAPIを使用してキャッシュを適切に実装するにはどうすればよいですか?

4

1 に答える 1

7
  • 参照されるページキャッシュはWebKitページキャッシュ です。http: //www.webkit.org/blog/427/webkit-page-cache-i-the-basics/を参照してください。これは、ブラウザでの戻る/転送操作を高速化するためのメモリ内キャッシュです。
  • setObjectCacheCapacitiesは、WebKitのメモリ内キャッシュを参照します。
  • QNetworkDiskCacheは、その名前が示すように、Qtがネットワークからリソースをフェッチする代わりに使用できるディスクキャッシュです。
  • オフラインWebアプリ/ローカルストレージ設定は、HTMLローカルストレージおよびオフラインWebアプリ機能用です。

ページをロードする場合、最も速いものから最も遅いものまで、さまざまなレベルのキャッシュが関係します。

  1. WebKitの内部メモリ内キャッシュ(ページおよびオブジェクトキャッシュ)
  2. ネットワークリソースのQtのディスクキャッシュ(QNetworkDiskCache)
  3. ユーザーのネットワークまたはシステムでのローカルプロキシキャッシュ
  4. ページを提供するサイトが使用する複数レベルのキャッシュ(例:コンテンツ配信ネットワークからの静的リソースの提供、Squidキャッシュ)

(3)と(4)は制御不能であり、(1)はデフォルトで有効になっているため、必要になる可能性があるのは(2)を有効にすることだけです。

于 2012-02-23T13:19:26.330 に答える