【问题标题】:How do I stop clients from sending ajax request to the server?如何阻止客户端向服务器发送 ajax 请求?
【发布时间】:2014-12-03 08:51:42
【问题描述】:

我有一个 Web 应用程序,其中客户端向 node.js 服务器发送 ajax 请求以获取更新请求,以检查客户端用户是否有任何通知... 此请求每 30 秒发生一次,即使我对其进行了性能测试,我的服务器端也无法真正接受它。我已经将间隔时间更新为每 2 分钟一次,但未刷新的客户端仍然每 30 分钟发送一次请求。我怎样才能让这些客户按需获取更新并阻止他们发送这些请求?

提前致谢, 伊泰

编辑: 只是为了做到这一点,我没有限制它,我已经有了。问题是用户没有刷新页面,因此包含该限制的客户端代码不会在他的浏览器上刷新。 所以 Ajax 与 web-sockets 并不是我真正的问题......

【问题讨论】:

  • 下次你需要更好地利用last-modified、expires和cache-control headers。您现在可能是 SOL,具体取决于现有用户如何配置和缓存它。也就是说,如果您的节点盒不能每 30 秒处理一次请求,那么在 mudville 中听起来很不对劲。
  • 使用Socket进行实时更新,setInterval会在几分钟内发送大量请求
  • 请参阅编辑以进行澄清...

标签: javascript jquery ajax node.js web-services


【解决方案1】:

javascript 的 setinterval() 函数在您的情况下可能非常有用。

您可以通过通过您选择的特殊间隔参数配置的 setinterval() 函数间接调用该函数来控制函数执行的频率。然后该函数将以毫秒为单位指定的间隔执行。

您可以通过 setinterval() 函数间接调用发送 ajax 请求的函数来简单地限制 ajax 请求,并将间隔限制为 30 秒。

希望对你有帮助!!

请发表评论以获得更多说明。

【讨论】:

  • 我没有限制它,我已经有。问题是用户没有刷新页面,因此包含该限制的客户端代码不会在他的浏览器上刷新。
  • 好吧!!所以我认为 html5 websockets 在这种情况下是一个更好的选择,正如其他 cmets 中所指定的那样。另外,请看一下 comet。我为你找到了一篇不错的文章。 pointsoftware.ch/en/…
【解决方案2】:

我认为您应该在 NodeJS 服务器中使用 Web 套接字来与网站建立持久但轻量的连接。

查看 Socket.IO,例如:http://socket.io

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-15
    • 2015-06-15
    • 2019-05-16
    • 1970-01-01
    • 2018-06-03
    • 2016-02-27
    • 2021-11-09
    • 1970-01-01
    相关资源
    最近更新 更多