11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
Jusqu'à maintenant n et depuis plusieurs années !, je fais appel à jquery de cette manière:

<script>
		if (typeof jQuery == "undefined") {	
			document.write('<script src="js/jquery-3.5.1.js"><\/script>');
		}
	</script>

Je me posais donc la question si c'était toujours la façon la plus correcte?
Je ne souhaite pas utiliser la solution CDN
J'ai vu que certains utilisaient :

<script src="//ajax.googleapis.com/ [...] jquery.js"></script>
<script> window.jQuery || document.write('<script src="js/jquery.js"><\/script>') </script>

ou encore

<script src="//ajax.googleapis.com/ [...] jquery.js"></script>
<script> if ( typeof jQuery == "undefined" ) document.write('<script src="js/jquery.js"><\/script>') </script>
Modérateur
Bonjour,

Et pourquoi pas simplement :
<script src="js/jquery-3.5.1.js"></script>


Note : il semble qu'on en soit à la version 3.6.0 de jquery.

Amicalement
Modifié par parsimonhi (12 Dec 2021 - 21:38)
J'utilise bien jquery.3.6.
Mais là j'ai copié un bout d'une ancienne page non mise à jour.

Pourquoi ? Tout simplement parce qu'il était dit sur le forum que c'était une manière pour éviter de charger deux fois jquery.
... tout en bénéficiant de l'avantage d'un CDN si possible.

Lorsque j'utilisais encore jQuery j'utilisais la deuxième méthode. Mais les trois méthodes produisent le même résultat : recherche de la version CDN, puis repli sur la solution auto-hebergée si test échoué.
Modifié par Olivier C (15 Dec 2021 - 20:29)
Modérateur
Bonjour,

cpalo a écrit :
Pourquoi ? Tout simplement parce qu'il était dit sur le forum que c'était une manière pour éviter de charger deux fois jquery.

Hum ! Tu peux faire le test pendant le développement (par exemple, tu mets quelque chose dans la log lorsque tu fais ton test pour savoir si jquery a déjà été chargé ou pas par un obscur module "dont tu ne peux pas te passer"). Faire le test à chaque chargement de page, et en plus faire un document.write() ensuite qui lui-même contient une balise script, c'est juste hérétique selon moi. Et enfin, ton test ne garantit pas du tout que tu aies la dernière version (ou la version que tu souhaites) de jquery. Tu risques de te retrouver avec une vieille version chargée avant dans ta page.

Bref, je ne peux que déconseiller ce genre de pratique.

Le mieux est quand même de charger clairement ton jquery à toi aussitôt que possible dans ta page, et éventuellement d'empêcher le chargement des autres jquery de ta page s'il y en a qui trainent (en commentant par exemple les lignes où ça se produit si tu veux garder une trace de ce qu'il y avait).

Eventuellement, si tu produis un code qui est destiné à servir à d'autres personnes, et que tu ne sais pas a priori ce qu'ils mettent dans leurs pages, ça pourrait se justifier. Mais bon, ça reste quand même assez "dirty".

Amicalement,
Modifié par parsimonhi (15 Dec 2021 - 23:48)