JQuery-AJAX-HTTP-Verbindungen
Wenn ich ein jQuery-POST-Aufruf, der etwa so aussieht:
$.post(url : "myserver/1", data : params, success: function () {
$.post(url : "myserver/2", data : params2);
});
Wie viele HTTP-Verbindungen wäre diese zu öffnen? Ich nehme an, es öffnet sich 2.
Ich versuche zu replizieren, was eine Webseite machen würde, in einem Python-Skript (als performance-Tests geben Skript). Es ist viel schneller, wenn ich tun: (pseudo-code)
for i in 0 to 5000:
Open HTTP Connection
POST
POST
Close HTTP Connection
vs
for i in 0 to 5000:
Open HTTP Connection
POST
Close
Open HTTP Connection
POST
Close
Ich nehme an, der zweite test ist, was der browser tun würde. Ich habe im wesentlichen replizieren möchten, wie schnell 5000 hits (back to back) auf der Seite wäre. Natürlich konnte ich parallelisieren diese Aufgabe-aber das ist nicht was ich Suche, hier
Jetzt, vorausgesetzt, jquery macht 2 HTTP-verbindungen, gibt es eine einfache Methode für die Aufrechterhaltung einer dauerhaften Verbindung?
Du musst angemeldet sein, um einen Kommentar abzugeben.
jQuery können nicht kontrollieren, die Anzahl der verbindungen - es öffnet sich der browser, wie viele es gerne (in der Regel 2-8) und dann schiebt Sie Ihre Anfrage durch Sie. Dein code würde wahrscheinlich öffnen nur eine Verbindung, da Sie darauf warten, für den ersten request zu beenden, bevor Sie initiieren die zweite Anforderung.
Können Sie nicht verwenden, threads in javascript natürlich, aber Sie initiieren können, so viele Anfragen wie Sie wollen auf einmal und das kann max, die Anzahl der zulässigen verbindungen von Ihrem browser.
Möchten Sie wahrscheinlich so etwas wie:
Sogar auf diese Weise, Sie sind nur gehen, um ein paar Anschlüsse und senden Sie alle Ihre Anfragen über diese verbindungen. , Die nicht wirklich geben Sie Ihre server-Anwendung, die Schläge, die Sie suchen, einschließlich der tcp-set-up und tear-down. Browser sind speziell design zu vermeiden, hämmern einem server. Wenn Sie zu viele Anfragen, werden Sie wind-up warten Sie auf eine verfügbare Verbindung in Ihrem browser die Netzwerk-manager.
Wenn Sie deaktivieren Sie http-keep-alive auf dem server, Sie werden näher kommen, aber dass kann nicht möglich sein, oder sonst Einfluss auf die Ergebnisse. Mit es deaktiviert, jede Anfrage wird gezwungen, eine neue Verbindung aufzubauen. Aber das ist unrealistisch pessimistisch. Es hängt alles davon. Last realistisch zu testen ist nicht so einfach. Aber oft brauchen Sie es nicht zu, dass Sie realistisch, was Sie wirklich wollen, zu testen?
Wireshark zeigen Ihnen die nitty-gritty der was wirklich vor sich geht.