正确的方式来进行不需要响应的AJAX调用?

NJS*_*NJS 4 javascript ajax

当我不希望从服务器返回响应时,是否有正确的方法进行AJAX调用?我希望服务器保存一些数据,但客户端不需要响应.如果服务器永远不响应,AJAX连接是否会保持打开状态,等待响应直到超时?

我会使用如下的Javascript.这是一个典型的AJAX调用,除了我遗漏了xmlhttp.onreadystatechange事件.

function SaveLabel()
{
    var xmlhttp = null;
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        alert('Your browser does not support this feature.');
        return;
    }

    xmlhttp.open('GET', 'mypage.aspx?label=1');
    xmlhttp.send(null);
}
Run Code Online (Sandbox Code Playgroud)

我发现了一个类似的问题,但它并没有真正回答我的问题:Ajax连接是否在某些时候断开连接?

Mah*_*dsi 5

无论您是否期望(或将来或不会)来自服务器的回复,您都需要保持连接处于打开状态,直到服务器完成为止.

原因是如果客户端在脚本完成执行之前断开连接,大多数Web服务器将终止请求.

服务器不必像返回数据那样"响应",它只需要"返回".

即回答你的问题"Ajax连接在某些时候断开连接?":是的,当服务器终止连接时.

因此,您需要做的是确保ASP(X)脚本在完成其工作后立即终止.不要让它永远运行,将数据传递给需要长时间运行处理的辅助守护程序/服务等.