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,如果某天我们不需要预加载了,直接去掉预加载模块,调用本地就好
代理和本体接口的一致性
- 用户可以放心使用代理,他只关心是否能得到结果
- 在任何可以使用本体的地方都可以使用代理代替本体
本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!