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
26 26
27// QHash<QUrl, QString> _scriptCache;27// QHash<QUrl, QString> _scriptCache;
28 28
29void ScriptCache::getScript(const QUrl& url, ScriptUser* scriptUser) {29QString ScriptCache::getScript(const QUrl& url, ScriptUser* scriptUser, bool& isPending) {
30 QString scriptContents;
30 if (_scriptCache.contains(url)) {31 if (_scriptCache.contains(url)) {
31 scriptUser->scriptContentsAvailable(url, _scriptCache[url]);32 scriptContents = _scriptCache[url];
32 return;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);
33 }43 }
34 _scriptUsers.insert(url, scriptUser);44 return scriptContents;
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);
40}45}
41 46
42void ScriptCache::scriptDownloaded() {47void ScriptCache::scriptDownloaded() {
@@ -61,6 +66,8 @@ void ScriptCache::scriptDownloaded() { · 18 unmodified lines
61 reply->deleteLater();66 reply->deleteLater();
62}67}
63 68
69
70#if 0
64QString ScriptCache::getScript(const QUrl& url) {71QString ScriptCache::getScript(const QUrl& url) {
65 qDebug() << "Script requested: " << url.toString();72 qDebug() << "Script requested: " << url.toString();
66 QString scriptContents;73 QString scriptContents;
@@ -143,4 +150,6 @@ void ScriptCache::scriptDownloadedSyncronously() { · 76 unmodified lines
143 _blockingScriptsPending.remove(url);150 _blockingScriptsPending.remove(url);
144 qDebug() << "_blockingScriptsPending: " << _blockingScriptsPending;151 qDebug() << "_blockingScriptsPending: " << _blockingScriptsPending;
145}152}
153
154#endif
146 155