我有一次ajax调用,它连接到数据库,在数据库中设置一个标志,并等待一个文件由其他进程创建,查找标志。
在服务器上创建文件之前,ajax一直等待。文件创建后,ajax读取文件并显示内容。
现在的问题是,有时创建文件的后端进程陷入套接字问题,并且从未创建文件,但ajax在这种情况下一直等待,只有当超时发生时才会超时,
我想展示一个停止请求按钮,它可以停止当前的ajax请求,因为超时时间很长,用户可以在超时之前停止它。
这是我所尝试的,我修改了代码,它一直在寻找文件的存在,并添加了一个会话变量检查,如如果session ("AbortCheck") = true,然后退出脚本。
并放置另一个ajax调用来更新sessin变量,以便当脚本在循环中发现session = true时,它将立即停止请求。
在调试时,我发现只有在第一个ajax完成时才执行更新会话变量的新ajax请求。因此,它永远不会在用户请求时停止请求。
谁能让我知道如何停止运行ajax(这是需要时间)对用户输入?
谢谢
也许您可以在AJAX脚本中实现一些错误管理,而不是让用户管理。
'Try to open the socket here
on error resume next
if err<>0 then
Response.Write("1")
else
Response.Write(fileContent)
end if
如果ajax脚本返回1,则调用者脚本将错误通知用户。
我通过从服务器端删除循环来固定服务器端执行,该循环不断检查文件,并在js文件中放置循环以重新检查相同,并且对于握手,如果在服务器上没有找到文件,我将消息传递给等待ajax和另一个标志从jquery进行中止检查,这解决了问题。