备忘录模式在 js 中经常用于数据缓存. 比如一个分页控件, 从服务器获得某一页的数据后可以存入缓存。以后再翻回这一页的时候,可以直接使用缓存里的数据而无需再次请求服务器。
实现比较简单,伪代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
var Page = function(){ var page = 1, cache = {}, data; return function( page ){ if ( cache[ page ] ){ data = cache[ page ]; render( data ); }else{ Ajax.send( 'cgi.xx.com/xxx', function( data ){ cache[ page ] = data; render( data ); }) } } }() |
【Javascript设计模式4】- 适配器模式 | Tencent AlloyTeam 2012 年 10 月 25 日
[…] 备忘录模式 […]
【Javascript设计模式15】-职责链模式 | Tencent AlloyTeam 2012 年 10 月 25 日
[…] 备忘录模式 […]
【Javascript设计模式1】-单例模式 | Tencent AlloyTeam 2012 年 10 月 24 日
[…] 备忘录模式 […]
【Javascript设计模式3】-观察者模式 | Tencent AlloyTeam 2012 年 10 月 24 日
[…] 备忘录模式: http://www.alloyteam.com/2012/10/commonly-javascript-design-patterns-memorandum-m… […]
【javascript设计模式17】- 状态模式 | Tencent AlloyTeam 2012 年 10 月 24 日
[…] 备忘录模式: http://www.alloyteam.com/2012/10/commonly-javascript-design-patterns-memorandum-m… […]
【javascript设计模式5】-代理模式 | Tencent AlloyTeam 2012 年 10 月 24 日
[…] 备忘录模式: http://www.alloyteam.com/2012/10/commonly-javascript-design-patterns-memorandum-m… […]
【javascript设计模式2】-简单工厂模式 | Tencent AlloyTeam 2012 年 10 月 24 日
[…] 备忘录模式: http://www.alloyteam.com/2012/10/commonly-javascript-design-patterns-memorandum-m… […]