History

more work on improving script caching

ZappoMan committed 11 years ago

Commit 74d50a91 parent 36657c95 files · +69 −24Browse files

Showing the changes to libraries/script-engine/src/ScriptCache.cpp (1 of 5 files). Show all

Unified · Split

libraries/script-engine/src/ScriptCache.cpp+18−9
@@ -26,17 +26,22 @@ ScriptCache::ScriptCache(QObject* parent) { · 25 unmodified lines
2626
2727 // QHash<QUrl, QString> _scriptCache;
2828
29−void ScriptCache::getScript(const QUrl& url, ScriptUser* scriptUser) {
29+QString ScriptCache::getScript(const QUrl& url, ScriptUser* scriptUser, bool& isPending) {
30+ QString scriptContents;
3031 if (_scriptCache.contains(url)) {
31− scriptUser->scriptContentsAvailable(url, _scriptCache[url]);
32− return;
32+ scriptContents = _scriptCache[url];
33+ scriptUser->scriptContentsAvailable(url, scriptContents);
34+ isPending = false;
35+ } else {
36+ isPending = true;
37+ _scriptUsers.insert(url, scriptUser);
38+ QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
39+ QNetworkRequest networkRequest = QNetworkRequest(url);
40+ networkRequest.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
41+ QNetworkReply* reply = networkAccessManager.get(networkRequest);
42+ connect(reply, &QNetworkReply::finished, this, &ScriptCache::scriptDownloaded);
3343 }
34− _scriptUsers.insert(url, scriptUser);
35− QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
36− QNetworkRequest networkRequest = QNetworkRequest(url);
37− networkRequest.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
38− QNetworkReply* reply = networkAccessManager.get(networkRequest);
39− connect(reply, &QNetworkReply::finished, this, &ScriptCache::scriptDownloaded);
44+ return scriptContents;
4045 }
4146
4247 void ScriptCache::scriptDownloaded() {
@@ -61,6 +66,8 @@ void ScriptCache::scriptDownloaded() { · 18 unmodified lines
6166 reply->deleteLater();
6267 }
6368
69+
70+#if 0
6471 QString ScriptCache::getScript(const QUrl& url) {
6572 qDebug() << "Script requested: " << url.toString();
6673 QString scriptContents;
@@ -143,4 +150,6 @@ void ScriptCache::scriptDownloadedSyncronously() { · 76 unmodified lines
143150 _blockingScriptsPending.remove(url);
144151 qDebug() << "_blockingScriptsPending: " << _blockingScriptsPending;
145152 }
153+
154+#endif
146155