Supposons, par exemple, un document xHTML comme ci-dessous:les meilleures pratiques dans l'intégration actions JavaScript w/DOM
<html>
<head>
</head>
<body>
<div id="wrapper">
<div id="sidebar"></div>
<div id="content"></div>
</div>
</body>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="./application.js"></script>
</html>
Nous allons effectue une requête GET AJAX à un script PHP qui interroger une base de données et renvoie une réponse pour remplir un élément TABLE
qui sera formaté en tant que grille triable via JavaScript.
De plus, nous voulons que tous nos JavaScript dans un seul fichier peuvent facilement être inclus comme indiqué ci-dessus.
Les options:
que le script PHP retourner l'élément
TABLE
peuplé de toutes les données. Utilisez la fonctionlive()
de jQuery pour rechercher activement les nouveaux élémentsTABLE
dans le DOM et appliquer la fonctionnalité de grille triable lorsqu'il les découvre . Cette méthode nous permet de manipuler le contenu retrouvé à partir de la requête AJAX en PHP et renvoie une table sémantique complétée au document parent.Insérez l'élément
TABLE
dans le script répertorié ci-dessus, mais en laissant son contenu vide. jQuery appliquerait immédiatement la fonctionnalité de grille triable une fois que le document serait prêt, bien qu'aucun contenu n'existerait encore. La requête GET retournera alors une réponse JSON qui peuplerait la base de données.
D'autres avis/bonnes pratiques/cas d'utilisation que vous pouvez partager pour ce genre de chose? Je ne discuterai un TABLE
ici, mais nous avons discuté de la question avec un certain nombre de choses: visionneuses, des menus déroulants, etc.
Actuellement, nous ne sommes pas d'utiliser la fonction live()
jQuery, ni ce que les éléments DOM existent dans le document parent. Nous devons donc placer de petits blocs de Javascript en haut de chacune de nos vues individuelles. Bien que bâclée, cela nous a permis de charger seulement la fonctionnalité quand elle est nécessaire, mais il est évidemment difficile à maintenir.
Merci pour la réponse Kyle - sur la base des réponses ici nous avons choisi d'inclure la balise table vide dans la ressource parent, nous utilisons ensuite jQuery pour soumettre une requête getJSON lorsque plusieurs liens sont cliqués, et en utilisant cette réponse pour modifier la grille extJS. –