2013-03-06 47 views
1

我有一个初学者的问题。如果我使用javascript进行ajax调用,然后在ajax请求获得响应之前成功重新加载页面,响应是否仍然有效?ajax调用会成功返回重新加载的网页吗?

+1

不,重新加载页面将终止在该页面内运行的任何脚本 – 2013-03-06 15:59:27

+1

我从来没有真正考虑过它,但逻辑表明这是不太可能的。 AJAX调用将涉及客户端页面侦听响应;一旦你加载页面,监听器就会消失。服务器可能会发送一个响应,但它会“聋子耳朵”,因为客户端不会再听。 – 2013-03-06 16:00:12

回答

4

这取决于你的意思是'工作'。该请求仍然会被发送到服务器,并且服务器将发回一个响应,但是在接收到响应时分配给您执行的任何回调函数将不会运行,因为分配的函数对象将会丢失当页面重新加载时。

+0

你能更具体吗? ajax响应被返回,它正在寻找的是一个回调函数,它仍然在那里具有相同的名称。你知道具体什么是不同步的函数对象,以便响应不会处理?也许我的意思是如何分配功能对象? – Dave 2013-03-06 16:29:29

+1

我认为所发生的事情的具体细节将是浏览器特定的,但我会假设在页面重新加载时关闭在前一页上打开的任何HTTP连接,所以不会有任何方法强制功能在新页面中定义,以接收来自在旧页面上发送的请求的数据。 – codebox 2013-03-06 17:07:08

+0

好的,谢谢你的输入。 – Dave 2013-03-06 23:56:03

3

号通过重新加载页面,所有的JavaScript(和它的解析器/发动机)被终止,复位,再次初始化。所以任何挂起的(Ajax)调用都会中止。因此,现有的调用不再有效。此外,所有活动(HTTP)连接都(应该)重置,所以服务器可能仍然处理请求(如果它按时到达),但由于连接中止,响应会丢失。

这些事情在重新加载后不起作用的事实是一件好事:因为它会导致意想不到的,容易出错的情况!

+0

感谢您的回答。请看我的后续问题到codebox。 – Dave 2013-03-06 16:31:46

相关问题