loadFromCache Method

Summary

Retrieves the document matching the given documentId string from the cache.

Syntax
TypeScript
JavaScript
loadFromCache = function( 
   documentId 
) 
static loadFromCache( 
   documentId: string 
): JQueryPromise<LEADDocument>; 

Parameters

documentId

documentId from a previously cached LEADDocument object.

Return Value

A Promise object that can resolve successfully to a LEADDocument object, or fail if the LEADDocument cannot be returned because it does not exist with that documentId.

Remarks

This static method will return a LEADDocument object that is known to already exist in the cache from being loaded via LoadFromUri or uploaded via UploadFile/uploadfiledocument or UploadDocument/uploaddocumentblob.

LoadFromCache is meant as a quick version of LoadFromUri and does not take a LoadDocumentOptions object.

If DeleteFromCache is called on the LEADDocument or the cache time has expired for the object, it will not be available via this method.

Documents can be manually deleted from the cache at any time using DeleteFromCache.

Example

This example will load a document from a uri, then show that it can be re-loaded from the cache. After successfully loading from the cache, the document is explicitly deleted from the cache.

LoadFromCache.ts
DocumentHelper.ts
LoadFromCache.js
DocumentHelper.js
LoadFromCache.html
import { DocumentHelper } from "../../utilities/DocumentHelper"; 
 
export class DocumentFactory_LoadFromCacheExample { 
    public constructor() { 
        lt.RasterSupport.setLicenseUri("https://demo.leadtools.com/licenses/v200/LEADTOOLSEVAL.txt", "EVAL", null); 
        DocumentHelper.initFactory(); 
    } 
 
    public run = (buttonID: string) => { 
        document.getElementById(buttonID).onclick = this.loadFromCache; 
    } 
 
    /** 
      * Load a new document from URI 
      */ 
    loadFromCache = () => { 
        const url = "https://demo.leadtools.com/images/pdf/leadtools.pdf"; 
        const loadDocumentOptions = new lt.Document.LoadDocumentOptions(); 
 
        lt.Document.DocumentFactory.loadFromUri(url, loadDocumentOptions) 
            .done((document: lt.Document.LEADDocument) => { 
                DocumentHelper.log("Document loaded from url", document); 
 
                // Get the ID and get rid of the document 
                const documentId = document.documentId; 
                document.dispose(); 
 
                // Now, re-load it from the cache using its document ID 
                lt.Document.DocumentFactory.loadFromCache(documentId) 
                    .done((document: lt.Document.LEADDocument) => { 
                        DocumentHelper.log("Document loaded from cache", document); 
 
                        // Now, delete it from the cache 
                        lt.Document.DocumentFactory.deleteFromCache(documentId) 
                            .done(() => { 
                                DocumentHelper.log("Deleted from cache - next load from cache should fail..."); 
                                lt.Document.DocumentFactory.loadFromCache(documentId) 
                                    .done((document: lt.Document.LEADDocument) => { 
                                        // doc must be null here 
                                        if (!document) { 
                                            DocumentHelper.log("Document was not found in cache (success)"); 
                                        } 
                                        else { 
                                            throw new Error("Something went wrong!"); 
                                        } 
                                    }) 
                                    .fail(DocumentHelper.showServiceError); 
                            }) 
                            .fail(DocumentHelper.showServiceError); 
                    }) 
                    .fail(DocumentHelper.showServiceError); 
 
            }) 
            .fail(DocumentHelper.showServiceError); 
    } 
} 
export class DocumentHelper { 
   static showServiceError = (jqXHR, statusText, errorThrown) => { 
      alert("Error returned from service. See the console for details."); 
      const serviceError = lt.Document.ServiceError.parseError(jqXHR, statusText, errorThrown); 
      console.error(serviceError); 
   } 
 
   static log = (message: string, data?: any) => { 
      const outputElement = document.getElementById("output"); 
      if (outputElement) { 
         const time = (new Date()).toLocaleTimeString(); 
         const textElement = document.createElement("p"); 
         textElement.innerHTML = (outputElement.childElementCount + 1) + " [" + time + "]: " + message; 
         outputElement.insertBefore(textElement, outputElement.firstChild); 
      } 
 
      if (!data) 
         console.log(message); 
      else 
         console.log(message, data); 
   } 
 
   static initFactory = () => { 
      // To communicate with the DocumentsService, it must be running! 
      // Change these parameters to match the path to the service. 
      lt.Document.DocumentFactory.serviceHost = "http://localhost:40000"; 
      lt.Document.DocumentFactory.servicePath = ""; 
      lt.Document.DocumentFactory.serviceApiPath = "api"; 
   } 
} 
import { DocumentHelper } from "../../utilities/DocumentHelper"; 
 
export class DocumentFactory_LoadFromCacheExample { 
    constructor() { 
        lt.RasterSupport.setLicenseUri("https://demo.leadtools.com/licenses/v200/LEADTOOLSEVAL.txt", "EVAL", null); 
        DocumentHelper.initFactory(); 
    } 
 
