diff --git a/chrome/content/zotero/xpcom/translate.js b/chrome/content/zotero/xpcom/translate.js index 4ce53494b..09d54fe8f 100644 --- a/chrome/content/zotero/xpcom/translate.js +++ b/chrome/content/zotero/xpcom/translate.js @@ -49,7 +49,8 @@ Zotero.Translators = new function() { this.init = function() { _initialized = true; - var start = (new Date()).getTime() + var start = (new Date()).getTime(); + var transactionStarted = false; _cache = {"import":[], "export":[], "web":[], "search":[]}; _translators = {}; @@ -104,6 +105,10 @@ Zotero.Translators = new function() { if(!dbCacheEntry) { // Add cache misses to DB + if(!transactionStarted) { + transactionStarted = true; + Zotero.DB.beginTransaction(); + } Zotero.Translators.cacheInDB(leafName, translator.metadataString, translator.cacheCode ? translator.code : null, lastModifiedTime); delete translator.metadataString; } @@ -120,6 +125,11 @@ Zotero.Translators = new function() { } } + // Close transaction + if(transactionStarted) { + Zotero.DB.commitTransaction(); + } + // Sort by priority var collation = Zotero.getLocaleCollation(); var cmp = function (a, b) {