什么是Ajax调用的寿命?寿命、Ajax

2023-09-10 19:12:53 作者:死在回忆里

让我们说我有这个code在javascript:

 函数doAnAjaxCall(){
    VAR xhr1 =新XMLHtt prequest();
    xhr1.open(GET,/ myLink的,真正的);
    xhr1.onreadystatechange =功能(){
        如果(this.readyState == 4和&安培; this.status == 200){
            警报(我有一个回应!);
        }
    };
    xhr1.send(空);
}
 

和让code在servlet是:

 公共类RootServlet延伸的HttpServlet {
    公共无效的doGet(HttpServletRequest的REQ,HttpServletResponse的RESP)抛出IOException异常{
        resp.getWriter()写(这是怎么回事DOC?)。
        resp.setStatus(200);
    }
}
 

将xhr1仍然等待在readyState的新变化?或它尽快得到的第一反应关闭? 如果它仍然是开放的,将它导致内存泄漏/慢浏览器过了一段时间,积累了一些这些的? 我应该始终调用resp.getWriter()。关闭()在这个servlet code结束了吗?

这个在ajax里面怎么调用呀

和,最后,在jQuery的球迷在那里:

确实 $。阿贾克斯()表现得像 XMLHtt prequest()在这方面?

解决方案   

将xhr1仍然等待在readyState的新变化?或者是,一旦它得到的第一反应关闭?如果它仍然是开放的,它会经过一段时间导致内存泄漏/慢的浏览器,并积累了一些这些的?的

在幕后,它仍然是开放的。它(和内存占用),然而在web浏览器引擎的责任。它保持在具有每个域的最大限制反正池一定数量的连接。 MSIE例如有一个bug,导致漏液离开时,他们仍在运行,而用户卸载(关闭)的窗口。

  

我应该始终调用 resp.getWriter()。关闭()在这个servlet code结束了吗?的

没有必要。该servletcontainer将强行关闭。自己关闭它只有prevents一些(越野车),code在响应链进一步写入到响应体的风险。有关更多详细信息,请参阅this回答。

  

,最后是对jQuery的球迷在那里:确实 $阿贾克斯()表现得像 XMLHtt prequest( )在这方面?的

它使用 XMLHtt prequest 在幕后(仅当浏览器支持,否则它是MSIE ActiveX对象)。它构建在每次调用一个新的。打开href="http://$c$c.jquery.com/jquery-latest.js" rel="nofollow"> unminified源$ C ​​$ C 的