Comment puis-je accéder à des paramètres d'URL en Javascript chargé de manière asynchrone par require.js?

StackOverflow https://stackoverflow.com/questions/8363646

Question

J'utilise RequireJS pour charger les modules dans mon application. Je dois passer un paramètre d'URL que je reçois à index.php au module principal. Il y a quelques façons que je peux voir à le faire, mais je préférerais que la seule chose que l'indice était encore essentiellement ceci:

<script type="text/javascript" data-main="scripts/main" src ="scripts/require-jquery.js"></script>

parce que RequireJS dit qu'il vaut mieux pour l'optimisation. Ma solution actuelle est de mettre l'origine nécessite l'appel dans le fichier d'index et utiliser le paramètre d'URL à partir de là. Est-il possible de mieux?

Pour référence, j'utilise PHP sur le côté serveur, si cela aide à tous.

Était-ce utile?

La solution

Pour passer le paramètre de GET à votre script que vous avez trois options:

Utilisation _SESSION $ pour stocker la valeur et modifier dynamiquement le fichier principal js. Cela se traduira par une surcharge ridiculement grand et ajouter beaucoup de complicité inutiles (plus complicité => plus de bugs)

Ajouter ce code http://www.onlineaspect.com/2009/06/10/reading-get-variables-with-javascript/ à votre module principal retrive le paramètre via javscript.

Générer un petit script java avec PHP (en utilisant $ _GET) pour définir la valeur. Ce qui est théoriquement plus rapide que les autres options.

Il ne devrait pas être une différence significative de la vitesse entre l'option 2 et 3 donc aller chercher ce qui correspond à vos besoins.

Si le module principal est un composant tiers qui est souvent mis à jour je choisirais la troisième option, car alors vous ne devez pas changer le module principal chaque fois que vous tirez une nouvelle version.

Si vous souhaitez définir une valeur par défaut en fonction de l'utilisateur, vous devez coller avec l'option 3 pour avoir un accès plus facile à vous les paramètres de base de données et l'utilisateur.

J'espère que cette aide.

EDIT: Si votre module principal ne nécessite pas le paramètre avant que tous les scripts sont chargés, vous pouvez utiliser le script de l'option 2 dans un module supplémentaire qui définit la valeur dans votre module principal. Cela résoudrait la question de la mise à jour, aussi.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top