当前位置:首页 > 杂谈 > 正文内容

Web应用中的撤销与重做(历史记录回放)-撤销关闭的网页快捷键

2023-07-29 03:48:41TONY杂谈85

web应用中的撤销与重做是一个非常常见的功能,我们来讲讲如何实现它。

首先我们需要有一个存储操作记录的地方,我们可以定义一个数组,数组内存储操作的记录。每一条记录描述了操作的类型、操作的对象、操作了对象的哪些属性。其次,我们需要知道当前操作的是哪一条记录,我们可以定义一个索引,根据索引在历史记录中获取操作的记录,然后根据记录的信息做对应的修改。

我们先看下用户的操作流程

我们可以看到,用户会有三种操作:添加/删除/修改,当操作触发时,我们需要对存入历史记录的信息做一些处理,这些处理通常会包含一些数据格式的转换,处理完之后,我们需要判断当前的历史记录数是否超过了最大值,如果没有超过,我们就可以直接将记录push到数组中,否则我们需要使用shift方法移除数组头部的项,也就是图中缺少的记录1,然后将记录push到数组中。

当用户进行撤销和重做的时候,如下图

首先,不管是撤销还是重做都是需要判断当前历史记录的索引是否超出了其数组长度,如果超出了,我们是不能进行操作的。当索引未超出时,我们取出对应的记录,图中为记录5。此时,你的记录信息中应该有一个操作类型标识,你可以称其为ActionType,值为:

export type ActionType=add|delete|modify

值得注意的是,历史记录在还原的时候,操作类型都是相反的,比如您添加了一个文本,撤销的时候你就应该把文本删除。添加和删除可以直接取反,然而更新却没有直接可以取反的操作。那么对于更新,我们应该如何处理呢?很简单,我们可以在记录中存储修改前后的值

{ oldValue:; newValue:; }

撤销的时候取旧的值,重做的时候取新的值。

然后我们从图中往下看,可以看到当撤销的时候,数组中的索引需要往上移动减1,当重做时索引需要往下移动加1。

那么当我们处于历史记录4的时候,此时我们又做了添加/删除/修改的操作,这时候应该如何处理呢?

遇到这种情况,我们可以将记录4之后的所有记录移除,然后将新的操作记录放到数组尾部,同时我们需要将标识当前历史记录位置的索引重置,可以设为-1,在下次操做的时候就可以判断-1为历史记录未操作过,然后通过length取历史记录最后一项为当前历史记录索引,重复上图的操作。

“Web应用中的撤销与重做(历史记录回放)-撤销关闭的网页快捷键” 的相关文章

抖店应用云服务平台「抖店云」上线 开启服务商招募

抖店应用云服务平台「抖店云」上线 开启服务商招募

站长之家(ChinaZ.com)7月5日 消息:日前,抖音电商联合火山引擎推出电商应用云服务平台抖店云(网址:https://opencloud.jinritemai.com/home),并正式开启服务商招募。 据介绍,抖音云通过云端数据容器,打造弹性的云计算资源、可靠的安全服务、...

工行远程银行中心(合肥):践行金融为民理念 打造远程服务“三原色”

工行远程银行中心(合肥):践行金融为民理念 打造远程服务“三原色”

来源:人民网-安徽频道为民服务无小事,一枝一叶总关情。中国工商银行远程银行中心(合肥)(以下简称“中心”)积极践行以人民为中心的发展思想,紧紧围绕全面打造“人民满意的个人金融银行”这一主线,积极深化云端线上服务,进一步增强“金融便民、金融利民、金融惠民”的责任感和使命感,坚守“服务为民”本心,点亮9...

求问各位大佬,以我当前的box应该优先把哪些从者的哪些技能升起来呢?

求问各位大佬,以我当前的box应该优先把哪些从者的哪些技能升起来呢?

厨力>自充>魔放>回避/无敌。 这是我个人点技能的优先度。 如果不论厨力,先把你box里的那些50自充,30自充点满,相信我会极大的改善游戏体验。 结晶优先给5星。...

起售价不到三万元的电动代步车,凌宝uni和元宝应该怎么选?

起售价不到三万元的电动代步车,凌宝uni和元宝应该怎么选?

微型电动代步市场为什么这么火?很简单,不得不承认这是一个刚需市场。而微型电动车的价格目前已经比较亲民了,3万左右就可以买到一台不错的电动车。不少朋友也开始考虑选择一台电动车作为日常代步,尤其是女性,代步小电动车对于一些家庭用户来说还是非常不错的。今天我们就找来了两款上市不久的代步小电动,一...

刚刚住建部官网正式发布《危险性较大的分部分项工程专项施工方案编制指南》内容涵盖基坑工程、模板支撑体系工程、起重吊装及安装拆卸、脚手架工程、拆除工程、暗挖工程、建筑幕墙安装、人工挖孔桩、钢结构安装工程等

刚刚住建部官网正式发布《危险性较大的分部分项工程专项施工方案编制指南》内容涵盖基坑工程、模板支撑体系工程、起重吊装及安装拆卸、脚手架工程、拆除工程、暗挖工程、建筑幕墙安装、人工挖孔桩、钢结构安装工程等

《指南》全文共计43页,内容涵盖基坑工程、模板支撑体系工程、起重吊装及安装拆卸工程、脚手架工程、拆除工程、暗挖工程、建筑幕墙安装工程、人工挖孔桩工程、钢结构安装工程等,值得大家借鉴! 住房和城乡建设部办公厅关于印发危险性较大的分部分项工程专项施工方案编制指南的通知各省、自...

官网突然无法打开!“初恋就在这里认识的,再见了青春…”

官网突然无法打开!“初恋就在这里认识的,再见了青春…”

来源|新闻晨报综合橙柿互动、红星新闻、网友评论 昨日,有网友发现天涯社区官网已无法打开,相关页面显示“无法访问此网站”。另外,天涯社区APP也无法正常打开,页面显示“无网络连接”。 此前,天涯社区官方微博曾于4月1日发布公告称,近期将进行技术升级和数据重构,在此期...