1

我使用 php 脚本解析远程 xml 文件并将网页上的输出打印到 div 中。由于我需要输出必须与当前播放的曲目同步,我使用 Javascript 每 20 秒重新加载 div 内容。在测试页面时,我遇到了托管问题,并收到消息“超出 IP 连接限制”,站点无法访问。我已经更改了 IP 来解决这个问题。是否有一种解决方法来解析元数据而不会碰到服务器并遇到网络托管问题?

<script>
setInterval(function() {
    $('#reload').load('current.php');
}, 20000);
</script>
4

1 回答 1

2

由于网页是基于客户端的实体,因此它本质上无法接收任何未请求的数据。话虽如此,您可以考虑一些选择。

首先,我不知道您使用的是哪个虚拟主机,但他们应该让您每 20 秒刷新一次页面(或像您一样发出请求)不止一次,所以我会就此与他们联系。拒绝服务攻击应该更像是每个连接每秒 2 或 3 次。可能有一个更好的答案,我只是没有看到,但乍一看,这是我的看法。

您可能要考虑的一个选项是使用Web Socket,这是 HTML 5 的一项新功能,使 Web 服务器能够在访问者的浏览器之间保持开放连接并来回发送数据包。这可以避免浏览器每 20 秒不断地轮询服务器。当然,这些都是新的,我相信它们只适用于 Safari 和 Chrome。我还没有尝试过它们,但计划在未来。

总之,我不知道比经常轮询服务器以检查更改更好的方法。根据我浏览器的 XMLHttpRequest 选项卡,这就是 gmail 查找新消息的方式。如果您的主机不允许您在每个时间间隔内发出更多请求,则可能会降低您轮询服务器的频率或切换到不同的主机。

于 2012-05-17T17:48:24.903 回答