分享有关缓存事件的需求

457 阅读2分钟

这是我参与更文挑战的第5天,活动详情查看: 更文挑战

今天就跟大家分享一个小需求。

需求背景

小程序的一个页面,想在小程序的使用过程中,有一个取消按钮,这个按钮的的功能呢就是退出小程序或者跳转到其他页面。当我们点击“取消”按钮的时候我们要弹出一个modal框,用来给用户点击这个按钮的一个确认反馈,防止用户的误操作。看似这个需求很简单,我们可以完全调用微信的showModal方法来实现。很简单是吧。但是产品的小坑就出来了。他想要的呢是在小程序显示弹窗的期间用户的一系列操作可以被缓存,当我们取消弹框的时候再将有弹框期间的事件顺序执行。有个前提跟大家说一下,因为我们这个小程序有涉及到webSocket所以有一些事件是通过监控来搞的。

通过上面的需求分析,我们可以很好的去处理,当我们点击按钮的时候,我们可以增加一个变量,来保存我们的弹窗是否显示。如果显示了弹窗的话,我们就可以通过这个变量来处理webSocket的监听方法。将弹窗显示的期间的方法存入到数组中,当我们取消了弹窗的显示,在从数组中依次取出要执行的事件,执行。

这就跟队列的定义很相似吧。队列:只允许在一端插入数据操作,在另一端进行删除数据操作的特殊线性表;进行插入操作的一端称为队尾(入队列),进行删除操作的一端称为队头(出队列);队列具有先进先出(FIFO)的特性。:栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)