Ajax请求完成后,jQuery会关闭TCP连接吗?

Will jQuery close a TCP connection after Ajax request is completed?

本文关键字:TCP 连接 jQuery 请求 Ajax      更新时间:2023-09-26

我有一个jQuery脚本运行每秒钟使用setInterval()。此脚本向php脚本"即handler.php"发出ajax请求

我的jQuery代码看起来像这样

    function checkMessages(){
        $.ajax({
            type: 'GET',
            url: 'handler.php',     
            data: {method: 'getMessages', jSON: true},
            dataType: 'json',
            cache: false,
            timeout: 1000,
            success: function(data) {
                if(requestCounter <= 1){
                    if(requestCounter < 3){
                        requestCounter++;
                    }
                }
                processServerData(data);
            }
        });
    }

    function startCalls(){
            setInterval(function() {
                                checkMessages();
                            }, 1000);
    }

ajax完成后,jQuery会自动关闭TCP连接到服务器还是我必须手动关闭它?

jQuery会自动关闭TCP连接到服务器还是我必须手动关闭它?

简单的答案是:你不应该在意。

jQuery在一个抽象级别(*)上运行,在这个级别上,你既不能手动启动TCP连接,也不能手动断开它们,即使你想这样做。一切都由浏览器处理。


(*) 你可以在浏览器中的JavaScript中做的所有操作都在该抽象层上进行。不仅是为了方便,也是为了安全。

  • 在专注于UI生成的脚本平台中,像手动管理TCP连接这样的事情完全不在范围之内。把这些东西抽象出来是非常明智的。
  • 你不希望随机的网页通过几行脚本访问你的底层系统资源,所以浏览器以这样一种方式构建,他们不能。
  • 你可以告诉浏览器是否保持打开连接或关闭他们立即通过Connection HTTP头。尝试在你的响应中添加Connection: close