    run = (buttonID) => { 
        document.getElementById(buttonID).onclick = this.loadFromCache; 
    } 
 
    /** 
      * Load a new document from URI 
      */ 
    loadFromCache = () => { 
        const url = "https://demo.leadtools.com/images/pdf/leadtools.pdf"; 
        const loadDocumentOptions = new lt.Document.LoadDocumentOptions(); 
 
        lt.Document.DocumentFactory.loadFromUri(url, loadDocumentOptions) 
            .done((document) => { 
                DocumentHelper.log("Document loaded from url", document); 
 
                // Get the ID and get rid of the document 
                const documentId = document.documentId; 
                document.dispose(); 
 
                // Now, re-load it from the cache using its document ID 
                lt.Document.DocumentFactory.loadFromCache(documentId) 
                    .done((document) => { 
                        DocumentHelper.log("Document loaded from cache", document); 
 
                        // Now, delete it from the cache 
                        lt.Document.DocumentFactory.deleteFromCache(documentId) 
                            .done(() => { 
                                DocumentHelper.log("Deleted from cache - next load from cache should fail..."); 
                                lt.Document.DocumentFactory.loadFromCache(documentId) 
                                    .done((document) => { 
                                        // doc must be null here 
                                        if (!document) { 
                                            DocumentHelper.log("Document was not found in cache (success)"); 
                                        } 
                                        else { 
                                            throw new Error("Something went wrong!"); 
                                        } 
                                    }) 
                                    .fail(DocumentHelper.showServiceError); 
                            }) 
                            .fail(DocumentHelper.showServiceError); 
                    }) 
                    .fail(DocumentHelper.showServiceError); 
 
            }) 
            .fail(DocumentHelper.showServiceError); 
    } 
} 
export class DocumentHelper { 
   static showServiceError = (jqXHR, statusText, errorThrown) => { 
      alert("Error returned from service. See the console for details."); 
      const serviceError = lt.Document.ServiceError.parseError(jqXHR, statusText, errorThrown); 
      console.error(serviceError); 
   } 
 
   static log = (message, data) => { 
      const outputElement = document.getElementById("output"); 
      if (outputElement) { 
         const time = (new Date()).toLocaleTimeString(); 
         const textElement = document.createElement("p"); 
         textElement.innerHTML = (outputElement.childElementCount + 1) + " [" + time + "]: " + message; 
         outputElement.insertBefore(textElement, outputElement.firstChild); 
      } 
 
      if (!data) 
         console.log(message); 
      else 
         console.log(message, data); 
   } 
 
   static initFactory = () => { 
      // To communicate with the DocumentsService, it must be running! 
      // Change these parameters to match the path to the service. 
      lt.Document.DocumentFactory.serviceHost = "http://localhost:40000"; 
      lt.Document.DocumentFactory.servicePath = ""; 
      lt.Document.DocumentFactory.serviceApiPath = "api"; 
   } 
} 
<!doctype html> 
<html lang="en"> 
<title>Document Example | LoadFromCache</title> 
 
<head> 
   <script src="https://code.jquery.com/jquery-2.2.4.min.js" 
      integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script> 
 
   <script src="../../LT/Leadtools.js"></script> 
   <script src="../../LT/Leadtools.Controls.js"></script> 
   <script src="../../LT/Leadtools.Annotations.Engine.js"></script> 
   <script src="../../LT/Leadtools.Annotations.Designers.js"></script> 
   <script src="../../LT/Leadtools.Annotations.Rendering.Javascript.js"></script> 
   <script src="../../LT/Leadtools.Annotations.Automation.js"></script> 
   <script src="../../LT/Leadtools.ImageProcessing.Main.js"></script> 
   <script src="../../LT/Leadtools.ImageProcessing.Color.js"></script> 
   <script src="../../LT/Leadtools.ImageProcessing.Core.js"></script> 
   <script src="../../LT/Leadtools.ImageProcessing.Effects.js"></script> 
   <script src="../../LT/Leadtools.Document.js"></script> 
   <script src="../../LT/Leadtools.Document.Viewer.js"></script> 
   <link rel="stylesheet" type="text/css" href="../../css/examples.css"> 
 
   <!-- All demo files are bundled and appended to the window --> 
   <script src="../../bundle.js" type="text/javascript"></script> 
</head> 
 
<body> 
   <div> 
      <button type="button" id="exampleButton">Run Example</button> 
   </div> 
   <div id="output"></div> 
   <div> 
      <img id="img" /> 
   </div> 
</body> 
 
<script> 
   window.onload = () => { 
      const example = new window.examples.DocumentFactory.LoadFromCache(); 
      example.run("exampleButton"); 
   }; 
</script> 
</html> 

Requirements

Target Platforms

Help Version 20.0.2020.4.3
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Document Assembly