Sélectionner une page


Si vous travaillez sur un site Web ou une application Web qui a d’autres dépendances, que ce soit pour le framework frontal (par exemple Bootstrap et Foundation) ou à partir de la fondation du site Web (par exemple Rails ou WordPress), il existe l’option Avoir le vôtre Les sources JavaScript peuvent entraîner:

Erreur de référence [variable] n’est pas défini.

Dans certains cas, cela peut simplement faire référence à une variable qui n’est pas définie (peut-être la plus populaire est jQuery $ La fonction a été déréférencée et vous essayez de l’utiliser $) et a juste besoin d’une définition.

Cependant, dans d’autres cas, cela peut ne pas être aussi facile à faire.

« L’erreur de référence JavaScript n’est pas définie »

Comme déjà mentionné, il sont Moments où le problème est résolu en définissant simplement une variable. Par exemple, dans l’exemple ci-dessus avec jQuery, nous pouvons passer un appel téléphonique pas de conflit () pour restaurer la variable.

Anciennes références de $ sont enregistrés lors de l’initialisation de jQuery; noConflict() restaurez-le simplement.

Mais c’est au-delà du but de cet article.

Le truc est juste de restaurer une variable ou de lui donner une définition surtout S’il s’agit d’une dépendance tierce, ce n’est pas si simple.

Au lieu de cela, le problème peut généralement être résolu de deux manières.

1. Chargez les bibliothèques dans le bon ordre

Probablement la raison la plus populaire de voir un ReferenceError a à voir avec le fait que notre script se réfère à une variable qui n’a pas encore été définie.

Généralement, pour résoudre ce problème, un problème est que les fichiers ne se chargent pas dans le bon ordre. Cela est particulièrement vrai si l’erreur est générée dans le contexte d’un site ou d’une application Web qui a ses propres bibliothèques et que les scripts sont susceptibles de se charger plus tard que les vôtres.

Cela signifie que soit les scripts sont placés après ça votre dans le head Elément de la page ou ils sont chargés dans le pied de page de la page. Dans ce cas, la plupart des frameworks et applications fournissent une API pour définir l’ordre dans lequel les fichiers sont chargés, définir les dépendances et définir où sur la page ils sont chargés.

2. Utilisez des valeurs non définies

Un autre exemple, un peu plus compliqué, consiste à appeler une fonction avec un paramètre facultatif, puis à vérifier que le L’argument est défini lorsque la fonction est appelée.

Par exemple, disons que nous sait que la fonction concernée est appelée à deux moments du cycle de vie de la page:

  1. Lorsque le DOM est prêt et probablement lorsqu’aucune variable dépendante n’est définie
  2. Lorsque la page est chargée et prête et probablement lorsqu’une variable dépendante est déjà définie.

Pour cela, nous pouvons utiliser les définitions de variables en JavaScript en faisant quelque chose comme ça::

Notez cependant que c’est nous Pas Vérifiez que la variable est true ou alors false mais si la variable est réellement définie.

Dans cet esprit, nous pouvons alors définir une condition pour faire tout ce qui doit être fait, que la variable soit présente ou non.

Enfin, vous appelleriez la fonction suivante:

  • Supposons que vous appeliez la fonction Devant La valeur est définie comme « acmeReferenceError (); ».
  • Lorsque vous appelez la fonction après ça Avec la valeur définie, vous appelleriez « acmeReferenceError (foo) », où « foo » est la valeur définie.

Très probablement, le premier cas sera appelé lorsque le DOM sera chargé mais que la page n’est pas prête, et le second cas sera appelé lorsque la page sera complètement chargée et prête.

Le premier est optimal, le second moins

Quand il s’agit de travailler avec JavaScript, c’est toujours Une meilleure idée d’avoir vos scripts chargés dans l’ordre dépendant. Néanmoins, je recommande toujours la première option comme la bonne, la plus optimale.

Cela ne fonctionne pas seulement lors de la commande de scripts devrait fonctionne mais nécessite moins de documentation et de code JavaScript car l’ordre des scripts au niveau de l’application montre exactement comment les choses fonctionnent.

Cependant là pouvez Soyez là quelques fois où ce n’est pas possible ou quelque chose dans la région ne vous donne pas le contrôle dont vous avez besoin. Si tel est le cas, la deuxième option est une solution viable.

Si vous suivez cette voie, je vous recommande fortement d’ajouter des commentaires de code au niveau fonctionnel très clairs pour expliquer que le paramètre facultatif est utilisé, pourquoi il est là et quels aspects de l’application le nécessitent.



Source link

Recent Posts