Heim >Web-Frontend >js-Tutorial >Wie kann ich lokale Textdateien in einem Webbrowser effizient lesen?

Wie kann ich lokale Textdateien in einem Webbrowser effizient lesen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-19 04:11:11853Durchsuche

How Can I Efficiently Read Local Text Files in a Web Browser?

Lokale Textdateien im Browser lesen

XMLHttpRequest ist eine häufig verwendete Methode zum asynchronen Datenabruf im Browser, kann aber manchmal auftreten Probleme beim Versuch, lokale Textdateien zu lesen.

Probleme mit XMLHttpRequest

Ein häufiger Fehler ist die XMLHttpRequest-Ausnahme 101, die anzeigt, dass die Anfrage abgebrochen wurde. Dies kann auftreten, wenn versucht wird, lokale Dateien zu lesen, ohne das Protokoll „file://“ anzugeben.

Alternative: Fetch API

Eine einfachere Möglichkeit, lokalen Text zu lesen Dateien erfolgt über die Fetch-API, die 2015 eingeführt wurde. Beispielcode, der die Fetch-API verwendet, um eine lokale Datei mit dem Namen zu lesen „myText.txt“:

fetch("myText.txt")
  .then((res) => res.text())
  .then((text) => {
    // Process the text data
  })
  .catch((e) => console.error(e));

Zugriff auf lokale Dateien

Moderne Browser erlegen strenge Einschränkungen für den direkten Zugriff auf das Dateisystem auf. Vermeiden Sie die Verwendung von „file:///“. Erwägen Sie stattdessen die Verwendung einfacher Webserver wie Python -m http.server oder npx http-server, um Daten über reguläre HTTP-URLs zu laden.

Beispielcode mit XMLHttpRequest

Bei Verwendung XMLHttpRequest: Überprüfen Sie manuell den Status 0 (was auf lokale Dateien hinweist), anstatt sich auf einen zurückgegebenen Status zu verlassen Code:

function readTextFile(file) {
  var rawFile = new XMLHttpRequest();
  rawFile.open("GET", file, false);
  rawFile.onreadystatechange = function () {
    if (rawFile.readyState === 4) {
      if (rawFile.status === 200 || rawFile.status === 0) {
        var allText = rawFile.responseText;
        console.log(allText);
      }
    }
  };
  rawFile.send(null);
}

Dateipfad angeben

Denken Sie daran, das Protokoll „file://“ einzubeziehen, wenn Sie den Dateipfad angeben:

readTextFile("file:///C:/your/path/to/file.txt");

Das obige ist der detaillierte Inhalt vonWie kann ich lokale Textdateien in einem Webbrowser effizient lesen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn