Javascript状态循环
好的,javascript中的一件简单的事情,我甚至无法解决在web上搜索的问题。我想我甚至找到了正确的东西,但是没有放在正确的地方 这段代码告诉我流是在线还是离线。但是我该如何更改状态并每5秒更新一次Javascript状态循环,javascript,loops,Javascript,Loops,好的,javascript中的一件简单的事情,我甚至无法解决在web上搜索的问题。我想我甚至找到了正确的东西,但是没有放在正确的地方 这段代码告诉我流是在线还是离线。但是我该如何更改状态并每5秒更新一次 $(function () { $.ajax({ type: 'GET', url: "http://xmychannelx.api.channel.livestream.com/2.0/livestatus.json?callback=?",
$(function () {
$.ajax({
type: 'GET',
url: "http://xmychannelx.api.channel.livestream.com/2.0/livestatus.json?callback=?",
dataType: 'jsonp',
success: function (jsonp) {
// parse the JSON data on success
var channel = eval(jsonp);
liveChannel = channel.channel.isLive;
if (liveChannel == true) {
document.getElementById('mydiv').innerHTML = '<p style="color: #00FF00">Online!</p>';
} else {
document.getElementById('mydiv').innerHTML = '<p style="color: #C0C0C0">Offline!</p>';
}
}
});
});
$(函数(){
$.ajax({
键入:“GET”,
url:“http://xmychannelx.api.channel.livestream.com/2.0/livestatus.json?callback=?",
数据类型:“jsonp”,
成功:函数(jsonp){
//成功解析JSON数据
var通道=评估(jsonp);
liveChannel=channel.channel.isLive;
if(liveChannel==true){
document.getElementById('mydiv').innerHTML='联机!
';
}否则{
document.getElementById('mydiv').innerHTML='脱机!
';
}
}
});
});
使用设置超时功能
setTimeout(function(){
//your function
foo();
},1000);
例如:
var myAjaxCall = function() {
$.ajax({
type: "GET",
url: options.feedUrl,
dataType: "xml",
async:options.sync,
success: function(xml) {
// todo
}
};
var ResInterval = window.setInterval(myAjaxCall, 60000); // 60 seconds
停止:
window.clearInterval(ResInterval);
试试这个:
function checkStatus() {
$.ajax({
type: 'GET',
url: "http://xmychannelx.api.channel.livestream.com/2.0/livestatus.json?callback=?",
dataType: 'jsonp',
success: function (jsonp) {
// parse the JSON data on success
var channel = eval(jsonp);
liveChannel = channel.channel.isLive;
if (liveChannel == true) {
document.getElementById('mydiv').innerHTML = '<p style="color: #00FF00">Online!</p>';
} else{
document.getElementById('mydiv').innerHTML = '<p style="color: #C0C0C0">Offline!</p>';
}
}
});
}
$(function() {
setInterval(checkStatus, 5000);
});
函数检查状态(){
$.ajax({
键入:“GET”,
url:“http://xmychannelx.api.channel.livestream.com/2.0/livestatus.json?callback=?",
数据类型:“jsonp”,
成功:函数(jsonp){
//成功解析JSON数据
var通道=评估(jsonp);
liveChannel=channel.channel.isLive;
if(liveChannel==true){
document.getElementById('mydiv').innerHTML='联机!
';
}否则{
document.getElementById('mydiv').innerHTML='脱机!
';
}
}
});
}
$(函数(){
设置间隔(检查状态,5000);
});
这将每隔5000毫秒(5秒)调用函数
checkStatus
。设置一个计时器,每5秒触发一次ajax调用。。。(这被认为是一种不好的做法)。您应该使用另一个函数(命名或匿名)。它的工作方式与我的代码类似,但没有循环,可能是因为代码位于html中的.js文件中?不是在html上。我的错是,我使用了setTimeout
而不是setInterval
setTimeout
只调用函数一次,但是setInterval
无限期地调用它。我已经修改了我的答案。