Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Prototype & Script.aculo.us
Prototype & Script.aculo.us Forum d'entraide sur les frameworks Prototype et Script.aculo.us
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/12/2006, 05h39   #1
Invité de passage
 
Homme SuperGP
Inscription : décembre 2006
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme SuperGP
Localisation : France

Informations forums :
Inscription : décembre 2006
Messages : 6
Points : 1
Points : 1
Par défaut [Prototype] Problème avec firefox

Bonjour à vous,

Je viens de débuter l'ajax. Ce concept est trés intérréssant.
Aprés la lecture de mon premier bouquin, je suis arrivé à pondre ce code là.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" dir="ltr" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<HEAD>
		<TITLE>GregProg'z Ajax Party : Test d'ajax en grandeur nature</TITLE>
		<script language="JavaScript">
 
		// variable à laquelle on affectera l'objet xhr
		var ajax = null;
 
		// variable nécessaire afin de contourner le but de firefox
		var status = "";
 
		// Initialisation du nécessaire XMLHttRequest
		function init()
		{
			if(window.XMLHttpRequest && !(window.ActiveXObject))
				{
					try {
 
						ajax = new XMLHttpRequest();
						ajax.overrideMimeType('text/xml');
					}
					catch (e) 
					{
						ajax = false;
					}
				}
				else if(window.ActiveXObject) 
				{ 
					var version = ['Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP']; 
 
					  for(var i=0; !ajax && i<version.length; i++)
    				  {
						try
							{
							   ajax = new ActiveXObject(version[i]);
							}
						catch(e)
							{
							    ajax = false;
							}
    				 }
				}
				else
				{
					alert('Votre navigateur ne supporte la technologie ajax. Veuillez vous mettre à jour !');
				}
		}
 
 
		// fonction appellé au changement du "on readystatechange"
		function process()
		{
			if (ajax.readyState == 4)
			{
				// debug => sous firefox, je ne vois rien. Sous ie .. parfait
				alert(ajax.status);
			}
 
		}
 
		// fonction appellé par mon petit formulaire
		function first() 
		{
				// initialisation de l'objet XHR
				init();		
 
				// on assigne la fonction appellé à chaque changement de state
				ajax.onreadystatechange = process;
 
				// débug => j'affiche le nom d'objet xhr. Je bossais avec firefox et ie
				alert(ajax);
 
				// on lance la requête !
				ajax.open('GET','info.txt',false);
				ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");  
 
				ajax.send(null);
 
		}		
 
		</script>
 
		<STYLE>
 
		#ajax {
		position:relative;
		width:100%;
		height: 200px;
		top:400px;
		background-color:white;
		color:red;
		font-size:70px;
		}
 
		.over3{
		overflow: scroll;
		}
 
 
		</STYLE>
 
 
	</HEAD>
 
<BODY>
 
<form method="POST" name="formulaire">
<input type="text" name="url">
<input type="submit" onclick="first()">
</form>
 
<div id="ajax" class="over3"></div>
 
</BODY>
</html>

Voila la page tel qu'elle est enregistrée sur mon serveur.

Tout d'abord, j'ai un problème au niveau de l'accés d'ajax.status avec firefox. Aprés avoir navigué sur le forum, j'ai trouvé la réponse à mon problème. Malgré cela, avec firefox, il m'est pas possible de voir le contenu de mon fichier info.txt (alert("ajax.responseText") => me donne un msgbox vide) ! Sous i.e, tout fonctionne bien
Ce qui me chagrine est qu'avec d'autres scripts, tout fonctionne sous firefox malgré le fait que les lignes codes soient un peu prés semblables. Trés trés bizarre !


De plus, sous i.e et firefox .. ma page entière se recharge . Je le constate avec mon inputbox qui revient à 0.
Je ne comprends pas pourquoi étant donné que je fais une requête asynchrone alors qu'avec les autres scripts exemples, la page entière ne se recharge pas.

En tout cas, je remercie les personnes qui prendront la peine de lire ce message et d'essayer de m'apporter une réponse. J'ai cogité une journée dessus .. !
il est 5h29 ....

à trés bientôt.
supergp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2006, 17h08   #2
Invité de passage
 
Homme SuperGP
Inscription : décembre 2006
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme SuperGP
Localisation : France

Informations forums :
Inscription : décembre 2006
Messages : 6
Points : 1
Points : 1
Tiens, c'est bizarre qu'il y ait personne pour m'apporter un élément de réponse !

Euh, je tiens à préciser que je travaille avec firefox 1.5.0.8 !

En espèrant que quelqu'un puisse m'aider, à trés bientôt !
supergp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2006, 20h25   #3
Membre expérimenté
 
