Maison interface Web js tutoriel Introduction au plug-in rewrap-ajax.js

Introduction au plug-in rewrap-ajax.js

Oct 20, 2017 am 09:40 AM
javascript 插件

Je n'ai pas écrit d'articles techniques depuis longtemps. J'ai écrit des journaux au cours de ce processus. L'enregistrement de la vie quotidienne a remplacé la rédaction d'articles techniques. le cœur était plein de passion ou de feu, mais maintenant il l'est ..

Récemment, j'ai écrit un plug-in JS Selon les mots du cercle, cela s'appelle un. roue. Que ce soit bon ou non, cela ne dépend pas de vous. La clé est ce que tout le monde utilise.
Bien sûr, je l'utilise moi-même. En raison de mes préférences et préférences personnelles, je ne peux pas emprunter la méthode d'écriture d'autres frameworks Ajax. La version actuelle est le résultat d'une intégration ascendante à partir de la version 1, donc vous Si vous souhaitez bien comprendre la structure interne, vous pouvez commencer par la version 1.

Parlons maintenant de la structure globale de conception. La version 1 est une méthode de collecte et d'organisation d'amis. La méthode d'écriture de base a été formée. Il suffit d'appeler nativeAjax. Le premier est un attribut ajax, le second est une fonction réussie et le troisième est une fonction d'erreur, comme suit :

nativeAjax(postOption,function(data){
    // 3.1、请求成功回调
    console.log(data);
},function(error){
    // 3.2、请求失败回调,返回HTTP状态码
    console.log(error);
});
Copier après la connexion

Basé sur le modèle de conception ci-dessus, donnez-le. une deuxième encapsulation, tout d'abord Les propriétés du service Ajax sont corrigées, alors nous pouvons lier toutes les propriétés Ajax à l'objet si elles sont directement liées à l'objet spécifié, en fait il suffit de donner et de prendre des paramètres, en enregistrant A. beaucoup de choses ont été faites et le processus est beaucoup plus simple, donc la flexibilité ne sera pas très grande. Si nous voulons l'encapsuler en interne, nous avons besoin d'une grande flexibilité et d'attributs réutilisables, donc je mets les attributs dans la fonction function, donc j'utilise ce pointeur pour lier l'attribut ajax en interne pour l'appeler, et en même temps, je peux le faire en interne. La ré-encapsulation du plug-in est le modèle de conception de la structure interne de cette version telle que je la comprends.

Version 2La structure externe appelée par rewrap-ajax est similaire à l'attribut JQ.fn de jq. Elle est utilisée par la méthode d'attribut d'objet de la structure en chaîne, nous sommes donc à l'intérieur. <script> Utilisez simplement wrap.service(`ajax`, foo), puis la fonction foo contient l'attribut de service ajax. Il suffit de lier l'attribut ajax à ce pointeur. , et SUCCESS a quatre attributs, et les quatre attributs prennent en charge les formats majuscules et minuscules. Ensuite, this.success et this.error sont deux méthodes, qui doivent appeler la demande de données réussie et appeler la capture de l'état d'erreur, et this.success et this.error ont tous deux un paramètre.

wrap.service(&#39;ajax&#39;,function ajax() {
    // 支持大小写
    this.URL = &quot;query.do&quot;
    this.TYPE = &quot;GET&quot;
    this.SUCCESS = function(data) {
        var val = data;
        console.log(val)
    };
    this.ERROR = function(err) {
        console.log(err)
    };
});
Copier après la connexion

Version trois rewrap-ajax maintient la structure externe et cette méthode d'écriture de la version deux. Il existe deux autres fonctions sur le pointeur this, à savoir les méthodes props et méthodes, parmi lesquelles. la méthode props est interne La structure renvoyée est un format de données de paire clé-valeur, avec plusieurs états... états, tels que :

