我在laravel中有一个站点,其中单个页面进行多个数据库查询(选择语句可能需要一段时间才能运行)。
有没有办法检测用户:
因此意味着不需要查询结果,因此取消它或杀死进程?
注意数据库是mysql所以我可以从mysql workbench轻松调用kill {PID}
来手动结束类似的查询。
谢谢!
答案 0 :(得分:0)
是的,这可以通过一些JavaScript轻松检测到;当用户试图离开或关闭页面时会触发“onunload”事件,因此答案1和3.更改表单中的字段也很容易检测。
难题是将取消请求与原始查询相匹配;不知何故,您必须知道该查询的PID,并且由于MySQL函数通常在完成之前不会返回,因此您无法请求PID等信息。
答案 1 :(得分:0)
您可以检测用户是否使用Javascript离开或重新加载页面,捕获ONUNLOAD
事件(documentation here,SO related question here)。
要检查查询参数是否发生变化,您应该指定用户是以表格还是以任何其他方式手动输入它们,对于任何不同的方法都有不同的答案。