3

得到这个文件'functions.php':

<?php
function test ($url){
$starttime = microtime(true);
$valid = @fsockopen($url, 80, $errno, $errstr, 30);
$stoptime = microtime(true);
echo (round(($stoptime-$starttime)*1000)).' ms.';

if (!$valid) {
   echo "Status - Failure";
} else {
   echo "Status - Success";
}
}
    test('google.com');
?>

我想每 10 秒左右运行一次,有人告诉我使用 ajax 请求,但我不完全理解它是如何工作的。我尝试创建一个新文件“index.php”,然后将其写入其中:

<script>
var milliSeconds = 10000; 
setInterval( function() {
    //Ajax request, i dont know how to write it
    xmlhttp.open("POST","functions.php",true);
    xmlhttp.send();
}, milliSeconds);
</script>

我将两个文件都放入 ft​​p 但没有任何反应,有人可以帮我写一个合适的 ajax 请求吗?

编辑:编辑错字,仍然不起作用

4

3 回答 3

1

所以,听起来您唯一的问题是您不知道如何编写 XHR 请求。看看使用 XMLHttpRequest。用你的问题评论这个答案。

于 2013-03-05T08:40:05.663 回答
1
var milliSeconds = 1000;

setInterval( function() {

var xmlhttp;

if (window.XMLHttpRequest) // code for IE7+, Firefox, Chrome, Opera, Safari
{
    xmlhttp=new XMLHttpRequest();
}
else
{
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); // code for IE6, IE5
}

xmlhttp.onreadystatechange=function()
{
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
      {
         console.log ( xmlhttp.responseText );
      } 
}

xmlhttp.open("POST","functions.php",true);
xmlhttp.send();


}, milliSeconds);

您必须根据浏览器加载 xmlhttp 请求对象(xmlhttp=new XMLHttpRequest();),然后在 xmlhttp 状态更改时设置事件处理程序(xmlhttp.onreadystatechange=function())。当它发生变化时,检查状态是否为 200(成功),然后对响应做任何你想做的事情。(我将它打印到控制台)

于 2013-03-05T08:50:46.140 回答
0
xmlhttp.open("POST","funkction.php",true); 

应该:

xmlhttp.open("POST","functions.php",true);
于 2013-03-05T08:30:23.650 回答