保护代理和虚拟代理
虚拟代理
- 把开销大的操作等到需要执行创建的时候再去执行创建
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,如果某天我们不需要预加载了,直接去掉预加载模块,调用本地就好
代理和本体接口的一致性
- 用户可以放心使用代理,他只关心是否能得到结果
- 在任何可以使用本体的地方都可以使用代理代替本体