StupidBeauty
Read times:1673Posted at: - no title specified

Qt5.4文档翻译:QNetworkDiskCache,QNetworkDiskCache Class

QNetworkDiskCache 类,实现了一个基本的硬盘缓存。 详细说明……

头文件:

#include <QNetworkDiskCache>

qmake指令

QT += network

自此版本开始引入:

Qt 4.5

继承

QAbstractNetworkCache .

详细说明

QNetworkDiskCache 类,实现了一个基本的硬盘缓存。

QNetworkDiskCache 使用 QDataStream 来将每个url 存储在它自己的位于 cacheDirectory 的文件中。那些 其 MimeType 为文本(text)的文件,会被使用 qCompress 进行压缩。每个缓存文件,文件 名开头是 "cache_" ,结尾是 ".cache" 。数据 只会在 insert ()和 updateMetaData ()调用中被写入到硬盘。

目前,妳不能在多个硬盘缓存之间共享同一组缓存文件。

QNetworkDiskCache 默认情况 下会将用于缓存的硬盘空间限制为 50MB

注意,妳必须先设置缓存目录,它才会工作。

可按如下代码来启用面向网络的硬盘缓存:

QNetworkAccessManager *manager = new QNetworkAccessManager (this);

QNetworkDiskCache *diskCache = new QNetworkDiskCache (this);

diskCache-> setCacheDirectory ("cacheDir");

manager->setCache(diskCache);

在发送请求时,可按照以下代码来控制优选方案,什么时候使用缓存,什么时候使用网络:

// 发起一个普通请求(优先使用网络,这是默认选项)

QNetworkRequest request( QUrl ( QString ("http://qt-project.org")));

manager->get(request);

// 发起一个优先使用缓存的请求

QNetworkRequest request2( QUrl ( QString ("http://qt-project.org")));

request2.setAttribute( QNetworkRequest ::CacheLoadControlAttribute, QNetworkRequest ::PreferCache);

manager->get(request2);

可使用以下代码来检查,回复内容是来自于缓存还是来自于网络:

void replyFinished( QNetworkReply *reply) {

QVariant fromCache = reply->attribute( QNetworkRequest ::SourceIsFromCacheAttribute);

qDebug () << "page from cache?" << fromCache.toBool();

}

成员函数文档

QString  QNetworkDiskCache::​ cacheDirectory () const

返回将用来存储缓存文件的位置。

参考 setCacheDirectory ()

[virtual slot] void  QNetworkDiskCache::​ clear ()

覆盖 QAbstractNetworkCache::clear ()

[virtual] QIODevice  * QNetworkDiskCache::​ data (const  QUrl  &  url )

覆盖 QAbstractNetworkCache::data ()

qint64  QNetworkDiskCache::​ maximumCacheSize () const

返回此硬盘缓存的当前最大尺寸。

参考 setMaximumCacheSize ()

void  QNetworkDiskCache::​ setCacheDirectory (const  QString  &  cacheDir )

设置要用来储存缓存文件的目录为 cacheDir

QNetworkDiskCache 发现此目录不存在的话,会创建它。

预先准备好的那些缓存条目,会在插入时被放置到新的缓存目录中。

参考 cacheDirectory () QDesktopServices::CacheLocation

void  QNetworkDiskCache::​ setMaximumCacheSize ( qint64 size )

将此硬盘缓存的最大尺寸设置为 size

如果 新设置的尺寸比当前的缓存尺寸要小,则,该缓存对象会调用 expire ()

参考 maximumCacheSize ()

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands