【问题标题】:Will jQuery close a TCP connection after Ajax request is completed?jQuery 会在 Ajax 请求完成后关闭 TCP 连接吗?
【发布时间】:2015-08-25 04:47:54
【问题描述】:

我有一个使用setInterval() 每秒运行的jQuery 脚本。此脚本向 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 做的;这是浏览器如何实现 XHR 的问题。不,没有用于关闭 XHR 连接的 API。

标签: javascript jquery ajax tcp


【解决方案1】:

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

简单的答案是:你不应该关心。

jQuery 在抽象级别(*) 运行,您既不能手动启动 TCP 连接,也不能手动断开它们,即使您愿意。一切都由浏览器处理。


(*)您可以在浏览器中的 JavaScript 中执行的所有操作都在该抽象级别上运行。不仅是为了方便,也是为了安全。

  • 在专注于 UI 生成的脚本平台中,手动管理 TCP 连接之类的事情完全超出了范围。将这些东西抽象出来是非常明智的。
  • 您不希望随机网页通过几行脚本访问您的低级系统资源,因此浏览器的构建方式使其无法访问。
  • 您可以通过the Connection HTTP header 告诉浏览器是保持打开的连接还是立即关闭它们。尝试在您的回复中添加Connection: close

【讨论】:

  • 详细抽象的层次;您的 XHR 请求完全有可能永远不会打开 TCP 连接,因为资源被指示在浏览器上缓存一段时间。
  • @Katana314 没错。作为用户(即作为 Web 开发人员),您几乎无法知道哪个是哪个。
  • 谢谢你。我正在尝试解决服务器达到允许的最大 TCP 连接“即 5000”的问题。虽然我可以增加限制,但我需要了解为什么服务器会达到这么多。我的想法是 TCP 连接没有关闭,这导致 TCP 连接达到峰值,导致达到限制。
  • 您是否查看过客户端窗口在页面生命周期内保持打开的 TCP 连接数?增加了吗?
  • 在您确定这是实际原因之后。不要在没有正确诊断的情况下使用任何补救措施。有一些诊断工具可以显示每个进程的连接。 Windows 有非常方便的 TCPView 和 Process Explorer,Linux 有 netstat 和其他几个,我敢肯定。首先在服务器上工作以了解连接的来源和结束位置,然后在客户端上工作以找出导致它们的原因以及是否与您的代码相关。
猜你喜欢
  • 1970-01-01
  • 2022-12-06
  • 1970-01-01
  • 1970-01-01
  • 2015-11-08
  • 2020-07-28
  • 2013-04-22
  • 2023-04-04
  • 1970-01-01
相关资源
最近更新 更多