用户刷新浏览器时停止多个数据库访问

时间:2010-03-01 04:46:57

标签: java database

假设我们有一个需要20秒运行的数据库查询(用户通过单击浏览器中HTML页面上的按钮来运行它)。 用户会感到不耐烦,只有在10秒后他才会刷新浏览器,只能运行新的查询。

如何停止第一次运行的数据库查询(或阻止第二次运行)?

由于

3 个答案:

答案 0 :(得分:3)

第一步是优化该查询,对于大多数查询来说,20秒太长了。用户通常不会容忍这种糟糕的表现。

答案 1 :(得分:1)

我不是专家,但您可以存储他上次在会话中提交查询的时间。如果同一个用户以20秒的速度提交另一个查询,请忽略它。

但这并不是一种蛮力的方式。

答案 2 :(得分:1)

  • 如果这是使用Ajax,请禁用 直到启动查询的按钮 查询完成后。

  • 当用户发出请求时,设置一个 在用户会话中标记,然后 在单独的线程上启动查询。 如果他们再次尝试提交,请检查 国旗,简直忽略了 请求。查询完成后, 重置标志。虽然查询是 运行时,浏览器可以轮询 服务器等待结果。