每日JavaScript设计模式:Day 7 代理模式

26 篇文章 0 订阅
9 篇文章 0 订阅

代理模式

由于一个对象不能直接引用另一个对象,所以需要通过代理对象在这两个对象之间起到中介的作用

实例

跨域问题,在不同的域之间是不能直接访问的,这时候我们就需要一个对象来作为中间桥梁让两个对象能够相互访问。一类解决思路就是通过代理的思想,比如JSONP,ajax脚本不能够直接访问数据库,但是script标签可以,这时候script标签就可以充当代理的角色,让浏览器脚本和另一个域下的服务器进行通信。

还有就是可以通过服务器代理,浏览器访问同源的服务器没有限制,而且这个限制只存在与浏览器,所以可以脚本先向自己的服务器发送信息,自己的服务器再去请求其他的域,服务器得到数据之后再返回给前端。

总结

代理对象可以解决被代理对象域外界对象之间的耦合。
有时对象的实例化对资源的开销很大,如页面加载初期加载文件有很多,此时能够延迟延迟加载一些图片对页面首屏加载时间的收益页很大。

又比如图片预览界面,可以先加载一张预览图,当用户点击的时候在加载大图。

思考

代理模式的思想实在两个对象之间添加一层代理,代理可以作为双方之一与另一方通信,并将数据返回给被代理对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值