JavaScript设计模式(二十三):做好笔记-备忘录模式

简介: 做好笔记-备忘录模式

备忘录模式(Memento)

在不破坏对象的封装性的前提下,在对象之外捕获并保存该对象内部的状态以便日后对象使用或者对象恢复到以前的某个状态。(缓存数据方便后续直接使用)

需求:避免每次都重复调用接口获取数据

image.png

<button id="search_btn">获取数据</button>
<div id="content"></div>
<script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-3.5.1.min.js"></script>
// 备忘录模式(缓存数据)
const Page = (function () {
   
   
    // 定义备忘录(缓存对象)
    let cache = {
   
   };
    return function (key, fn) {
   
   
        if (cache[key]) {
   
   
            fn && fn(cache[key]);
        } else {
   
   
            $.get('./data.json', function (res) {
   
   
                if (res.code === 200) {
   
   
                    cache[key] = res.data.list;
                    fn && fn(cache[key]);
                    console.log(cache);
                }
            })
        }
    }
}());

// 点击请求接口
$('#search_btn').click(function (e) {
   
   
    Page('tableData', function (list) {
   
   
        const html =
            `<table border>
                <tr><th>姓名</th><th>年龄</th></tr>
                ${list.map(d => `
${d.name}</td><td>${ d.age}</td></tr>`).join('')} </table>`; $('#content').html(html); }); });
目录
相关文章
|
13天前
|
设计模式 Java API
Kotlin教程笔记(50) - 改良设计模式 - 工厂模式
Kotlin教程笔记(50) - 改良设计模式 - 工厂模式
|
13天前
|
设计模式 监控 Java
Kotlin教程笔记(52) - 改良设计模式 - 观察者模式
Kotlin教程笔记(52) - 改良设计模式 - 观察者模式
|
13天前
|
设计模式 安全 Java
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式
|
27天前
|
设计模式 安全 Java
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
27 2
|
8天前
|
设计模式 安全 Java
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
|
8天前
|
设计模式 Java Kotlin
Kotlin教程笔记(56) - 改良设计模式 - 装饰者模式
Kotlin教程笔记(56) - 改良设计模式 - 装饰者模式
|
8天前
|
设计模式 监控 Java
Kotlin教程笔记(52) - 改良设计模式 - 观察者模式
Kotlin教程笔记(52) - 改良设计模式 - 观察者模式
20 3
|
8天前
|
设计模式 算法 Kotlin
Kotlin教程笔记(53) - 改良设计模式 - 策略模式
Kotlin教程笔记(53) - 改良设计模式 - 策略模式
30 2
|
8天前
|
设计模式 安全 Java
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式
24 1
|
8天前
|
设计模式 Java API
Kotlin教程笔记(50) - 改良设计模式 - 工厂模式
Kotlin教程笔记(50) - 改良设计模式 - 工厂模式
16 1