保护代理和虚拟代理

虚拟代理

  • 把开销大的操作等到需要执行创建的时候再去执行创建
        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,如果某天我们不需要预加载了,直接去掉预加载模块,调用本地就好

代理和本体接口的一致性

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

to be continue

04-26 09:43