Frage

Ich bin die Aufrechterhaltung einer J2ME-Anwendung, wo ich eine HTTP-Anfrage gefunden http://www.google.com in der Initialisierung der Anwendung. Ich fragte den Entwickler, warum eine Anforderung an Google. Er sagte, dass auf diese Weise die anderen Anfragen, dass die Anwendung macht schneller wäre.

Ich entfernte diese Anforderung zu google.com und die anderen Anfragen wurden langsamer.

Kann mir jemand erklären, warum dies geschehen? Wie kann ich die andere Anfrage schneller ohne vorherige Anfragen zu machen?

EDIT:

Anfrage zu machen bei der Initialisierung Google:

  • Erste Anfrage (nach der Initialisierung) = 20sec
  • Wiederholung der ersten Anfrage = 5s

Ohne Anfrage bei der Initialisierung machen:

  • Erste request = 40sec
  • Wiederholung der ersten Anfrage = 5s
War es hilfreich?

Lösung

Auf einem Mobilgerät die Web-Verbindung initiiert irgendwann nehmen und sehr oft die JVM wird die Verbindung offen für die Dauer des MIDlet läuft (die meisten moderne Verbindungen pro Byte geladen sind - EDGE, GPRS, WiFi) verlassen. Also, wenn eine Verbindung auf startApp gemacht wird, finden Sie vielleicht die Verbindung bleibt offen und alle weitere Kommunikation wird keine Verbindung öffnen müssen, nur Daten senden. So schnell und zuverlässig!

Dieses Verhalten ist plattformspezifisch MIDP2 nicht vor, dies um wahr zu sein (so Nokia zu Samsungs unterscheiden usw.).

Anschluss an 127.0.0.1 wird wahrscheinlich die JVM nicht täuschen, die darüber entscheiden, kann es keine offene GPRS-Verbindung für das braucht. Wieder plattformspezifisch.

James

Andere Tipps

... vielleicht die erste Anforderung initialisiert die Netzwerkschicht (*) in dem Gerät und vielleicht auch die JVM.

Ich bin sicher, dass es mit www.microsoft.com funktioniert auch: -)

*) Ich vermute, das hängt davon ab, welches Gerät Sie laufen auf. Ich habe keine Ahnung, was los ist, aber es könnte alles sein. Zum Beispiel:. Starten des Funkgerätes, eine Sitzung mit dem Netzbetreiber, Laden und Starten von Klassen in den Jvm Einrichtung

Versuchen zu verbinden, anstatt Google 127.0.0.1 und sehen, ob das später macht versucht schneller.

Wenn die Anwendung eine Menge initalizations tut, das eine Weile dauert, bevor die erste wirkliche Verbindungsversuch zu tun, können Sie einen neuen Thread starten früh, die einen Verbindungsversuch der Fall ist. Vielleicht wird reduzieren, dass die Gesamtwartezeit.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top