【问题标题】:setInterval() ajax call is working on local server but giving error in online serversetInterval() ajax 调用在本地服务器上工作,但在在线服务器上出错
【发布时间】:2020-08-27 03:25:21
【问题描述】:

我有一个网站,其中有一个聊天室,我用来发送 AJAX 请求以检查某人是否收到了新消息。如果收到一条新消息,它会被附加到 DOM 而不刷新页面(如 Facebook)。

我正在使用:-

setInterval(check_if_new_message, 1000);

即每隔一秒就有一个 AJAX 请求检查消息。

当我尝试在本地服务器上运行时,它运行良好。但后来我在 GoDaddy 上购买了 Starter Shared Linux Hosting,然后我的 ajax 请求无法正常工作。前 100-150 个请求工作正常,但之后,它会在浏览器控制台中显示类似 net::ERR_CONNECTION_CLOSED 的错误。

setInterval(check_if_new_message, 1000);

【问题讨论】:

  • 这与 PHP 或 MySQL 有什么关系?
  • 检查你的服务器日志;在这个问题上没有足够的信息来开始甚至“猜测”这个问题。你得到一个JS错误吗?听起来您正在达到某种 API 限制,但没有其他信息。
  • 欢迎来到 Stack Overflow。请阅读stackoverflow.com/help/minimal-reproducible-example 并添加更多代码/附加信息。

标签: ajax


【解决方案1】:

你可以看到你正在使用:

setInterval(check_if_new_message, 1000);

这意味着您每 1 秒调用一次 check_if_new_message。这在 localhost 中运行良好,因为它在您的计算机上。但是,当您在实时服务器上尝试此操作时,您会得到:

net::ERR_CONNECTION_CLOSED

这是因为您的服务器无法处理这么多的请求。您的服务器的 RAM 可能较少。

这对于实时聊天应用程序来说不是一个好习惯。

如果您想制作一个实时聊天应用程序,请使用 WebSocket

WebSocket 的有用资源:

What is WebSocket?

WS library

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-28
    相关资源
    最近更新 更多