]> git.parisson.com Git - pdf.js.git/commitdiff
Fix bug such that search is updated one a new page arrives + make the search update...
authorJulian Viereck <julian.viereck@gmail.com>
Sun, 8 Apr 2012 23:31:29 +0000 (16:31 -0700)
committerJulian Viereck <julian.viereck@gmail.com>
Sun, 8 Apr 2012 23:31:29 +0000 (16:31 -0700)
web/viewer.js

index c827b5bce0ad4bb12805f467182c1c8be6b01034..ec18ea55e28f6a4618cfaf8bedc0ef9a86100c77 100644 (file)
@@ -576,21 +576,34 @@ var PDFView = {
 
     if (pdfTitle)
       document.title = pdfTitle + ' - ' + document.title;
+
+    pdf.textExtracted = (function pdfTextExtracted(pageIdx, content) {
+      this.search();
+    }).bind(this);
   },
 
   startTextExtraction: function pdfViewStartTextExtraction(pdf) {
     var searchResults = document.getElementById('searchResults');
     searchResults.textContent = '';
 
-    pdf.textExtracted = (function pdfTextExtracted(pageIdx, content) {
-      this.search();
-    }).bind(this);
-    pdf.extractText();
-
-    this.pdfDoc = pdf;
+    this.pdfDoc.extractText();
   },
 
   search: function pdfViewStartSearch() {
+    // Limit this function to run every <SEARCH_TIMEOUT>ms.
+    var SEARCH_TIMEOUT = 250;
+    var lastSeach = this.lastSearch;
+    var now = Date.now();
+    if (lastSeach && (now - lastSeach) < SEARCH_TIMEOUT) {
+      if (!this.searchTimer)
+        this.searchTimer =
+          setTimeout(this.search, SEARCH_TIMEOUT - (now - lastSeach));
+
+      return;
+    }
+    this.searchTimer = null;
+    this.lastSearch = now;
+
     function bindLink(link, pageNumber) {
       link.href = '#' + pageNumber;
       link.onclick = function searchBindLink() {