设计模式知识连载(34)---备忘录模式:
2017-12-28 21:14
387 查看
<body> <h3>设计模式知识连载(34)---备忘录模式:</h3> <p> 在不破坏对象的封装性的前提下,在对象之外捕获并保存该对象内部的状态以便日后对象使用或者对象恢复到以前的某个状态。 </p> <hr> <div> <div> <ul> <li>1111111111111111111111</li> </ul> </div> <div> <span id = 'pre_page'>上一页</span> <span id = 'next_page'>下一页</span> </div> </div> <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> <script type="text/javascript"> /** * 案例一:新闻展示,方式一:初始 */ // 下一页按钮点击事件 $('#next_page').on('click', function() { // 获取新闻内容元素 var $news = $('#news_content') ; // 获取新闻内容元素当前页数据 var page = $news.data('page') ; // 获取并显示新闻 getPageDate(page, function() { // 修正新闻内容元素当前页面数据 $news.data('page', page + 1) ; }) ; }) ; // 上一夜按钮点击事件 $('#pre_page').on('click', function() { // 显示上一页 }) ; /*** * 请求某一页新闻 * 参数page :当前页 * 参数fn : 成功回调函数 ****/ function getPageDate(page, fn) { // post请求数据 $.post('./data/getNewsData.php', { // 数据:页面 page : page }, function(res) { if(res.errNo == 0) { // 显示当前页 showPage(page, res.data) ; fn && fn() ; } }) ; } // 显示某页逻辑 function showPage(page, data) { console.log('执行了showPage()方法') ; } ; /** * 案例一:新闻展示,方式二:新闻缓存器 */ // Page备忘录类 var Page = (function() { // 信息缓存对象 var cache = {} ; /*** * 主函数 * 参数 page 页码 * 参数 fn 成功回调函数 ****/ return function(page, fn) { // 判断该页数据是否在缓存中 if(cache[page]) { // 恢复到该页状态,显示该页内容 showPage(page, cache[page]) ; // 执行成功回调函数 fn && fn() ; }else { // 若缓存Cache中无该页数据 $.post('./data/getNewsData.php', { // 请求携带数据page页码 page : page }, function(res) { // 成功返回 if(res.errNo == 0) { // 显示该页数据 showPage(page, res.data) ; // 将该页数据种入缓存中 cache[page] = res.data ; // 执行回成功回调函数 fn && fn() ; }else { // 处理异常 } }) ; } } })() ; // 单元测试 // 下一页按钮点击事件 $('#next_page').on('click', function() { // 获取新闻内容元素 var $news = $('#news_content') ; // 获取新闻内容元素当前页数据 var page = $news.data('page') ; // 获取并显示新闻 Page(page, function() { // 修正新闻内容元素当前页数据 showPage('page', page + 1) ; }) ; }) ; </script> </body>
相关文章推荐
- 设计模式知识连载(41)---简单模板模式:
- 设计模式知识连载(1)---函数的书写方式
- 设计模式知识连载(2)---封装_1
- 设计模式知识连载(6)---继承_2:创建即继承-构造函数继承
- 设计模式知识连载(9)---继承_5:如虎添翼-寄生式继承
- 设计模式知识连载(25)---享元模式:
- 设计模式知识连载(33)---中介者模式:
- 设计模式知识连载(37)---链模式:
- 设计模式知识连载(24)---组合模式:
- 设计模式知识连载(21)---代理模式:
- 设计模式知识连载(10)---继承_6:终极继承者-寄生组合式继承
- 设计模式知识连载(12)---调用方式:多态
- 设计模式知识连载(20)---适配器模式:
- 设计模式知识连载(15)---抽象工厂模式:
- 设计模式知识连载(40)---节流模式:
- 设计模式知识连载(44)---等待者模式:
- 设计模式知识连载(48)---MVC模式:
- 设计模式知识连载(23)---桥接模式:
- 设计模式知识连载(28)---状态模式:
- 设计模式知识连载(29)---策略模式: