Est-ce que ton traitement (ton appel de l'API) est bloquant ?
Non, car c'est appelé dans une Iframe, et ça ne retourne rien, donc ça ne perturbe pas la page principale.
Je veux dire est-ce que XLS.click(); bloque le navigateur ou bien rend la main aussitôt à l'utilisateur ?
XLS.Click ne sert qu'à ouvrir la fenêtre de télechargement du fichier généré, rien de plus :
1 2
| <!-- LIEN PASSIF POUR TELECHERGER LE FICHIER -->
<A name="XLS" href="/export_hotel.csv" type="application/octet-stream" target="_blank"></A> |
C'est
document.Frame_Export.location.href='/script/export.dll/Export_Hotel';
qui génére le fichier.
Et pendant son exécution, le bouton du formulaire reste enfoncé, comme bloqué, mais je peux interrompre le traitement en cliquant sur un autre lien.
Est-ce qu'il retourne une indication au navigateur lorsque le traitement est fini ?
non.
J'ai repris ton exemple, j'ai juste réadapté la fonction exec_traitement à mes besoins, comme suit :
1 2 3 4 5 6 7 8 9 10
|
function exec_traitement()
{
document.Frame_Export.location.href='/script/sogeho.dll/Export_Hotel';
// informe l'utilisateur
document.getElementById("btn_ok").disabled = false;
document.getElementById("resultat").innerHTML = "Vos données sont prêtes Maître !";
XLS.click();
} |
Les messages s'affichent bien, par contre j'ai le même problème que lorsque j'avais essayé de mettre le XLS.click() dans un SetTimeout, c.a.d. qu'au lieu d'ouvrir la fenêtre de télechargement, le popup-blocker d'IE se déclenche et empêche l'ouverture automatique de la fenêtre. Donc pas bon.
C'est dingue, mon exemple ouvre proprement le download, mais n'affiche pas les messages, et le tient affiche bien les messages mais pas le download... alors qu'en gros, on fait la même chose !
Partager