PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → httpRequête lenteur et expérience utilisateur
httpRequête lenteur et expérience utilisateur
Débuté par Frédéric, 30 nov. 2018 13:02 - Aucune réponse
Posté le 30 novembre 2018 - 13:02
Bonjour,

Je cherche à améliorer l'expérience utilisateur d'une application mobile Android sous Windev mobile 23.
Ce qui est irritant c'est que certaines fenêtres ne s'affichent pas instantanément.

Exemple :
Une fenêtre avec 4 champs
Elle appelle un webservices REST qui renvoi un JSON de 300 caractères.
En 4G+ c'est rapide mais pas instantané
En H+ là ça prend presque 2 secondes.

Si je compare avec d'autres apps native sur mon téléphone, je me rends compte que ces apps reçoivent et affiche les données nettement plus rapidement.

1) Je place l'appel du webservice en fin d'initialisation de la fenêtre
=> Ça limite un peu la frustration car on voit une action après le clic mais il reste un temps d'affichage dû à la requête

2) Je vérifie le serveur qui renvoi bien les données instantanément avec gzip activé OK
Je teste le WS avec des outils et j'obtiens entre 150 et 200 milisecondes donc le problème ne vient pas de là

4) Du coup j'en viens à la conclusion que la fonction HTTPrequete() créé ce problème de lenteur
D'ailleurs gzip ne semble pas pris en compte
cHTTPrequete.Entête["Accept-Encoding"] = "gzip,deflate"



4) Ma question est donc
Avez vous trouvé des solutions à ce problème de lenteur de httpRequête ?
Recoder un équivalent simplifié de httpRequête en natif java pour exploiter gzip ?

Merci


PS pour info après plusieurs modifications la procédure globale que j'utilise :

Procedure httpvariant(sUrl)

vRes est un Variant
cHTTPrequete est un httpRequête
cHTTPreponse est un httpRéponse

cHTTPrequete.AgentUtilisateur = "Mozilla/5.0 (Windows; U; Windows NT 5.1; de-AT; rv:1.4"
cHTTPrequete.ContentType = "text/json"
cHTTPrequete.Entête["Accept-Encoding"] = "gzip,deflate"
cHTTPrequete.Entête["Connection"] = "Keep-Alive"
cHTTPrequete.DuréeNonRéponse = 5s
cHTTPrequete.TimeOutConnexion = 5s
cHTTPrequete.URL = sUrl

cHTTPreponse = HTTPEnvoie(cHTTPrequete)

SI ErreurDétectée ALORS
Erreur(ErreurInfo(errComplet))
SINON
bufJSON est un Buffer = cHTTPreponse.Contenu
vRes = JSONVersVariant(bufJSON)
FIN

RENVOYER vRes