林秀栋的技术博客

设计模式(六) 备忘录模式

从六开始的设计模式属于行为型设计模式

//比如在分页中
//可以缓存已经获取的页数数据
//无需进行二次请求

var page = function(){
    //信息缓存对象
    var cache = {};
    return function(page, fn){
        //判断该页数是否在缓存中
        if(cache[page]){
            showPage(page, cache[page]);	//渲染页面的函数
            //执行成功的回调函数
            fn && fn();
        }else{
            $.ajax({
                //...
                data: {page: page},
                success: function(res){
                    showPage(page, res.data);	//渲染页面的函数
                    cache[page] = res.data;
                    //执行成功的回调函数
                    fn && fn();
                }
            })
        }
    }
}

$("#a").click(function(){
    page($(this).data("page"), function(){
        //...
    });
})