富交互Web应用中的撤销和前进
生活随笔
收集整理的這篇文章主要介紹了
富交互Web应用中的撤销和前进
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在web應用中,用戶在進行一些富交互行為的操作時難免會出現(xiàn)誤操作,比如在富文本編輯器設置錯了字體顏色就需要撤回,做H5活動頁面的時候不小心刪了一個圖片也需要撤回,更比如在線設計原型圖應用的時候不小心刪了一個頁面等,總之在交互場景非常復雜的情況下,用戶操作失誤的可能性非常大,這時候‘撤銷’和‘前進’這兩個操作就很有必要了,而且用戶體驗也很好
用戶未操作的時候全局狀態(tài)是A
用戶操作某個組件使其移動到位置X,松開鼠標之后全局狀態(tài)是B
用戶操作另一個組件使其刪除,完成后全局狀態(tài)是C
思路
不管是任何場景下的web應用,用戶的每一次操作我們都可以看成是對某個組件或某個對象的狀態(tài)和屬性進行改變,一旦連續(xù)的動作操作完成正準備進行下一個動作之前,此刻的狀態(tài)就是一個全新的狀態(tài)
A —— B —— C用戶未操作的時候全局狀態(tài)是A
用戶操作某個組件使其移動到位置X,松開鼠標之后全局狀態(tài)是B
用戶操作另一個組件使其刪除,完成后全局狀態(tài)是C
所以,撤銷的操作就是在用戶操作狀態(tài)到C的時候讓全局的狀態(tài)回到B,回到上一次操作完的時候。
那么就需要可以存放這種大量狀態(tài)的列表或索引來記錄每一次操作的動作
但如果我用某一個數組變量來存儲如此龐大的數據是不是略顯不妥?數據量越大內存應該會爆吧?所以這里我推薦大家使用IndexedDB
下面是利用Angular、Rxjs和IndexedDB封裝好的一個服務類
這里我偷懶了一下,直接采用自增的id作為key了,也方便查找
每一次操作所存儲的數據如下
最后可以看一下我實現(xiàn)好了的撤銷和前進操作的場景
與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的富交互Web应用中的撤销和前进的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一张图告诉你BCH路线分歧的现状
- 下一篇: 【从前端到全栈】- koa快速入门指南