Russian Qt Forum

Qt => Работа с сетью => Тема начата: mr.Morgan от Март 31, 2012, 11:29



Название: Кэш с помощью QNetworkAccessManager
Отправлено: mr.Morgan от Март 31, 2012, 11:29
Здравствуйте, скорее всего уже кучу раз вставала проблема о том как реализовать работу кэша на браузере под qt, но все таки интересует несколько вопросов.
Код
C++ (Qt)
QNetworkAccessManager *m_network = new QNetworkAccessManager;
   QNetworkDiskCache *diskCache = new QNetworkDiskCache;
   diskCache->setCacheDirectory(qApp->applicationDirPath()+QDir::separator()+"cache");
   ui->webView->page()->networkAccessManager()->setCache(diskCache );
   m_network->setCache(diskCache);
   ui->webView->page()->setNetworkAccessManager(m_network);
 
   QNetworkRequest request2(url);
   request2.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysCache);
   m_network->get(request2);

Криво кэшируются данные. Т.е. если к примеру загрузить картинку большого размера, например http://wp-b.com/images/2011/2/28/2-ch1298917973360.jpg (http://wp-b.com/images/2011/2/28/2-ch1298917973360.jpg), то очевидно что загружается картинка из кэша. А если просматривать целые странички, кэш уже отказывается работать и данные загружаются из интернета. Опять же при обновлении странички с помощью reload,в независимости от содержимого, страничка загружается из интернета.
Подскажите, в чем проблема?как оптимизировать кэш?если были подобные вопросы, буду рад ссылке