Javascript Ajax模式-假设成功或等待响应

Javascript Ajax模式-假设成功或等待响应,javascript,ajax,Javascript,Ajax,通常,ajax交互包括发送请求,向用户提供请求正在处理的反馈,然后在响应到达后处理它 当下一个操作需要从服务器发送数据时,等待响应显然是不可避免的,但是如果交互是对服务器上的某些数据的更新,例如排序列表的顺序,该怎么办呢。假设成功是一种不好的做法吗?因此,您可以发出请求,并根据排序成功的假设简单地更新DOM。我可以想象,如果请求失败,您必须提供回滚方法,并通知用户,但99%的时间请求应该通过,并且对用户来说是即时的 这是一种常见的模式吗?除了回滚和通知方法之外,还有其他因素需要考虑吗 任何建议都

通常,ajax交互包括发送请求,向用户提供请求正在处理的反馈,然后在响应到达后处理它

当下一个操作需要从服务器发送数据时,等待响应显然是不可避免的,但是如果交互是对服务器上的某些数据的更新,例如排序列表的顺序,该怎么办呢。假设成功是一种不好的做法吗?因此,您可以发出请求,并根据排序成功的假设简单地更新DOM。我可以想象,如果请求失败,您必须提供回滚方法,并通知用户,但99%的时间请求应该通过,并且对用户来说是即时的

这是一种常见的模式吗?除了回滚和通知方法之外,还有其他因素需要考虑吗

任何建议都将不胜感激,
Rich

如果用户希望收到关于成功与否的反馈,那么假设成功是不好的做法


只需从服务器返回一个成功/失败响应,并让用户知道他们的操作是成功的。从服务器返回的这段额外行程并没有造成任何损失,任何请求都有可能失败。

您可能想看看命令模式。看起来您想修改一些数据,并假设服务器也被修改了。如果AJAX处理程序失败,那么您可以回滚命令(并通知用户)。

但是当请求成功时,它会将UX提高十倍,对于一个简单的更新请求,我会冒险猜测99%的时间会发生…@risc,这是正常情况下99%的时间吗?当你的应用程序无法正常运行时会发生什么情况?@riscarrott:这取决于使用情况。Abdullah的答案对于某些用例是好的。如果更新很重要,在服务器确认之前显示更新可能会诱使用户离开页面或关闭浏览器,认为他们已经执行了更新。@Dave这就是回滚方法的要点,当应用程序没有遇到正常情况时,会回滚UI并通知用户,唯一的区别是,在提出请求时没有任何反馈。@riscott:用户关闭浏览器后,如何得到更新失败的通知,认为更新成功了?一篇有趣的文章,我当然喜欢为模式命名,还需要进一步调查。