我正在创建一个 TODO 列表 Web 应用程序,我有一个关于如何保存列表内容的问题。就像任何文字处理器一样,我希望允许用户在保存期间修改数据。
我可以使用布尔变量来指示用户更改了某些内容,即。更改某些内容时为 TRUE,否则为 FALSE。也许,这个标志也用于向用户显示某些数据未保存。当用户通过按 Ctrl+S 保存数据时,我的应用程序会调用一个函数,然后获取列表中的当前数据并开始将其保存到数据库中。最后,变量更改为假。这看起来很简单,但这种方法有一个明显的缺陷。例如。
- 用户更改数据。布尔变量变为 TRUE。
- 用户按下 Ctrl+S。
- 调用一个函数,它检索当前数据并开始保存它。
- 用户在保存期间更改更多数据。
- 该函数完成保存并将变量设置为 FALSE。
即使第 4 步中存在一些未保存的数据,也很容易看到该标志被设置为 FALSE。文字处理器/文本编辑器如何处理这个问题?他们是否只是在保存过程中禁用输入,但它足够快以至于我看不到它?