java - 如何在 java spring mvc 应用程序中取消以前的操作

标签 java ajax spring jakarta-ee spring-mvc

我正在开发一个 spring MVC 应用程序。我遇到了一些有趣的案例。

为了更容易解释,我以顶部的 stackover 流程​​按钮为例(我指的是那些问题、标签、用户、徽章、未回答的按钮)。

现在在我的应用程序中有类似的按钮。当用户单击任何按钮时,它会通过传递适当的参数进行 ajax 调用。服务器进行 sql 查询并返回结果。

现在假设有一个像我这样的疯狂用户不停地点击这些按钮。所以每次点击都是在进行 ajax 调用。哪个完成了它的操作就出现在前端。因此,即使用户最后单击标签按钮,它也可能会出现,并且之前单击需要很长时间才能返回前端的问题可能会覆盖页面。我该如何解决? (我希望显示标签数据,因为它是用户最后一次点击)

首先,我知道当用户首先点击问题然后点击标签时,我不再需要查询问题按钮的 sql。有什么方法可以让我停止处理问题按钮的 sql 查询。

谢谢

最佳答案

处理此问题的最佳方法是通过用户界面 - 如果用户执行某些需要在后端进行大量处理的操作(单击图像),您的 UI 应该阻止页面上的其他操作向后端,直到原始请求完成。

视觉上解决这个问题的方法是禁用/灰显其他元素,使一些工作正在进行(使用微调器、进度条)等显而易见。

在服务器端,由于每个 HTTP 请求都是独立的,因此在服务器上添加逻辑以检测发出此当前请求的用户是否当前正在处理另一个正在进行的请求会很麻烦和困难。

关于java - 如何在 java spring mvc 应用程序中取消以前的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16199658/

相关文章:

java - 在 Hibernate 中更改生成的外键名称

jquery - 添加 jquery ui css

java - 如何在类型处理程序中使用 spring 注入(inject)属性?

java - 使用 JSP 迭代 ArrayList

java - 从不同的类(覆盖)调用 Activity 类的 startActivity

java - 将 Json 映射到 POJO

java - 将 Scanner 的输入与 HashMap 的键和值进行比较

jQuery AJAX 通过跨域发布到 https web api 操作

javascript - Rails j 局部渲染

java在mysql中插入特殊字符