ajax的定时调用每5秒调用一次
作者:
这篇文章主要介绍了关于ajax的定时调用,本例为每5秒调用一次,大家可以根据自己的需求更改
复制代码 代码如下:
function initXMLRequest(){
if (window.ActiveXObject) {
xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
} else {
if (window.XMLHttpRequest) {
xmlRequest = new XMLHttpRequest();
}
}
}
function sendHTTPRequest(){
initXMLRequest();
var url = "monitor!taskdata.action"; //调用的servlet
if (xmlRequest) {
xmlRequest.open("POST", url, true);
xmlRequest.send(null);
xmlRequest.onreadystatechange = isDataExists;
//使用方法回调,每5秒调用一次
setTimeout("sendHTTPRequest()",5000);
}
}
function isDataExists(){
if (xmlRequest.readyState == 4) {
if (xmlRequest.status == 200) {
var data = eval("("+xmlRequest.responseText+")");
// 获取tbody的表格内容
var taskTable = document.getElementById("tasktbody");
for(var i=taskTable.childNodes.length-1;i>=0;i--){
taskTable.removeChild(taskTable.childNodes[i]);
}
$.each(data, function(i,val){
var newTR = taskTable.insertRow(taskTable.rows.length);
newTR.id="taskdata_"+(i+1);
newTR.ondblclick=getdetail;
newTR.onclick=selectRow;
backColor(val.taskstatus,newTR);
var newNameTD=newTR.insertCell(0);
newNameTD.innerHTML = val.taskname;
newNameTD.id="taskname_"+(i+1);
var newStatusTD=newTR.insertCell(1);
newStatusTD.innerHTML = val.taskstatus;
newStatusTD.id="taskstatus_"+(i+1);
var newArgTD=newTR.insertCell(2);
newArgTD.innerHTML = val.data_start_time;
var newOtherArgTD=newTR.insertCell(3);
newOtherArgTD.innerHTML = val.schedule_interval;
var newdateformatTD=newTR.insertCell(4);
newdateformatTD.innerHTML = val.next_execution_time;
var newbackwordTD=newTR.insertCell(5);
newbackwordTD.innerHTML = val.taskdetailscount;
var newpriorityTD=newTR.insertCell(6);
newpriorityTD.innerHTML = val.statusruncount;
var newleftTD=newTR.insertCell(7);
newleftTD.innerHTML = val.statusfinishcount;
var newlefttimeTD=newTR.insertCell(8);
newlefttimeTD.innerHTML = val.statuserrorcount;
});
}
}
}