Avatar de FMaz
 
Inscription : mars 2005
Messages : 648
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 648
Points : 527
Points : 527
Je n'ai pas réellement de solution à donner, car dans mon cas, j'utilise la librairie PROTOTYPE, disponible gratuitement.

Elle permet, entre-autre, de faire des requêtes AJAX plus simplement, et s'assure pour nous que ces requêtes passent bien sous tout les navigateurs courrant.

Il s'agit d'un fichier .js de 40Ko (pour la totalité, mais tu peux le synder pour garder uniquement la partie AJAX). Comme c'est un fichier externe, il sera mis en cache, contrairement au code que tu semble nous présenter.



Bon, bref, je fais mon vendeur, mais rien ne t'empêche d'aller jeter un coup d'oeil sur comment 'eux' ils font leurs requêtes...

Site officiel:
http://prototype.conio.net/

Documentations:
http://www.sergiopereira.com/articles/prototype.js.html
FMaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2006, 20h58   #4
Invité de passage
 
Homme SuperGP
Inscription : décembre 2006
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme SuperGP
Localisation : France

Informations forums :
Inscription : décembre 2006
Messages : 6
Points : 1
Points : 1
Merci ...

Déja c'est déja un début de solution. Je vais pouvoir voir du code qui fonctionne et peut être, dans le meilleur des cas, débogué le mien.

Dans un premier temps, j'aimerai pouvoir tout coder moi-même afin d'avoir la souplesse qui en découle (bien sûr, je suis conscient de la masse de travail. j'aime coder ).

Encore merci. Je fini mon bouquin et je me jette dessus. .

A trés bientôt.
supergp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2006, 21h14   #5
Membre expérimenté
 
Avatar de FMaz
 
Inscription : mars 2005
Messages : 648
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 648
Points : 527
Points : 527
L'avantage avec prototype, c'est que justement, ca me viend pas "briser la souplesse".

Contrairement à des trucs tel que Ruby on rail, qui font tout pour toi, mais qui te permettent pas tellemetn de personnaliser à fond, Prototype fait rien tout seul, il ne fait que ... disons "racourcir les lignes de code communes"

document.getElementById("truc") => $("truc")

etc..
FMaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2006, 21h30   #6
Invité de passage
 
Homme SuperGP
Inscription : décembre 2006
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme SuperGP
Localisation : France

Informations forums :
Inscription : décembre 2006
Messages : 6
Points : 1
Points : 1
Vous semblez être conquis par prototype !

Je vais tout d'abord regarder le code et faire fonctionner le mien. Et sans doute, adopter prototype dans un second temps.
Mais avant, je tiens à coder à la dure quitte à avoir un long code, afin de bien comprendre.

merci encore.
supergp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2006, 22h35   #7
Membre expérimenté
 
Avatar de FMaz
 
Inscription : mars 2005
Messages : 648
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 648
Points : 527
Points : 527
Citation:
Envoyé par supergp
Mais avant, je tiens à coder à la dure quitte à avoir un long code, afin de bien comprendre.
et c'est tout à votre honneur
FMaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2006, 22h54   #8
Invité de passage
 
Homme SuperGP
Inscription : décembre 2006
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme SuperGP
Localisation : France

Informations forums :
Inscription : décembre 2006
Messages : 6
Points : 1
Points : 1
Citation:
Envoyé par FMaz
et c'est tout à votre honneur
Je m'y attendais ... !

De plus, j'ai un petit problème.
Là, j'ai lu les articles de Sergio Pereira. Ils sont efficaces !

J'utilise prototype. Tout se passe bien sous firefox et I.E.

Par contre, ma page est toujours recharger malgré le fait que je fasse BIEN une requête asynchrone ... ! Là, j'aimerai bien qu'on m'éclaire .. !

Tout, en cliquant, la requête s'effectue et disparaît automatiquement suite à un rechargement de la page. Extrêmement, rageant .. j'aimerai bien avancer.

merci.
supergp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2006, 22h58   #9
Membre expérimenté
 
Avatar de FMaz
 
Inscription : mars 2005
Messages : 648
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 648
Points : 527
Points : 527
Hum, la par contre ca va me prendre du concret pour t'aider...
Une URL à me donner ?

(ou un extrait de code)

EDIT:

Finalement non, j'ai vu le problème dans le code ci-haut:
<form method="POST" name="formulaire">
<input type="text" name="url">
<input type="submit" onclick="first()">
</form>

type="button" , le formulaire ne s'envera pas.
FMaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h43.


 
 
 
 
Partenaires

Hébergement Web