Untuk memaparkan fail OpenOffice (.odt dan .odp ) dalam pelayar web, seseorang perlu menyahzipnya terlebih dahulu. Walaupun inflate.js mungkin tidak mencukupi untuk tugas ini, terdapat penyelesaian JavaScript yang mantap untuk menyahzip fail ZIP secara tidak segerak.
A JavaScript unzipper telah dibangunkan, menggabungkan elemen daripada Andy G.P. Pembaca fail binari Na dan logik tiup RFC1951 Notmasteryet. Kelas ZipFile mengendalikan fungsi teras.
Kod JavaScript berikut menunjukkan penggunaan nyahzip:
// Instantiate a ZipFile and provide a callback for when the ZIP is read. zipFile = new ZipFile(url, doneReading); // The doneReading callback is triggered when the ZIP is read and handles the extraction of entries. function doneReading(zip) { extractEntries(zip); } // Extract entries from the ZIP file. function extractEntries(zip) { for (var i = 0; i < zip.entries.length; i++) { var entry = zip.entries[i]; // Create an entry info div. var entryInfo = "<h4><a>" + entry.name + "</a></h4>\n<div>"; // Create a unique ID for the accordion panel and inject the extracted content into it. var randomId = "id-" + Math.floor((Math.random() * 1000000000)); entryInfo += "<span class='inputDiv'><h4>Content:</h4><span id='" + randomId + "'></span></span></div>\n"; $("#report").append(entryInfo); // Asynchronously extract the entry and pass a callback. entry.extract(extractCb(randomId)); } } // Extract callback function to add the extracted content to an accordion on the page. function extractCb(id) { return (function(entryName, entryText){ var content = entryText.replace(new RegExp( "\n", "g" ), "<br/>"); $("#"+id).html(content); $('#report').accordion('destroy'); $('#report').accordion({collapsible:true, active:false}); }); }
Walaupun nyahzip JavaScript memenuhi tujuannya, ia menghadapi had tertentu:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Nyahzip Fail Secara Asynchronous dalam Pelayar Web Menggunakan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!