2010-06-05 8 views
0

pour initialiser une grille chargée javascript, j'ai besoin de passer une liste de valeurs de controller/gsp. Puisque le javascript est activé une fois que la page est rendue/chargée, il n'y a peut-être pas de moyen direct de le faire. 2 possibilités 1. effectuez un appel ajax et récupérez la liste des valeurs du serveur 2. stockez la liste en html en tant qu'élément caché et lisez-la depuis javascript.Passer la carte de paramètres (liste de valeurs) à JQuery

L'option 2 semble mieux car elle évite quelques appels au serveur. Alors, quel contrôle dois-je utiliser pour une liste de valeurs? Tout extrait de code jQuery pour le relire dans un tableau/une liste.

merci d'avance.

Répondre

1

Cela dépend de la taille de ces données. C'est assez petit, vous pouvez l'intégrer dans la page. Par exemple, pour remplir un calendrier des événements, je quelque chose comme:

<div id="calendar" data-events="[/* event list */]"></div>
(l'attribut data-events contenait un tableau JavaScript d'objets d'événements au format JSON)

Cependant, si vous parlez d'une énorme quantité de données, le charger (éventuellement en morceaux) de manière asynchrone après le chargement de la page (ou lorsque le document est prêt) pourrait augmenter la performance de votre application et la rendre plus interactive (ie je ne veux pas attendre et charger cette donnée si je suis va faire est de s'en aller)

Est-ce que cela répond à votre question?

+0

vous avez raison dans le raisonnement, et j'ai seulement très peu de données (5 chaînes pour un menu déroulant). merci pour votre hep – bsr

+0

maintenant je dois comprendre, il est en effet facile à mettre en œuvre dans jQuery (analyse des données de l'élément), je vais mettre à jour une fois que je le fais. – bsr

+0

$ .parseJSON ($ ('# grille'). Attr ('liste de données')); – Oblio

1

Vous pouvez directement écrire du JavaScript à partir du serveur. Je ne sais pas Grails, mais voici un exemple très simple en php:

<script type="text/javascript"> 
    var someVar = "<?php echo $someServerVar;?>"; 
</script> 

Bien sûr, cet exemple est très simple, mais vous voyez l'idée. Et la plupart des langages auront une sorte de fonction qui échappe aux chaînes JavaScript (fondamentalement tournez " en \" et de nouvelles lignes en \n).

Si vous mettez un script comme celui-ci en haut de votre <head>, ces variables seront accessibles depuis tous les autres scripts de la page.

Questions connexes