javascript中的setInterval php变量
我正在尝试在我的网站上发布一个更新的ping,没有让它一直重新加载,但是当我尝试发布初始ping时,它不会在我设置的时间间隔后更新 index.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
<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所以,请投票接受这个答案。