0

我想设置和撤消功能,将我的 ajax 调用延迟一段时间,并让用户有机会在调用之前中止 ajax 调用。如果触发了另一个操作,我还想停止延迟并继续最近的 ajax 调用。

例如,如果我发送了一封电子邮件,并且我有 5 分钟的时间撤消此操作,我可以发送另一封电子邮件以发送上一封电子邮件,并给这封新电子邮件 5 分钟的时间来撤消此操作。

我想知道我怎么能做到这一点?

4

2 回答 2

0

您可以尝试封装操作并显示使用可以通过单击按钮提交的待处理操作。这样他们就可以随时删除待处理的操作。

另一种方法是创建撤消操作(例如,如果删除了一个文本块,则保留已删除的文本和位置信息),稍后可以执行该操作以使系统恢复到以前的状态。

但是,如果是发送电子邮件或保存到数据库的数据,事情就会变得复杂,排队等待的更改是更好的方法。

YUI 库有一个撤消/重做模块,您可以探索它。

于 2013-07-29T23:46:17.963 回答
0

这是一些伪代码:

  • 用户点击发送
  • 如果有以前的保存...
    • 清除超时
    • 调用发送函数,它将...
      • 检索已保存的
      • 如果它没有被删除...
        • 删除已保存的
        • 调用ajax发送
  • 保存当前的一个
  • 设置调用发送函数的超时时间(上面定义)

请注意,“保存”和“检索”在这里很简单。将其存储到“savedEmail”变量并从那里获取。擦除意味着您将“savedEmail”变量设置为空。

于 2013-07-29T23:46:36.030 回答