js虚拟代理模式

摘要:虚拟代理把开销大的操作等到需要执行创建的时候再去执行创建,用户可以放心使用代理,他只关心是否能得到结果,在任何可以使用本体的地方都可以使用代理代替本体

虚拟代理

把开销大的操作等到需要执行创建的时候再去执行创建

  var myImage = +function () {
        var imgNode = document.createElement('img');
        document.body.appendChild(imgNode);
        return {
            setSrc: function (src) {
                imgNode.src = src;
            }
        };
    }();
    var proxyImg = !function () {
        var img = new Image();
        img.onload = function () {
            myImage.setSrc(this.src);
        }
        return {
            setSrc: function (src) {
                myImage.setSrc('加载菊花图.gif');//loading图片路径
                img.src = src;
            }
        }
    }();
    // 调用
    proxyImg.setSrc('http:xxxxx.com/xx.jpg');


意义

  • proxyImg代理负责预加载图片,预加载操作完成后,把请求重新交给本体myImage;
  • proxyImg代理负责预加载图片,本地负责设置图片src,如果某天我们不需要预加载了,直接去掉预加载模块,调用本地就好


代理和本体接口的一致性

  • 用户可以放心使用代理,他只关心是否能得到结果
  • 在任何可以使用本体的地方都可以使用代理代替本体


本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_3054