2017-06-04 2 views
0

Ich werde AJAX für ein Paginierungsskript verwenden und möchte dieses Skript als "Datenverbrauch speichern" wie möglich machen. Daher ist meine Idee, einfach die Elemente für die ausgewählte Seite zu laden und leere li-Elemente mit Daten-ID für alle Elemente, die nicht angezeigt werden, zu laden.Wie werden Daten in einem Ajax-Aufruf gezählt?

Die Frage ist, ob dies wirklich Datenverbrauch spart, wenn die von AJAX aufgerufene PHP-Datei sowieso alle Daten durchläuft.

Ich denke, die Frage ist; Zählen die Daten, wie viel Inhalt in der Ajax-Antwort ist, oder wird gezählt, wie groß der Ajax-Aufruf der PHP-Datei ist?

Speichere ich irgendwelche Daten, indem ich eine Menge li-Items leer lasse oder könnte ich den Inhalt einfach hinzufügen, da er sowieso in den Ajax-Call geladen wurde?

Versteht jemand wie ich meine?

Die Leute wollen immer Codebeispiel:

jQuery.post(ajaxurl, 'action=load_items', function(response) 
{ 
      // Is it the action 'action=load_items' 
      // that consumes data? Or is it the amount 
      // of data coming out in the response? 
}); 
+0

Ich verstehe nicht, was du meinst. Hast du ein echtes Beispiel, mit Code demonstriere deine Frage ([mcve])? –

+0

haben Sie keine leeren Bits ... Verwenden Sie Json, und dann bauen Sie die Dom mit js aus der Antwort, das wäre der "leichteste" Datenverbrauch, auch Gzip auf dem Server wird auch Datenverbrauch reduzieren, obwohl es wirklich schwer zu wissen Was meinst du mit Datenkonsum. :) –

+0

Aber ich brauche die leeren Bits, um das Javascript zu wissen, auf welcher Seite die geladenen Elemente sind. Meine Frage ist wie; Was entscheidet, wieviele Daten verbraucht wurden? Ist es 1. abhängig davon, wie stark die PHP-Datei beim Ajax-Aufruf geladen ist? Oder ist es 2. abhängig davon, wie viele Daten in der Ajax-Antwort ausgegeben wurden? –

Antwort

1

ich Ihnen die Daten, die einen Client (wer den Besuch der Website) verbraucht (beispielsweise aufgrund eines kleinen Datentarif auf einem Mobiltelefon) minimieren erraten werden soll. Ist das richtig?

Wenn ja, müssen Sie darüber nachdenken, was tatsächlich von Ihrer Website an den Client gesendet wird. Das PHP-Skript echo s einige Daten, und nur diese Daten werden an den Client übertragen. Also, was Sie tatsächlich während der Berechnung eingelesen haben (und im Speicher des Servers halten), ist nicht relevant. Es ist relevant, was Sie tatsächlich veröffentlichen und an den Kunden senden.

Dies gesagt, können Sie die Ausgabe Ihres Skripts optimieren. Zuerst sollten Sie GZIP aktivieren. Dies speichert die meisten Daten und jeder Browser versteht es. In PHP ist dies sehr einfach (siehe detailed answer). Fügen Sie einfach ob_start("ob_gzhandler"); vor Ihrer Ausgabe hinzu.

Zweitens sollten Sie den JSON, den Sie zurück an den Client senden, minimieren. Sie können dies tun, indem Sie einfach die Standardfunktion json_encode() verwenden. Dadurch werden Sie alle unnötigen Leerräume in JSON entfernen.

Wenn Sie jetzt nur Datenblöcke anstelle des gesamten Datensatzes senden, wäre dies wahrscheinlich der datensparendste Weg. Beachten Sie, dass es immer einen HTTP-Header gibt, der ebenfalls übertragen werden muss. Machen Sie also keine zu kleinen Datenpakete, wenn Sie den Datenverbrauch optimieren wollen (idealerweise senden Sie genau das, was der durchschnittliche Benutzer in einem Paket sehen möchte).

Sie können den Datenverbrauch Ihrer Website auf der Registerkarte Netzwerk von z. Google Chrome Dev Tools (Ich bin sicher, dass dies auch in anderen Browsern verfügbar ist). Jeder Ajax-Aufruf wird dort zusammen mit seiner Größe aufgeführt (Sie können ihn mit XHR filtern).

Verwandte Themen