J'utilise un serveur Webphere. J'effectue un téléchargement de fichier via une servlet en utilisant les méthodes Apache FileUpload.Ajax demande lors d'un téléchargement de fichier prend beaucoup de temps à compléter
Je joins un écouteur à ce FileUpload qui met à jour un champ "pourcentage" indiquant quel pourcentage de la requête a été traité. La requête est dirigée vers un iframe (la cible du formulaire est un iframe) de sorte que la page qui a déclenché la requête n'ait pas à attendre que la réponse soit complète et par conséquent elle n'affiche pas une page vierge pour l'utilisateur. J'ajoute aussi une référence à l'écouteur de progression à la session.
Depuis la page JSP dès que j'exécute le submit sur le formulaire, après 1 seconde et ensuite chaque seconde je lance une requête ajax qui va à une servlet qui recherche le ProgressListener et répond avec le champ pourcentage. Le processus fonctionne bien, mais sur Websphere, cette requête Ajax peut parfois prendre jusqu'à 30 secondes! J'ai testé la même chose sur un serveur Tomcat simple et là la demande/réponse sort en une seconde.
Qu'est-ce qui pourrait ne pas fonctionner? Est-ce un paramètre de serveur?
Merci,
Modifier: Le code à l'intérieur du servlet qui obtient le pourcentage de la session court dès que la demande est faite. Le goulot d'étranglement semble être de remettre la demande au navigateur client.
le problème n'est pas avec le JSP en cours de compilation/précompilé. Je téléchargeais un fichier de 264 Mo qui générait plus d'un appel ajax, au deuxième appel ajax, toute compilation était déjà faite. –
Ainsi, utilisez firebug pour profiler votre appel ajax sur le navigateur, utilisez Fiddler pour surveiller le trafic et profiler le serveur pour voir quel est le ralentissement sur le serveur. Entre tous ces éléments, vous devriez trouver le problème. –