【发布时间】:2011-09-02 05:30:56
【问题描述】:
我有一个每 2000 毫秒调用一次的 javascript 函数。我想停止这种情况,这样我就可以让用户在页面上执行其他操作,而无需再次调用它。这可能吗?这是每 2000 毫秒调用一次的函数:
window.setInterval(function getScreen (sid) {
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("refresh").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","getScreen.php?sid="+<?php echo $sid; ?>,true);
xmlhttp.send();
},2000);
【问题讨论】:
-
这是一个 DoS 漏洞。如果您的 XMLHttpRequest 花费的时间超过 2 秒(由于流量/负载)怎么办?您将堆积请求并冒着关闭服务器的风险。考虑阅读this 文章并使用超时(或)适当的调度。
标签: javascript jquery