JS设计模式之代理模式详解

这次给大家带来js设计模式之代理模式详解,js代理模式的注意事项有哪些,下面就是实战案例,一起来看一下。

概念:代理模式就是为一个对象提供一个代用品或者占位符,以便控制对它的访问。也就是为了保障当前对象的单一职责,而需要创建另一个对象来处理当前对象的一些逻辑以提高代码效率判定状态等,代理几乎可以是任何对象:文件,资源,内存中的对象,或者是一些难以复制的东西,常见的代理有远程代理,虚拟代理,安全代理,智能指引,我主要介绍最常见的两种代理模式就是虚拟代理。

作用和注意事项 
1.远程代理(一个空间将不同空间的的对象进行局部代理) 
2.虚拟代理(需要创建开销很大的对象,如图片加载) 
3.安全代理(控制真实对象的访问权限) 
4.智能引导(调用对象代理处理另外的一些事情,如垃圾回收机制) 
注意事项: 
不能滥用代理,有时候仅仅会增加代码的复杂程度。

我们来看虚拟代理实现图片预加载

// 图片加载函数var myImage = (function(){    var imgNode = document.createElement("img");    document.body.appendChild(imgNode);    return {        setSrc: function(src) {            imgNode.src = src;        }    }})();// 引入代理对象var proxyImage = (function(){    var img = new Image;    img.onload = function(){        // 图片加载完成,正式加载图片        myImage.setSrc( this.src );    };    return {        setSrc: function(src){            // 图片未被载入时,加载一张提示图片            myImage.setSrc("file://c:/loading.png");            img.src = src;        }    }})();// 调用代理对象加载图片proxyImage.setSrc( "http://images/qq.jpg");

登录后复制

另一个就是虚拟代理合并http请求

// 文件同步函数var synchronousFile = function( id ){    console.log( "开始同步文件,id为:" + id );}// 使用代理合并请求var proxySynchronousFile = (function(){    var cache = [], // 保存一段时间内需要同步的ID        timer; // 定时器指针    return function( id ){        cache[cache.length] = id;        if( timer ){            return;        }        timer = setTimeout( function(){            proxySynchronousFile( cache.join( "," ) ); // 2s 后向本体发送需要同步的ID集合            clearTimeout( timer ); // 清空定时器            timer = null;            cache = [];        },2000 );    }})();// 绑定点击事件var checkbox = document.getElementsByTagName( "input" );for(var i= 0, c; c = checkbox[i++]; ){    c.onclick = function(){        if( this.checked === true ){            // 使用代理进行文件同步            proxySynchronousFile( this.id );        }    }}

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

JS设计模式之建造者模式详解

JS的设计模式之构造函数模式详解

js设计模式之-单例模式的使用

以上就是JS设计模式之代理模式详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2782957.html

(0)
上一篇 2025年3月8日 16:41:31
下一篇 2025年3月2日 07:31:23

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JS设计模式之命令模式详解

    这次给大家带来js设计模式之命令模式详解,使用js命令模式详解的注意事项有哪些,下面就是实战案例,一起来看一下。 概念 命令模式用于将一个请求封装成一个对象,从而可以用不同的参数对客户进行参数化,该模式将函数的调用请求和操作封装成一个单一的…

    编程技术 2025年3月8日
    200
  • JavaScript中的堆排序详解

    本篇文章讲述了javascript中的堆排序,大家对javascript中的堆排序不了解的话或者对javascript中的堆排序感兴趣的话那么我们就一起来看看本篇文章吧, 好了废话少说进入正题吧 堆排序可以说是一种利用堆的概念来排序的选择排…

    2025年3月8日
    200
  • JavaScript中的计数排序详解

    本篇文章讲述了javascript中的计数排序,大家对javascript中的计数排序不了解的话或者对javascript中的计数排序感兴趣的话那么我们就一起来看看本篇文章吧, 好了废话少说进入正题吧 计数排序的核心在于将输入的数据值转化为…

    2025年3月8日
    200
  • JS设计模式之原型模式详解

    这次给大家带来js设计模式之原型模式详解,使用js原型模式的注意事项有哪些,下面就是实战案例,一起来看一下。 概念:原型模式是指用原型实例指向创建对象的种类,并通过拷贝这些原型创建新的对象。对于原型模式,我们利用javascript原型继承…

    编程技术 2025年3月8日
    200
  • javascript如何实现小球跳动效果

    这次给大家带来javascript如何实现小球跳动效果,javascript实现小球跳动效果的注意事项有哪些,下面就是实战案例,一起来看一下。 今天介绍的是一种通过javascript实现的一种炫酷的动画效果,具体实现特效我通过图片展示给大…

    2025年3月8日
    200
  • 细说JavaScript中的作用域与变量

    本篇文章讲述了JavaScript中的作用域与变量,大家对JavaScript中的作用域与变量不了解的话或者对JavaScript中的作用域与变量感兴趣的话那么我们就一起来看看本篇文章吧, 好了废话少说进入正题吧 变量作用域 作用域:就是变…

    2025年3月8日
    200
  • 好用的js插件分享

    从一些开源网站上下载下来的 后台管理系统模板一般会有很多的js ,其js 的功能是什么呢?这里随手查询了一下,记录下来,希望本文能帮助到大家。 正文: 1.zDialog.js 各种弹窗插件 详细案例:http://www.2ky.cn/P…

    2025年3月8日 编程技术
    200
  • vue-cli初始化一个vue.js项目的方法实例

    解析打包.vue文件 vue为了能够使我们在项目开发中对组件进行更好的维护,提供了一个单文件组件系统,vue把每一个独立的组件放在一个.vue的文件中,在这个文件中提供基础三个自定义标签:1. template2. script3. sty…

    编程技术 2025年3月8日
    200
  • javascript实现线程以及事件循环详解

     本篇文章讲述了javascript实现线程以及事件循环,大家对javascript实现线程以及事件循环不了解的话或者对javascript实现线程以及事件循环感兴趣的话那么我们就一起来看看本篇文章吧, 好了废话少说进入正题吧 1.为什么说…

    2025年3月8日
    200
  • vuejs实现插件状态管理详解

    本篇文章讲述了vuejs实现插件状态管理,大家对vuejs实现插件状态管理不了解的话或者对vuejs实现插件状态管理感兴趣的话那么我们就一起来看看本篇文章吧, 好了废话少说进入正题吧 对于新手来说,一开始接触vuex时候只听说它很强大,很好…

    2025年3月8日
    200

发表回复

登录后才能评论