ajax-Antwort byte Größe

Ich bin mit jQuery getJSONP und ich möchte zu Protokoll die Dauer des Gesprächs und die Größe der Antwort in der Lage sein, einige Statistiken über die Nutzung meiner Anwendung.
Dies ist ein cross-domain-ajax-call, also muss ich verwenden, JSONP, aber als JSONP-call ist nicht getan mit ein XMLHttpRequest-Objekt, die vollständige Rückruf von jquery ' s ajax übergeben nicht Inhalt der Antwort enthalten sind.

Also meine Frage ist, wie die Antwort, die Größe (Inhalt, Länge) aus einem JSONP-Aufruf.

$.ajaxSetup(
{
    complete:function(x,e)
    {
         log(x.responseText.length, x.responseText);
    }
}

hier x ist ein XMLHttpRequest-Objekt für ein JSON-Aufruf , aber für JSONP-Aufruf ist nicht definiert.

  • Aus Sicherheitsgründen ist dies nicht möglich.
  • So kleinlich bin, x.responseText.length gibt Sie die Anzahl der Zeichen, nicht die byte-Anzahl.
  • hi SLaks, vielen Dank für die schnelle Antwort, aber dann stellt sich die Frage: gibt es eine best practice für das erreichen dieses? zum Beispiel kann ich die Reaktion der Länge als direkte Eigenschaft in der json-Antwort. aber das bedeutet, dass, wenn ich keine Kontrolle über die server-Seite kann ich nicht tun.
  • Sie können Ihre eigenen server als proxy und normale AJAX.
  • Ich denke, SLaks ist (wie gewohnt) richtig ist, dass man nicht (obwohl ich kleinlich mit seiner definition von, warum), gibt es einfach keine Möglichkeit, dies zu tun. Im Grunde, was Sie Fragen, ist für ein Weg, um die Länge von einem externen Skript, das im Lieferumfang Ihrer Seite über einen script tag (denn das ist, wie JSONP funktioniert, indem es vorübergehend das einfügen eines script - tag in Ihrem Dokument). Wenn Sie hatte die Kontrolle über die server-Seite der Dinge, dann gibt es natürlich mehrere Möglichkeiten, wie Sie dies tun könnte, aber wenn Sie nicht...
InformationsquelleAutor Alex Pacurar | 2010-04-15
Schreibe einen Kommentar