massacr
Messages postés233Date d'inscriptionvendredi 2 juillet 2004StatutMembreDernière intervention 4 janvier 2007
-
14 oct. 2005 à 18:43
massacr
Messages postés233Date d'inscriptionvendredi 2 juillet 2004StatutMembreDernière intervention 4 janvier 2007
-
19 oct. 2005 à 18:19
Bonjour
Je construit un site utilisant les XMLHTTPRequest.
Une zone de la page est rechargée lorsque on clique sur un bouton du menu.
Je voudrais afficher en bas du site une barre de chargement réaliste a
mesure que les données arrive. Je crois qu'on peut savoir où en est le
chargement de la page avec les XMLHTTPRequest.
massacr
Messages postés233Date d'inscriptionvendredi 2 juillet 2004StatutMembreDernière intervention 4 janvier 2007 16 oct. 2005 à 22:14
Euh, je comprend pas très bien ton try...
Je ne connais pas très bien le javascript (ce script me permet d'en
apprendre plus), et je ne connais pas cette syntaxe. Et je ne comprend
pas tout ce qui est marqué sur internet pour l'expliquer.
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 16 oct. 2005 à 23:10
:p
try sert pour gerer les erreurs on a aussi throw pour en declencher des manuels ... par exemple
try{
var result = 3/zero.toto; // ceci va declencher une erreur
alert(result) // Cette alerte ne sera pas executé ...
}
catch (ex)
{
alert('il y a eu une erreur');
// on peut meme allé plus lui en affichant ex.message etc...
}
donc en mettant le code potentiellement foireux dans un bloc try tu elimines les erreurs ... Tu pourrais aussi tester responseText avant de l'utiliser ce serait peut etre plus propre
if(xhr_obj.responseText)
{
//action à effectuer
}
mais je suis pas sur que ca fonctionne pour IE donc testes avant cette solution et sinon met ca dans un bloc try :)
massacr
Messages postés233Date d'inscriptionvendredi 2 juillet 2004StatutMembreDernière intervention 4 janvier 2007 18 oct. 2005 à 21:45
Il y a un double problème.
D'une part IE n'accepte pas la lecture du responseText avec qu'il ne
soit totalement chargé, ce qui empeche l'affichage de la barre de
chargement, et d'autre part IE n'accepte pas le chargement par
XMLHTTPRequest de fichiers lourds (1Mo dans l'exemple). Le script
marche avec des fichiers moins lourds, mais la barre ne s'affiche
toujours pas. J'ai donc enlevé les tests try et tout ca et je ne
mettrais pas de fichiers lourds. Je crois que c'est la seule solution,
à moins que le serveur n'envoie en plusieurs fois ????? Mais comment
faire ?
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 18 oct. 2005 à 21:51
si malgré tout ce que j'ai dit, ca fonctionne pas, il faut detecter IE avec l'userAgent :s et ne pas faire executer cette partie du script pour javascript.
Pour ce qui est de la limite en terme de download via ajax, je ne la connais pas, mais 1Mo par ajax t'es sur que c'est utile ? sinon decouper le fichier :s
J'espere qu'avec IE7 et l'implementation de l'objet XmlHttpRequest en natif ca va changer
massacr
Messages postés233Date d'inscriptionvendredi 2 juillet 2004StatutMembreDernière intervention 4 janvier 2007 19 oct. 2005 à 18:19
Non, rien de tout ca. IE ne plante pas parce qu'il
faut lire les données avant qu'elles soient terminées, mais parce que
le fichier était trop gros. Il doit y avoir une limite. Donc IE charge
bien les données, mais sans afficher la barre de chargement. Mais il ne
plante pas avec un plus petit fichier.