Heim >Web-Frontend >js-Tutorial >Einführung des Front-End-Dateiflussflie
In der Spalte
Der Leiter stellte die Frage, ob es möglich ist, eine segmentierte Anzeige lokaler segmentierter Daten zu realisieren, ohne auf die Fähigkeiten des Terminals zurückzugreifen. Wenn keine besonders großen Leistungsanforderungen oder klaren Anforderungen vorliegen, werden normalerweise alle Daten auf einmal geladen und gerendert. Wenn die Datenmenge jedoch groß ist oder die Leistung des Mobiltelefons schlecht ist, treten andere Probleme auf.
Als ich das hörte, war ich verwirrt. Ich wusste nichts, aber mein Kollege hat es implementiert und eine einfache Demo geschrieben.
console.log('[FileList-Objekt] :',event.target.files[0])
Die Dateischnittstelle basiert auf Blod, daher verfügt File auch über die Eigenschaften und Methoden, die Blod hat, wie z. B. Slice => fängt die Daten innerhalb des angegebenen Bereichs im Quell-Blob-Objekt ab, text =>Gibt ein Versprechen im UTF-8-Format zurück, das den gesamten Inhalt des Blobs enthält (d. h. unser Blob wird in ein UTF-8-Format konvertiert). wir können lesen)
const fileDate = event.target.files[0] let text = await fileDate.slice(1, 10).text() console.log('[截取一段Blod对象]', fileDate.slice(1, 10)); console.log('[Blod对象转化为文本]', text);复制代码
console.log('[FileList 对象]:',event.target.files[0])
<buttom onclick="onCopyHandle()">复制文本 </buttom> function onCopyHandle() { // 创建隐藏的可***链接 let content = ` name: sunseekers role: student houseName: shanghai url: https://github.com/sunseekers userAgent: ${navigator.userAgent} log:'这里是日志内容' `.trim(); let filename = 'logFiles.md' const eleLink = document.createElement('a'); eleLink.download = filename; eleLink.style.display = 'none'; const blob = new Blob([content]); eleLink.href = URL.createObjectURL(blob); // 字符内容转变成blob地址 document.body.appendChild(eleLink); eleLink.click(); // 触发点击 document.body.removeChild(eleLink); // 然后移除 Message.success('日志下载成功') };复制代码
具体实现我还么有写,思路到这里,日后补上
Blob
Blob/slice
File
Input/file
我记得很早之前写过不借助端的力量实现本地上传预览图片音频文件,那个时候就有提到过用过Blod对象,FileReader对象,还有createObjectURL,但是这一次恰好可以把这些都整合起来,一起说一下
var aBlob = new Blob( array, options );
Ich erinnere mich, dass ich vor langer Zeit geschrieben habe, wie man Vorschaubild- und Audiodateien lokal hochlädt, ohne die Leistung des Terminals zu nutzen Blod-Objekte, FileReader-Objekte und es gibt createObjectURL, aber dieses Mal können wir sie einfach alle integrieren, lasst uns gemeinsam darüber reden
var aBlob = new Blob(array, options);
Parameter Ein Array ist eine Kombination aus ArrayBuffer, ArrayBufferView, Blob, DOMString und anderen Objekten oder eine Mischung aus anderen ähnlichen Objekten und wird in den Blob eingefügt. DOMStrings werden als UTF-8 codiert. Optionen werden nicht eingeführt. Das Blob-Objekt stellt ein unveränderliches, dateiähnliches Rohdatenobjekt dar. Seine Daten können im Text- oder Binärformat gelesen oder für Datenoperationen in einen ReadableStream konvertiert werden.
=> Auf diese Weise wissen wir, dass ein Text durch neues Blod in ein Blod-Objekt umgewandelt werden kann
Dann kommt es darauf an, welche Objekte verwendet werden können, um etwas zu tun.
URL.createObjectURL() Ihr Parameter ist das Blod-Objekt, mit dem eine URL erstellt werden kann Das a-Element Das Download-Attribut ermöglicht das Herunterladen eines Protokolls oder Textes =>FileReader
Ich habe nach dem Schreiben entdeckt
Javascript
(Video)Das obige ist der detaillierte Inhalt vonEinführung des Front-End-Dateiflussflie. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!