loadFromCache = function(
documentId
)
static loadFromCache(
documentId: string
): JQueryPromise<LEADDocument>;
documentId
documentId from a previously cached LEADDocument object.
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.
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.
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.
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>
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document