我已经创建了一个应用程序,其中我向节点服务器调用Ajax,但问题是,如果用户重定向到另一个页面,那么服务器继续处理Ajax调用发出的请求,并在完成该请求后,它启动处理新的重定向请求。
我使用express作为框架,我不想知道客户端中止函数,我需要做的就是停止服务器端处理Ajax调用的请求,并立即开始处理新的请求。
答案 0 :(得分:0)
我需要做的就是停止Ajax调用请求的服务器端处理,并立即开始处理新请求。
如果您的服务器尚未处理新请求是否仍在处理旧请求,那么您就会遇到一个更大的问题,只能通过取消不再需要的请求来解决这个问题。
您的服务器应始终处理新请求,无论旧请求是否仍在处理中。为了确保它,您需要确保永远不要在处理程序中使用任何阻塞调用。没有像fs.readfileSync
这样的函数(或名称中包含Sync的任何内容),没有长时间运行的for
或while
循环(除非它们位于async function
并且不会阻止事件循环)等。
如果您在处理新请求之前没有阻止旧请求,那么您将不会遇到问题中描述的问题,您在其中询问特定解决方案而不是问题,以及解决方案问一下有两个问题:它无论如何都无法解决问题,也无法实现。