Überprüfen Sie, ob sich die Datei mithilfe der HTML5-Datei-API geändert hat

8

Okay, also habe ich ein Programm, das einige spezifische Daten in eine tabulatorgetrennte Variablendatei ausgibt.

Ich hatte Excel benutzt, um den Inhalt der Datei zu öffnen und anzuzeigen, aber ich fand Excels Beharren darauf, jede geöffnete Datei zu sperren, weil mein Programm abstürzen würde, wenn ich die Datei in Excel geöffnet hätte ... aber ich würde es tun wirklich mögen die Daten, um ordentlich nach jedem Lauf des Programms zu aktualisieren, also muss ich die Akte nicht die ganze Zeit schließen und neu öffnen.

Also entschied ich, dass es am einfachsten wäre, Javascript zu verwenden, um die Datei zu parsen und sie in einer HTML-Tabelle anzuzeigen, und das war es auch. Ich habe in kurzer Zeit etwas zusammengeschlagen. Jetzt stürzt mein Programm nicht ab, wenn ich die Datei auf dem Display belasse, es wird jedoch immer noch nicht aktualisiert ... und ich muss die neu erzeugte Datei jedes Mal öffnen.

Also, ich habe mich gefragt, ob es einen Mechanismus gibt, mit dem mein Javascript irgendwie von einer Änderung der Datei durch einen anderen Prozess benachrichtigt werden könnte? Ich weiß, das ist unwahrscheinlich, aber ich möchte vermeiden, die Datei aus offensichtlichen Gründen einfach abzurufen.

Ich bin sehr vertraut mit JS, aber HTML5 und die neuen APIs sind für mich alle neu.

    
Luke 11.01.2013, 18:09
quelle

2 Antworten

9

Ich glaube nicht, dass die Datei-API ein Ereignis für die Dateiänderung hat, nur Fortschrittsereignisse und dergleichen .

Sie könnten Abfragen verwenden. Erinnern Sie sich an das lastModifiedDate von File . Wenn Ihre Abruffunktion ausgelöst wird, erhalten Sie a Neue File Instanz für die Eingabe und sehen, ob lastModifiedDate sich geändert hat.

Dies funktioniert für mich in Chrome, zum Beispiel: Live Copy | Quelle

%Vor%     
T.J. Crowder 11.01.2013, 18:14
quelle
2

Während T.J. Crowders Antwort ist korrekt, die Implementierung von Chrome scheint die Spezifikation zu durchbrechen.

  

Jeder Blob muss einen internen Snapshot-Status haben, der anfänglich auf den Zustand des zugrunde liegenden Speichers gesetzt werden muss, wenn ein solcher zugrunde liegender Speicher vorhanden ist, und muss durch strukturierten Klon erhalten bleiben. Weitere normative Definition des Snapshot-Status kann für Dateien gefunden werden.

Wenn eine Datei ausgewählt ist, hat die Eingabe eine Momentaufnahme des Inhalts an diesem Punkt. Lokale Änderungen auf dem Datenträger aktualisieren den Snapshot nicht.

    
Teffen Ellis 17.02.2017 12:01
quelle

Tags und Links