Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
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 03/05/2011, 23h41   #1
Invité de passage
 
Inscription : novembre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 8
Points : 3
Points : 3
Par défaut attachEvent après appendChild

Bonjour ou bonsoir à tous,

Pour mon site web perso, j'effectue quelques optimisations de vitesse de chargement de page mais j'ai un problème qui coince.

Pas de problème sous Firefox, Voici le bout de code pour IE :

Code :
window.attachEvent("onload",downloadJSAtOnload);
et dans la fonction downloadJSAtOnload :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
function downloadJSAtOnload(){
	var element = document.createElement("script");
	element.src="fonctions_js.js";
	document.body.appendChild(element);
	/*
		partie autres navigateurs
	*/
	else if(element.attachEvent)
	{
		element.attachEvent('onLoad',function() {
			try{
				var element2=document.createElement("script");
				element2.src="fonctions_js_bis.js";
				document.body.appendChild(element2);
			}
			catch ( err )
			{
				alert("preprod erreur attachEvent");
			}
		}
	}
}
le premier js est générique à toutes les pages. Le deuxième est spécifique pour une page.

Des fonctions de fonctions_js.js sont nécessaires pour fonctions_js_bis.js donc je dois attendre la fin du chargement du fichier pour pouvoir inclure le deuxième.

Il n'y a pas d'erreur javascript de détecté et des alert un peu partout m'ont montré que c'est juste l'événement qui n'est jamais déclenché.

J'ai cherché sur la toile mais rien trouvé pour l'instant, quelqu'un aurait une piste ?

Merci d'avance
Alhymen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 08h07   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 806
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 806
Points : 35 803
Points : 35 803
IE n'accepte pas l'événement onload pour une balise script. Il faut passer par onreadystatechange.
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 08h34   #3
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 074
Points : 4 074
Par curiosité : qu'est-ce qui rend nécessaire (ou souhaitable) d'inclure dynamiquement tes scripts JS plutot que de les lier à la page directement ?
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 19h49   #4
Invité de passage
 
Inscription : novembre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 8
Points : 3
Points : 3
Citation:
Envoyé par Bovino Voir le message
IE n'accepte pas l'événement onload pour une balise script. Il faut passer par onreadystatechange.
merci ça marche nickel (par contre il faut rajouter
Code :
element.src="fonctions_design_bis.js";
juste après l'attache de mon événement sur l'élément)

Citation:
Envoyé par RomainVALERI Voir le message
Par curiosité : qu'est-ce qui rend nécessaire (ou souhaitable) d'inclure dynamiquement tes scripts JS plutot que de les lier à la page directement ?
Dans un premier temps, mon serveur fait en sorte que les clients ne chargent qu'une fois le fichier pour une durée déterminée (1 semaine, temps conseillé par google) afin d'alléger le serveur en cas de rechargement de la page.

Ensuite plutôt que de mettre les fichiers en dur et qu'ils plombent le temps de chargement de la page, je les met en différé voir lien : http://code.google.com/intl/fr/speed...DeferLoadingJS) ainsi en apparence, le temps de chargement du site parait plus rapide (en apparence seulement mais ça donne l'impression aux internautes d'être sur un site réactif).

Tout cela sert aussi au référencement du site web vu que google prend désormais en compte le temps de chargement dans ses algos.
Alhymen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 23h05   #5
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 074
Points : 4 074
Citation:
Envoyé par Alhymen Voir le message
merci ça marche nickel (par contre il faut rajouter
Code :
element.src="fonctions_design_bis.js";
juste après l'attache de mon événement sur l'élément)


Dans un premier temps, mon serveur fait en sorte que les clients ne chargent qu'une fois le fichier pour une durée déterminée (1 semaine, temps conseillé par google) afin d'alléger le serveur en cas de rechargement de la page.

Ensuite plutôt que de mettre les fichiers en dur et qu'ils plombent le temps de chargement de la page, je les met en différé voir lien : http://code.google.com/intl/fr/speed...DeferLoadingJS) ainsi en apparence, le temps de chargement du site parait plus rapide (en apparence seulement mais ça donne l'impression aux internautes d'être sur un site réactif).

Tout cela sert aussi au référencement du site web vu que google prend désormais en compte le temps de chargement dans ses algos.
Merci pour ta réponse, j'avoue que le principe est séduisant
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h45.


 
 
 
 
Partenaires

Hébergement Web