我使用php脚本解析远程xml文件并将网页上的输出打印成div。由于我需要输出必须与当前播放的曲目同步,我使用Javascript每20秒重新加载div内容。在测试页面时,我遇到了托管问题,并收到消息“超出IP连接限制”,无法访问站点。我已经改变了IP来解决这个问题。是否有解决方法来解析元数据而不会碰到服务器并遇到Web托管问题?
<script>
setInterval(function() {
$('#reload').load('current.php');
}, 20000);
</script>
答案 0 :(得分:2)
由于网页是基于客户端的实体,因此它本质上无法接收任何未请求的数据。话虽如此,您可以考虑一些选项。
首先,我不知道您使用的是哪个网络主机,但是它们应该让您每隔20秒刷新一次页面(或者像您一样提出请求),所以我会就此与他们联系。对于每个连接,拒绝服务攻击应该更像每秒2或3次。可能有一个更好的答案,我只是没有看到,但乍一看这是我对此的看法。
您可能需要考虑的一个选项是使用Web Socket,这是HTML 5的一项新功能,使Web服务器能够在访客浏览器之间保持开放连接并来回发送数据包。这可以防止浏览器每20秒不断轮询服务器。当然,这些是新的,我相信它们只适用于Safari和Chrome。我没有尝试过它们,但计划将来使用它们。
总之,我不知道比经常轮询服务器以检查更改更好的方法。根据我的浏览器的XMLHttpRequest选项卡,这就是gmail查找新消息的方式。如果主机每个时间间隔不允许更多请求,可能会降低轮询服务器或切换到其他主机的频率。