Question

Je maintiens une application J2ME où je trouve une requête http http://www.google.com lors de l'initialisation de l'application. J'ai demandé au développeur pourquoi il y a une demande à Google. Il a dit que cette façon, les autres demandes que l'application marques serait plus rapide.

Je retiré cette demande à google.com et les autres demandes ont plus lentes.

Quelqu'un peut-il expliquer pourquoi cela est arrivé? Comment puis-je faire d'autre demande plus rapidement, sans faire des demandes précédentes?

EDIT:

Faire demande à Google dans l'initialisation:

  • Première demande (après l'initialisation) = 20sec
  • Répéter la première requête = 5sec

Sans faire la demande dans l'initialisation:

  • Première requête = 40sec
  • Répéter la première requête = 5sec
Était-ce utile?

La solution

Sur un appareil mobile initiant la connexion Web prendra la JVM quelque temps et bien souvent laisser la connexion ouverte pendant toute la durée du MIDlet en cours d'exécution (la plupart des connexions modernes sont facturés par octet - Edge, GPRS, WiFi). Donc, si une connexion est faite sur startApp, vous trouverez peut-être la connexion reste ouverte et toute autre communication ne aurez pas besoin d'ouvrir une connexion, envoyer uniquement des données. Si rapide et plus fiable!

Ce comportement est plate-forme spécifique, MIDP2 ne prévoit pas que cela soit vrai (si Nokias peuvent différer de Samsungs etc).

Connexion à 127.0.0.1 ne sera probablement pas tromper la machine virtuelle Java, qui peut décider qu'il n'a pas besoin d'une connexion GPRS ouverte pour cela. Encore une fois la plate-forme spécifique.

James

Autres conseils

... peut-être la première demande initialise la couche réseau (*) dans le dispositif et peut-être aussi le jvm.

Je suis sûr que cela fonctionne avec www.microsoft.com trop: -)

*) Je soupçonne que cela dépend de l'appareil que vous utilisez sur. Je ne sais pas ce qui se passe, mais il pourrait y avoir quoi que ce soit. Par exemple:. A partir du dispositif radio, la mise en place d'une session avec l'opérateur réseau, le chargement et le début des cours dans le jvm

Essayez de vous connecter à 127.0.0.1 au lieu de google et voir si cela fait des tentatives plus tard plus rapide.

Si la demande est en train de faire beaucoup de initalizations qui prend un certain temps avant de faire la première tentative de connexion réelle, vous pouvez commencer un nouveau thread début qui fait une tentative de connexion. Peut-être que cela réduira le temps d'attente total.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top