Javascript包含文件并每30秒刷新一次
我有3个文件,我称之为:Javascript包含文件并每30秒刷新一次,javascript,php,html,api,file-get-contents,Javascript,Php,Html,Api,File Get Contents,我有3个文件,我称之为: $nowplaying = file_get_contents("/api/static/nowplaying"); $dj = file_get_contents("/api/static/dj"); $listeners = file_get_contents("/api/static/listeners"); 我想使用 '.$dj.' '.$nowplaying.' '.$listeners.' 但是我正在拉取的文件的内容每30秒更新一次,因此我需要
$nowplaying = file_get_contents("/api/static/nowplaying");
$dj = file_get_contents("/api/static/dj");
$listeners = file_get_contents("/api/static/listeners");
我想使用
'.$dj.'
'.$nowplaying.'
'.$listeners.'
但是我正在拉取的文件的内容每30秒更新一次,因此我需要刷新显示的数据,而不刷新页面。我认为javascript jquery可能是其中之一,但我对它不太熟悉
非常感谢 如果您有jQuery
setInterval(function(){
$.get("/api/static/nowplaying",function(data){
// Do something with data
});
},30000);
使用javascript有点像
var request = new XMLHttpRequest();
setInterval(function(){
request.open('GET', '/api/static/nowplaying', true);
request.send();
},30000)
request.onload = function() {
if (request.status >= 200 && request.status < 400) {
// Success!
var data = request.responseText;
} else {
// We reached our target server, but it returned an error
}
};
var-request=new-XMLHttpRequest();
setInterval(函数(){
open('GET','/api/static/nowplaying',true);
request.send();
},30000)
request.onload=函数(){
如果(request.status>=200&&request.status<400){
//成功!
var data=request.responseText;
}否则{
//我们到达了目标服务器,但它返回了一个错误
}
};
是的,我认为使用jquery/JavaScript是您想要的,而且非常简单。只需在JavaScript中使用setInterval()
方法,就可以让它按计划重复运行函数。既然你对这方面还不太熟悉,我就试着举个简单的例子。下面的代码每30秒运行一次
<script type="text/javascript" src="//code.jquery.com/jquery-3.1.1.js">
</script>
<script type='text/javascript'>
var myVar
function updateDiv(){
clearInterval(myVar);
alert('your code should go here');
myVar = setInterval("updateDiv()", 30000);
}
$(document).ready(function(){
myVar = setInterval("updateDiv()", 30000);
});
var myVar
函数updateDiv(){
净距(myVar);
警报(“您的代码应该在此处显示”);
myVar=setInterval(“updateDiv()”,30000);
}
$(文档).ready(函数(){
myVar=setInterval(“updateDiv()”,30000);
});
您可以在这里查看:熟悉这一点可以通过ajax完成。您可以在这里使用jquery for sure-material进行研究:如果要清除并设置每次调用的间隔,最好只使用只触发一次的
setTimeout
。这意味着您不需要清除,只需在末尾设置另一个超时。而且,只有在下一个间隔触发之前无法完成处理时,才需要执行所有这些操作。如果你的处理时间超过30秒(间隔时间),那么我建议用某种方式重构它。是的,仍然在挣扎。。试过上面所有的方法,还是什么都没有(这是javascript。它应该在页面顶部的标记之间,并且应该有一个和前后。你这样做了吗?为了清晰起见,我将添加它……我只需要包含stats.php文件,该文件回显文本:(我更新了上面的脚本,以包含jquery库的链接(你可能错过了该链接)。现在它将每30秒向您发送一次警报。这只是一个开始。您也可以在jsfille上尝试。