JSFiddle - React, Tailwind, and code Playground

by musicreader

HTML

<script src="https://www.mrsync.com/js/jquery/jquery-2.1.3.min.js"></script>
<script src="https://www.mrsync.com/js/jqwidgets/jqx-all.js"></script>
PDF TEST<br/>
<input type="file" id="file-chooser" multiple="multiple" /><br />

JavaScript

$(document).ready(function () {
 			$.getScript("https://www.mrsync.com/js/pdf/pdf.js", function () {
            PDFJS.disableAutoFetch=true;
            /*PDFJS.disableStream=true;
            PDFJS.disableRange=true;*/
            PDFJS.workerSrc = "https://www.mrsync.com/js/pdf/pdf.worker.js";
            //PDFJS.disableWebGL=true;
            //PDFJS.disableWorker=true;
        });
 		document.getElementById('file-chooser').onchange = function(e) {
                var files = e.target.files; // FileList
                var file=files[0];
                loadPDF(file, processPDF);
    };
 });
 
 function loadPDF(file,callback){
 		var d1=Date.now();

    var reader = new FileReader();
    reader.onload = function (evt) {
    		var result=evt.target.result;
        evt=undefined; //Uses less memory
        reader=undefined; //Uses less memory
        PDFJS.getDocument(result).then(
            function (pdf) {
                var d2 = Date.now();
                console.log("Load PDF Delay:" + (d2 - d1));               
                setTimeout(callback.bind(this,pdf),10);//Timeout for memory
                pdf=undefined;
            } //SUCCESS
        );
    };
    reader.readAsArrayBuffer(file);
 }
 
 function processPDF(pdf){
 		var pagecount=pdf.numPages;
  	var p=-1;
    var processNext=function(pdf,p,pagecount,processNext) {

            p++;

            if (p >= pagecount) {
                pdf.destroy();
                pdf=undefined;

                console.log("All Pages Processed");

                return;
            }

            //Half Page & Cropping

                    var d0=Date.now();

                    renderPDFPage(pdf,p + 1,function(srcImage) {

                        console.log("DETECT HALF/CROP PAGE2:" + p)

                        var d1 = Date.now();

                        var render_delay = (d1 - d0);
                        console.log("detected render delay:" + render_delay);

                      

                ...