2017-10-25 5 views
0

Ist es möglich, eine Post-Anfrage zu vervollständigen, ohne die Seite umzuleiten oder zu aktualisieren?Knoten js Post-Anfrage ohne Aktualisierung

Ich mache einen einfachen Dateibrowser im Browser. Die Client-Seite zeigt den Inhalt des USB-Sticks des Servers an. Wenn ich einen Ordner öffne, sende ich eine Zeichenfolge an den Server mit den Pfaddaten, so dass der Server mir den Inhalt des aktuellen Ordners senden kann. Es ist sehr beunruhigend, dass, wenn ich einen Ordner öffne (klicke auf diesen), die Seite erfrischend ist. Irgendwelche Ideen?

+1

Es heißt AJAX. –

Antwort

1

Grundsätzlich müssen Sie Ihren Server verlangen, es wissen, dass Sie einige Daten abrufen möchten, wenn ein Benutzer einen Ordner auf seinem Browser öffnet.

Dieser Vorgang ist asynchron und Sie möchten auf keinen Fall den Browser Ihres Benutzers aktualisieren, wenn der Server neue Daten sendet.

Sie beginnen etwa wie folgt auf einem Client-seitiges Script Implementierung könnte:

function fetchData() { 
    var xhttp = new XMLHttpRequest(); 
    xhttp.onreadystatechange = function() { 
    if (this.readyState == 4 && this.status == 200) { 
     alert(this.responseText); 
     } 
    }; 
    xhttp.open("GET", "api/fetch-folder-content", true); 
    xhttp.send(); 
    } 

Dann werden Sie eine Route auf dem Server (dh ein Fetch-Ordner-Inhalt GET Route schreiben müssen) und lösen Sie die obige Funktion aus, wenn Sie frische Daten von Ihrem Server abrufen möchten.

1

Wenn Sie eine AJAX-Anforderung erstellen, die beim Öffnen des Ordners ausgelöst wird, wird die Seite nicht aktualisiert. Sie können auf Ihrem Server eine Route einrichten, die diese Anforderung verarbeitet und den Inhalt zurückgibt.

1

Wenn Sie HTML verwenden, um Ihre Anfrage an den Server zu senden, folgt der Browser standardmäßig dem Warten auf eine Antwort auf Ihren Postbefehl. Wenn Sie möchten, dass dies anders behandelt wird, möchten Sie vielleicht AJAX wie vorgeschlagen verwenden. Auf diese Weise lädt Ihr Browser die Seite nicht neu, sondern führt Ihren Code basierend auf der Serverantwort aus.

Manchmal ist es nur eine Frage der normalen Verhalten des Browsers wie in event.preventDefault() in jquery zu deaktivieren.

Wenn Ihre Frage ist anders bitte posten Sie Ihre Code