En JavaScript, le principe du modèle proxy est de fournir un substitut ou un occupant à un objet afin d'en contrôler l'accès en fournissant un proxy pour un objet, et l'objet proxy contrôle la référence à l'objet d'origine, il ; est un modèle structurel d'objet.
L'environnement d'exploitation de ce tutoriel : système Windows 10, JavaScript version 1.8.5, ordinateur Dell G3.
Un proxy est un objet (proxy) qui sert à contrôler l'accès à l'objet cible. Pour cela, il doit d'abord avoir la même interface que l'objet cible, mais il se distingue du motif décorateur dans le sens où il n'apporte aucune modification à l'objet cible. Son but est de retarder le temps d'initialisation des objets « complexes ». . De cette façon, vous pouvez initialiser l'objet cible lorsqu'il est utilisé (particulièrement important pour les singletons).
Fournissez un substitut ou un espace réservé pour un objet afin d'en contrôler l'accès
Fournissez un proxy pour un objet, et l'objet proxy contrôle la référence à l'objet d'origine. Le modèle de proxy est un modèle structurel d'objet
Il existe deux catégories de modèles de proxy :
(1) Proxy ordinaire
(2) Proxy paresseux
Regardez un morceau de code :
function getSomething(value) { if (value > 10) { return value * 2; } }
Ici, nous définissons une fonction, if Si la valeur transmise est supérieure à 10, alors nous renvoyons 2 fois sa valeur. Euh. . . C'est plutôt bien, mais il a ses défauts. La fonction fait trop de choses. Notre objectif est d'obtenir deux fois la valeur du paramètre, et nous portons ici un jugement conditionnel. (Bien sûr, cela n'a aucun impact ici, je donne juste un exemple simple) La fonction que nous voulons est simplement de renvoyer une valeur.
En regardant un morceau de code :
function getSomething(value) { return value * 2; } function proxtGet(value) { if (value <10) return; return getSomething(value); }
Maintenant, nous avons séparé la fonction de getSomething et avons décidé d'utiliser proxyGet pour le faire, puis getSomething peut faire sa propre chose en toute sécurité.
En fait, c'est une sorte de proxy de protection. Nous fournissons la méthode proxyGet pour protéger l'objet cible. Seuls ceux qui remplissent les conditions peuvent l'exploiter.
Si un jour il n'est pas nécessaire de porter un jugement, alors on peut appeler directement getSomething pour obtenir le résultat. C'est très pratique à voir.
Ce qui suit est une introduction aux agents virtuels :
Dans le développement Web, le plus coûteux est sans aucun doute la requête réseau. Supposons que nous ayons une liste, qui représente les informations du fichier d'arrière-plan. Lorsque nous cliquons sur une liste, nous envoyons un message. demande de packager le fichier en arrière-plan. , pour vous qui possédez un Kirin Arm, une telle surcharge de réseau est un cauchemar (en supposant que les exigences en temps réel de cette opération ne soient pas très élevées), nous pouvons alors opérer ainsi pour réduire le surcharge :
function sendFile(files) { // 做一些操作,然后发送文件信息给后台 console.log('发送成功'); } var proxySendFile = (function () { var caches = []; var timer = null; return function (file) { caches.push(file); if (timer) { return }; timer = setTimeout(function () { sendFile(caches); clearInterval(timer); timer = null; caches.length = 0; }, 2000) } } )()
Ici, sendFile est l'opération d'envoi de fichiers. Nous utilisons proxySendFIle pour proxy l'opération d'envoi de fichiers. 2000 ne lance qu'une seule requête. Même si votre bras Qilin est imparable, il n'y a aucune différence entre vous et les autres ici.
Recommandations associées : Tutoriel d'apprentissage Javascript
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!