javascript中的setInterval php变量

javascript中的setInterval php变量,javascript,php,variables,combinations,setinterval,Javascript,Php,Variables,Combinations,Setinterval,我正在尝试在我的网站上发布一个更新的ping,没有让它一直重新加载,但是当我尝试发布初始ping时,它不会在我设置的时间间隔后更新 index.php: <script> setInterval(document.write('<?php echo json_encode(getPingout());?>'),100); </script> functions.php: <?php function getPingou

我正在尝试在我的网站上发布一个更新的ping,没有让它一直重新加载,但是当我尝试发布初始ping时,它不会在我设置的时间间隔后更新

index.php:

<script>

    setInterval(document.write('<?php echo json_encode(getPingout());?>'),100);
</script>
functions.php:

    <?php    
    function getPingout() {
            // some function that finds the ping of the server
        return $server->getPing();
    }
?>

这不是javascript和PHP协同工作的方式

为了在不重新加载页面的情况下刷新数据,必须异步请求数据。搜索AJAX或XHR,我真的建议您研究类似jQuery的东西,因为与自己编写javascript相比,编写代码和调试会节省大量时间

如果要在jQuery中执行此操作:

//this means run when page is ready
$(function(){
  setInterval(function(){
      //Send POST request to ping.php
      $.post('ping.php',{},function(){
        //Append the result to the body in a new div
        $('body').append($('<div>'+data+'</div>'));
      });
  },100);
});
您的ping.php应该只返回ping而不返回其他内容


不要让dollarsigns迷惑你,在PHP中它是变量的前缀,但在javascript/jquery上下文中它只是一个变量,包含调用函数的jquery对象。

你不能在加载页面后让PHP运行多次。该PHP在页面加载时执行一次

要完成您试图完成的任务,您应该使用一些javascript和ajax调用

$(function(){
   function pingServer(){
     $.post('/ping.php',function(data){
       console.log('server is ok');
     });
   }

   setInterval( pingServer, 4000 );
});

此外,您可能不需要每隔100次ping一次服务器。否则,您可能会遇到问题。

了解页面生命周期。对于选择正确答案的mods:w3schools.com?说真的,对这个关于堆栈溢出的家伙来说,没有比引用伏地魔的webdevelopment更好的解释了吗?我发现这是最简单的解决方法me@user3586172所以,请投票接受这个答案。