diff --git a/web/ui_utils.js b/web/ui_utils.js index 9caa81513..29ee01bb8 100644 --- a/web/ui_utils.js +++ b/web/ui_utils.js @@ -255,5 +255,11 @@ var Cache = function cacheCache(size) { data.shift().destroy(); } }; + this.resize = function (newSize) { + size = newSize; + while (data.length > size) { + data.shift().destroy(); + } + }; }; diff --git a/web/viewer.js b/web/viewer.js index 553765f43..30cdf2701 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -28,7 +28,7 @@ var DEFAULT_URL = 'compressed.tracemonkey-pldi-09.pdf'; var DEFAULT_SCALE = 'auto'; var DEFAULT_SCALE_DELTA = 1.1; var UNKNOWN_SCALE = 0; -var CACHE_SIZE = 10; +var DEFAULT_CACHE_SIZE = 10; var CSS_UNITS = 96.0 / 72.0; var SCROLLBAR_PADDING = 40; var VERTICAL_PADDING = 5; @@ -91,7 +91,7 @@ var mozL10n = document.mozL10n || document.webL10n; //#include chromecom.js //#endif -var cache = new Cache(CACHE_SIZE); +var cache = new Cache(DEFAULT_CACHE_SIZE); var currentPageNumber = 1; //#include view_history.js @@ -1964,6 +1964,10 @@ function updateViewarea() { return; } + var suggestedCacheSize = Math.max(DEFAULT_CACHE_SIZE, + 2 * visiblePages.length + 1); + cache.resize(suggestedCacheSize); + PDFView.renderHighestPriority(visible); var currentId = PDFView.page;