1 return {
2     State_01: [{ class : ‘.main’, static: &#39;color&#39;, tip: &#39;message&#39;, content: &#39;container&#39;}],
3     State_02: [{ class : ‘.main’, static: &#39;color&#39;}],
4     State_03: [{ class : ‘.main’}]
5 }
Copier après la connexion

La valeur correspondant à chaque état d'état doit être un tableau [] Enregistrer, l'intérieur du tableau doit être un objet {}, les propriétés de l'objet sont requises dans un format régulier, la valeur correspondant à la propriété de l'objet doit être un élément Element (ou un nœud nœud , classe, identifiant, étiquette de balise, etc.) accessibles par une attente de nœud dom).

Cependant, la structure interne de la méthode methods est au format d'une fonction d'appel d'objet standard, dans laquelle la clé d'objet renvoyée par return est la méthode API. prend en charge l'écriture personnalisée.L'objet renvoyé est La valeur est une méthode d'écriture de fonction, puis la méthode de fonction reçoit un paramètre (ce paramètre est l'attribut d'état à l'intérieur du pipeline d'accessoires) et la méthode est écrite en interne à l'aide de ce pointeur, comme suit : .el(param).add()

Structure complète :

return {
    addClass: function (scope){
        this.el([scope.class,scope.static]).add()
    },
    removeClass: function (scope){
        this.el([scope.class,scope.tip]).remove()
    },
    pushHtml: function (scope){
        this.el([scope.static,scope.class]).push()
    },
    hasClass: function (scope){
        this.el(scope.define.content).has()
    }
}
Copier après la connexion

Le paramètre à l'intérieur de cette méthode.el(param) est la valeur de l'attribut d'état qui s'écoule via le pipeline d'accessoires en tant que paramètre, et le résultat reçu par le paramètre est une chaîne. Les résultats des chaînes peuvent être stockés sous forme de tableau [], alors ces chaînes ont cette méthode API. La méthode add après this.el() est la méthode add appelée par la chaîne actuelle. Cependant, la méthode de liaison add est une méthode API. Par exemple, addClass est la méthode API dans rewrap-ajax, vous appelez donc votre ajout personnalisé en externe. . pour implémenter la méthode addClass. Notez que la méthode add personnalisée dans this.methods ne nécessite pas de paramètres, mais le fait que le pipeline externe appelle add nécessite des paramètres dépend de la méthode addClass (addClass est la méthode API dans rewrap-ajax). Les méthodes API seront donc exposées plus tard.

 Pour cet appel externe, les attributs et méthodes des accessoires sont obtenus via la portée $scope L'appel externe est le suivant :

this.ERROR = function( $scope, err ) {
    $scope.$props.$el($scope.$props.$scope.define.static).add(&#39;error_message&#39;)
    $scope.$props.$el($scope.$props.$scope.define.static).push(&#39;调用出错 error&#39;)
    $scope.$props.$el($scope.$props.$scope.define.tip).remove(&#39;show&#39;)
    console.log(err)
}
Copier après la connexion
.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide du débutant PyCharm : compréhension complète de l'installation du plug-in ! Guide du débutant PyCharm : compréhension complète de l'installation du plug-in ! Feb 25, 2024 pm 11:57 PM

Guide du débutant PyCharm : compréhension complète de l'installation du plug-in !

Erreur de chargement du plugin dans Illustrator [Corrigé] Erreur de chargement du plugin dans Illustrator [Corrigé] Feb 19, 2024 pm 12:00 PM

Erreur de chargement du plugin dans Illustrator [Corrigé]

Quel est le répertoire d'installation de l'extension du plug-in Chrome ? Quel est le répertoire d'installation de l'extension du plug-in Chrome ? Mar 08, 2024 am 08:55 AM

Quel est le répertoire d'installation de l'extension du plug-in Chrome ?

Partagez trois solutions expliquant pourquoi le navigateur Edge ne prend pas en charge ce plug-in Partagez trois solutions expliquant pourquoi le navigateur Edge ne prend pas en charge ce plug-in Mar 13, 2024 pm 04:34 PM

Partagez trois solutions expliquant pourquoi le navigateur Edge ne prend pas en charge ce plug-in

PyCharm Community Edition prend-il en charge suffisamment de plugins ? PyCharm Community Edition prend-il en charge suffisamment de plugins ? Feb 20, 2024 pm 04:42 PM

PyCharm Community Edition prend-il en charge suffisamment de plugins ?

WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel Dec 17, 2023 pm 05:30 PM

WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel

Des conseils d'installation du plug-in PyCharm sont partagés pour vous aider à obtenir deux fois le résultat avec la moitié de l'effort ! Des conseils d'installation du plug-in PyCharm sont partagés pour vous aider à obtenir deux fois le résultat avec la moitié de l'effort ! Feb 21, 2024 pm 06:36 PM

Des conseils d'installation du plug-in PyCharm sont partagés pour vous aider à obtenir deux fois le résultat avec la moitié de l'effort !

Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Jan 05, 2024 pm 06:08 PM

Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP

See all articles