2016-09-24 6 views
1

Ich möchte keine Lösung mit Node.js, FileReader, oder was auch immer außer Javascript! Entwickeln der HTML-Seite, habe ich ein Problem wie folgt festgestellt: Ich bekomme genaue Ergebnisse mit diesem Verfahren, leider merkt sich das Verfahren Ergebnis der ersten Login-Seite. Welche Textdatei in der Zwischenzeit den Inhalt ändert, die Prozedur gibt das erste Ergebnis zurück. Kann jemand einen Rat geben!Lesen einer Textdatei Zeile für Zeile nur mit Javascript

var filePath = "../../dir/sub dir/text_file.txt"; 
function getBackData(filePath){ 
    var axd, i, artx, txli, tdr; 
    if(window.XMLHttpRequest){ 
     axd = new XMLHttpRequest(); 
    }else{ 
     axd = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    axd.open('GET', filePath, true); 
    axd.onreadystatechange = function(){ 
     if(axd.readyState == 4 && axd.status == 200){ 
      artx = axd.responseText; 
      txli = artx.split("\n"); 
      for(i = 0; i < txli.length; i++){ 
       alert(txli[i]); 
      } 
     } 
    } 
    axd.send(null); 
} 

Antwort

0

Sie könnten versuchen: axd setRequestHeader('Cache-Control', 'no-cache');

Oder versuchen: axd.open('GET', filePath+'?_=' + new Date().getTime()), true); Dies wird Ihr Server mit dem Bargeld zu verhindern, da jede Anforderung unterschiedlich ist.

+0

Dank der schnellen und effizienten Reaktion O_Z ,. Ich habe deinen Ratschlag benutzt und es funktioniert jetzt perfekt! – Borache

+0

Ich bin anderen dankbar, deren Tipps auch hilfreich waren. – Borache

+0

@Borache Warum hast du mich nicht akzeptiert? –

0

Dies ist wahrscheinlich, weil der Browser es zwischenspeichern. Wenn Sie einen Parameter senden, der sich fast immer wie ein Zeitstempel unterscheidet, können Sie den Cache deaktivieren. Oder Sie können versuchen, POST zu verwenden, da die Postanforderung niemals zwischengespeichert wird.

0

Sie sind nicht berechtigt, lokale Dateien direkt mit AJAX anzufordern - Sie benötigen einen Server, um sie zu bedienen. Der Browser ist Sandboxed und kann im Allgemeinen lokale Dateien nicht öffnen. Dies ist eine Sicherheitsmaßnahme - stellen Sie sich vor, was passieren würde, wenn eine Website Ihre Dateien öffnen könnte!

Es gibt Möglichkeiten, einen einfachen Server für Ihre Bilder einzurichten, z. B. http-server. Auf diese Weise können Sie Dateien aus einem ausgewählten Verzeichnis direkt dienen, etwa so:

npm install -g http-server 
http-server path-to-text-files/ 

Dann Sie die Dateien normalerweise mit Ajax-Request kann, auf einem Pfad relativ zu dem einen der Server dient, etwa so:

url = "/dir/subdir/text-file.txt"; 
... 
ajax.open('GET', url, true); 
... 
ajax.send(null); 
Verwandte Themen