Maison >interface Web >js tutoriel >Construisez un arbre ajax avec yui
J'ai omis les URL de l'exemple de code ci-dessus car ils sont extrêmement longs, et il est préférable de construire votre propre URL avec les fonctionnalités dont vous avez besoin. L'avantage est que vous pouvez facilement inclure les autres composants YUI dont vous avez besoin sans ajouter de feuilles de style ou de fichiers de script supplémentaires. Retournez simplement à l'application de configuration et générez un nouvel ensemble de liens!
Copiez simplement l'extrait HTML que vous recevez dans la tête de votre document, et vous êtes prêt à commencer par YUI.
La première étape consiste à créer une fonction qui construira le widget TreeView
La première étape consiste à créer une fonction qui construira l'objet Widget TreeView. Initialement, il ne contiendra qu'un seul nœud de texte contenant l'étiquette «Apple». Lorsque l'utilisateur clique sur ce nœud, notre code créera un sous-arbre en dessous, en le remplissant avec des synonymes pour «Apple».
Dans le fragment de code suivant, remarquez d'abord les lignes sans gras. Nous créons l'arbre avec le constructeur de TreeView, dont l'argument est l'élément HTML dans lequel nous allons construire l'arbre (ajaxtreediv). L'appel Getroot reçoit une référence à la racine de l'arbre et la transmet au constructeur du TextNode. Donner la racine au nouveau nœud relie l'arbre; Il crée un lien vers le parent. Nous faisons le dessin réel de l'arbre avec sa méthode de rendu.
Nous commençons par déclarer certaines variables. OBNODE sera l'objet Node, Obajaxtree sera l'objet Tree, et Treeroot sera utilisé pour conserver une référence au nœud racine de l'arbre.
Nous appelons le constructeur de TreeView (Yahoo.Widget.treeView), passant dans l'élément HTML dans lequel nous voulons construire l'arbre (Ajaxtreediv). attention. La méthode SetDynamiCload indique à l'arbre que nous voulons savoir quand l'utilisateur clique sur l'un de ses nœuds pour l'étendre, et il indique à l'arbre quelle fonction appelle (MakeMoReNodes, que nous écrivons sous peu) lorsque ces clics se produisent:
function buildAjaxTree() { var obNode; var obAjaxTree; var treeRoot; obAjaxTree = new YAHOO.widget.TreeView ("AjaxTreeDiv"); <em>obAjaxTree.setDynamicLoad(makeMoreNodes,0);</em> treeRoot = obAjaxTree.getRoot(); obNode = new YAHOO.widget.TextNode("apple", treeRoot, false); obAjaxTree.render();}
Après cette option, nous stockons une référence à la racine de l'arbre dans TreeRoot et créons un nouveau texte. Le passage de la variable Treeroot au constructeur TextNode relie le nœud avec l'arborescence. Enfin, nous appelons la méthode de rendu pour afficher l'arborescence.
Remarquez que tout ce code se trouve à l'intérieur d'une fonction, que nous avons appelée BuilaJaxtree. Voici l'instruction qui l'appellera:
YAHOO.util.Event.onDOMReady(buildAjaxTree);
Il s'agit de la première instruction de notre code qui sera exécutée. La méthode OnDomReady appelle BuilaJaxtree lorsque la page HTML est entièrement chargée. L'exécution de notre script avant ce point inviterait les erreurs.
Maintenant, parcourons la fonction MakeMoRenodes. Tout d'abord, reportez-vous à l'aperçu de l'objet de rappel décrit au début de cet article. N'oubliez pas que notre appel Ajax (AsyncRequest) a besoin d'un objet de rappel avec des méthodes de succès et d'échec, afin qu'il puisse appeler l'une de ces méthodes après sa mission de collecte de données. La plupart du code à l'intérieur de MakeMoRenodes fonctionne pour créer cet objet de rappel.
Voici l'objet de rappel que nous utiliserons. Comparez-le avec l'objet de rappel générique que nous avons vu lors de l'introduction d'AsynCrequest:
function buildAjaxTree() { var obNode; var obAjaxTree; var treeRoot; obAjaxTree = new YAHOO.widget.TreeView ("AjaxTreeDiv"); <em>obAjaxTree.setDynamicLoad(makeMoreNodes,0);</em> treeRoot = obAjaxTree.getRoot(); obNode = new YAHOO.widget.TextNode("apple", treeRoot, false); obAjaxTree.render();}
Les propriétés de succès et de défaillance se réfèrent aux méthodes qu'AsynCrequest appellera après qu'il interroge notre script de thésaurus côté serveur. Nous appellerons la fonction FoundSynonymes si le script PHP réussit à tirer certains synonymes, ou le rappel FoundNosynonymes si le script PHP échoue dans sa recherche. Notez que la propriété Timeout est un facteur dans ce cas de défaillance: AsynCrequest signale un échec s'il ne reçoit pas les résultats en sept secondes (7 000 millisecondes) de l'appel.
La méthode AsynCrequest exige que la propriété d'argument fasse partie de l'objet de rappel. N'oubliez pas que la propriété d'argument contient les données nécessaires par les fonctions de succès et de défaillance appelées par AsyncRequest. Pour notre exemple, avant l'appel AJAX, nous stockons le nœud cliqué par l'utilisateur dans l'argument. La méthode de réussite a besoin de ce nœud pour deux raisons. Premièrement, pour construire le nouveau synonyme de sous-arbre: un nœud racine est nécessaire pour cela, et le nœud cliqué par l'utilisateur sera cette racine. Deuxièmement, pour dire au nœud que nous avons fini de l'utiliser, via sa méthode LoadComplete. Si nous n'avons pas tiré cette méthode, l'arbre gèle, car l'un de ses nœuds ne saurait pas quand reprendre l'écoute des clics de la souris de l'utilisateur.
La méthode de défaillance doit avoir accès au nœud cliqué pour la même raison. Même si la méthode de défaillance n'ajoute aucun nœud à l'arborescence, le nœud sur lequel l'utilisateur a cliqué a encore besoin de sa méthode de chargement, afin qu'il puisse recommencer à écouter les clics de l'utilisateur.
Yui TreeView est un outil puissant qui vous permet de créer une structure d'arbre dans votre application Web. Il fait partie de la bibliothèque de l'interface utilisateur Yahoo (YUI), qui est un ensemble d'utilitaires et de contrôles, écrits en JavaScript, pour créer des applications Web richement interactives. Ajax, en revanche, signifie JavaScript asynchrone et XML. Il s'agit d'un ensemble de techniques de développement Web utilisant de nombreuses technologies Web sur le côté client pour créer des applications Web asynchrones. Lorsque Yui TreeView est combiné avec AJAX, il permet la création de structures d'arbres dynamiques et extensibles qui peuvent charger des données à la demande, améliorant l'efficacité et l'expérience utilisateur de votre application Web.
Quels sont les avantages de l'utilisation de Yui TreeView avec Ajax?
Y a-t-il des alternatives à Yui TreeView pour créer des structures d'arbres dans les applications Web?
Puis-je utiliser Yui TreeView avec d'autres bibliothèques JavaScript comme jQuery ou React?
Vous pouvez personnaliser l'apparence de votre Yui TreeView en utilisant CSS. La bibliothèque YUI fournit un ensemble de classes CSS que vous pouvez utiliser pour styliser votre arbre. Vous pouvez également créer vos propres classes CSS personnalisées si vous avez besoin de plus de contrôle sur l'apparence de votre arbre.
Vous pouvez charger n'importe quel type de données dans votre Yui TreeView en utilisant AJAX, tant qu'elles peuvent être représentées comme une structure d'arbre. Cela inclut les données des bases de données, des fichiers XML, des fichiers JSON, etc. Le chargement des données à partir d'un script côté serveur, vous pouvez créer une structure d'arborescence dynamique qui représente le système de fichiers sur votre serveur.
Vous pouvez gérer les erreurs lorsque vous chargez des données dans votre Yui TreeView en utilisant AJAX en configurant un gestionnaire d'erreurs dans votre demande Ajax. Ce gestionnaire d'erreurs peut assister à toutes les erreurs qui se produisent pendant la demande et afficher un message approprié à l'utilisateur.
Oui, vous pouvez utiliser Yui TreeView avec AJAX dans une application Web mobile. La bibliothèque YUI est conçue pour être réactive et fonctionne bien sur une variété d'appareils, y compris les téléphones portables et les tablettes. Cependant, vous devrez peut-être effectuer des ajustements pour vous assurer que votre structure d'arbre est facile à naviguer sur un petit écran.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!