簡體   English   中英

Improve AJAX function in ASP.NET C# to download PDF faster - HOW

[英]Improve AJAX function in ASP.NET C# to download PDF faster - HOW

我創建了一個 function 使用 AJAX 從給定的 URL 下載文件(我調用 ZDB974238D14CADE1 所需的文件)

URL看起來像這樣:

http://server43.test.local:9867/api/rest/invoices/receipts/pdf?business=01&account=87577&type=TRANSACTION&numberTRX=AGH66

Function下載PDF:

 function downLoadFile(url) {    
    $("#h_msj").text("Downloading file...");
     $.ajax({
         url: url,
         method: 'GET',
         responseType: 'arraybuffer',
         success: function (response) {
             if (response.fileName.length == 0) {
                 alert("File not available!!");
             }
             else {
                 var arrayBuffer = base64ToArrayBuffer(response.data);
                 saveByteArray(response.fileName, arrayBuffer);
             }           
         }
    });
    }).then(function () { $("#h_msj").text(""); });

調用的其他函數:

 //convert BASE64 string to Byte{} array
    function base64ToArrayBuffer(base64) {
        var binaryString = window.atob(base64);
        var binaryLen = binaryString.length;
        var bytes = new Uint8Array(binaryLen);
        for (var i = 0; i < binaryLen; i++) {
            var ascii = binaryString.charCodeAt(i);
            bytes[i] = ascii;
        }
        return bytes;
    }


//save Byte[] array and download
function saveByteArray(fileName, byte) {
    var blob = new Blob([byte], { type: "application/octetstream" });
    var link = document.createElement('a');
    link.href = window.URL.createObjectURL(blob);    
    link.download = fileName;
    link.click();
    link.remove();
    window.URL.revokeObjectURL(url);
}

問題是通過使用它需要一段時間來下載 PDF。

我的代碼高效嗎? 我怎樣才能讓它更快?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM