最新完美版本-jquery分批执行

<!–

作者:xuduowei

时间:2011年6月

–>

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>
<html xmlns=”http://www.w3.org/1999/xhtml“>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<!– title文字 –>
<title>网站查错</title>
<link rel=”stylesheet” href=”/css/css1.css” type=”text/css” />
<script src=”/js/jquery.js” ></script>
<script src=”/js/project.js” ></script>
<script language=”JavaScript” src=”/js/adminJs/dj.js”></script>
<style type=”text/css”>
#table_title1,#table_title2,#table_title3{background-color:#FFF;padding:4px;}
#table_title3{text-align:center;}
#table_title2{ color:#000;font-style:normal;font-weight:500;}
</style>
</head>

<body>
<!– 内容是总体一个 table–>
<table width=”100%” border=”0″ align=”center” cellpadding=”0″ cellspacing=”0″>
<!– 第1个tr开始–>
<tr>
<td width=”7″><img src=”/images/images1/c_03.jpg” width=”7″ height=”32″ /></td>

<td width=”100%” background=”/images/images1/c_05.jpg”>
<table width=”100%” border=”0″ cellspacing=”0″ cellpadding=”0″>
<tr>
<td width=”40″ align=”center”><img src=”/images/images1/c_10.jpg” width=”21″ height=”25″ /></td>
<td align=”left” class=”lanse”>
<!– 标题栏文字 –>
<strong>网站查错</strong>
</td>
<td width=”104″ align=”right” valign=”top” class=”lanse”></td>
</tr>
</table>
</td>

<td width=”7″><img src=”/images/images1/c_07.jpg” width=”7″ height=”32″ /></td>
</tr>
<!– 第1个tr结束–>

<!– 第2个tr开始–>
<tr valign=top id=”pageAutoHeightTr”>
<td background=”/images/images1/c_18.jpg”></td>

<td >

<!– 这个table里面放的是 搜索栏的内容 –>
<table width=”100%” border=”0″ cellspacing=”0″ cellpadding=”0″ height=”35″ align=”center”  bgcolor=”#f3f3f3″ style=”border:1px solid #bebebe;”>
<tr >
<td width=”22″ height=”33″>&nbsp;</td>
<td width=”456″>

</td>
<td width=”333″>
<!– 这里是搜索按钮 –>
</td>

<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>

<!– 正文内容开始 –>
<!– 第一个表格开始 –>
<table width=”100%” border=”0″ cellspacing=”0″ cellpadding=”0″>
<tr>
<td height=”10″ colspan=”3″>&nbsp;</td>
</tr>
<tr>
<td width=”10″ height=”132″>&nbsp;</td>
<td>

<table width=”100%” border=”0″ cellpadding=”0″ cellspacing=”1″ bgcolor=”#e9e9e9″ style=”padding:4px;”>
<tr>
<td  id=”table_title”  height=”25″>
<form id=”form1″ name=”form1″ method=”post” action=””>
<select name=”checkselect” id=”checkselect” onChange=”showdomain();”>
<option value=”0″ selected >请选择</option>
<option value=”all”>所有站(seo+支撑站)</option>
<?php foreach($showtypename[1] as $typename){ ?>
<option value=”<?php echo $typename[‘id’]?>”><?php echo $typename[‘typename’]?></option>
<?php }?>
</select>
<br/>
<br/>
<textarea name=”textarea” id=”textarea” cols=”45″ rows=”5″></textarea><br/>
<input type=”button” name=”button” id=”button” value=”提交” onclick=”return ccshow(”);” />
<div id=”sfnum”></div>
<div id=”sfnum_end”></div>
<div id=”status”></div>
</form>
<div id=’fachild’></div>
</td>
</tr>
</table>

</td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan=”3″>&nbsp;</td>
</tr>
</table>
<!– 第一个表格结束 –>

 

<br><br><br>

<!– 正文中更多内容开始 –>
<!– 标题部分 –>

<!– 内容部分 –>

</td>
<td background=”/images/images1/c_16.jpg”></td>
</tr>
<!– 第2个tr结束–>

<!– 第3个tr开始–>
<tr>
<td><img src=”/images/images1/c_20.jpg” width=”7″ height=”7″ /></td>
<td background=”/images/images1/c_22.jpg”></td>
<td><img src=”/images/images1/c_24.jpg” width=”7″ height=”7″ /></td>
</tr>
<!– 第3个tr结束–>
</table>
</body>
</html>
<script>
//函数注释写在函数上面,普通注释写在相应的右侧。
var table , tbody;

//创建表格
function createtab(){
table = document.createElement(“table”);
//table.setAttribute(“id”,”table22″);
table.setAttribute(“border”,”0″);
//table.setAttribute(“width”,”500″); //width=”100%” border=”0″ cellpadding=”0″ cellspacing=”1″ bgcolor=”#e9e9e9″
table.setAttribute(“cellPadding”,”0″);
table.setAttribute(“cellSpacing”,”1″);
table.setAttribute(“bgColor”,”#e9e9e9″);
tbody = document.createElement(“tbody”);
table.appendChild(tbody);
document.getElementById(‘fachild’).appendChild(table);
}

//创建tr,td
function createtr(str,domain){

var domain=”<a href=’http://”+domain+”‘ target=’_blank’>”+domain+”</a>”;
//table.setAttribute(“border”,”1″);
var tr1 = document.createElement(“tr”);

var td3 = document.createElement(“td”);
$(td3).html(table.rows.length+1);
tr1.appendChild(td3);

var td1 = document.createElement(“td”);
$(td1).html(domain);
tr1.appendChild(td1);

var td2 = document.createElement(“td”);
$(td2).html(str);
tr1.appendChild(td2);
 

td1.setAttribute(“id”,”table_title1″);
td2.setAttribute(“id”,”table_title2″);
td3.setAttribute(“id”,”table_title3″);

td1.setAttribute(“width”,”400″);
td2.setAttribute(“width”,”300″);
td3.setAttribute(“width”,”100″);

tbody.appendChild(tr1);
return td2;

}

//除去空格
String.prototype.Trim = function(){
return this.replace(/(^\s*)|(\s*$)/g, “”);
}

//js删除表格 ————-暂不使用
/*
function deltable(tabname){
var table = document.getElementById(tabname);
for(var i=0; i<table.rows.length; i++){
table.deleteRow(i);
}
}
*/

//结束删除表格
/* 这个火狐下不兼容,就不用了
function delobj(obj){
if(!obj){
alert(obj);
return;
}
obj.innerHTML=”;
//obj.removeNode(true);
//obj=null;
//delete obj;
CollectGarbage();
}
*/
//获得需要执行的域名-根据选择的类型显示的
function showdomain(){
var checkselect=document.getElementById(“checkselect”).value;
$.ajax({
type: “POST”,
dataType: “json”,//这里返回的格式是json格式。
url: “index.php?c=checkSessionController&a=doshowdomain”,
data: {//传过去的post数据,这里格式是对象格式,比传统写法更严禁,如:&字符过滤。
“id”:checkselect,
“ajaxSend”:1 //这个是给框架设计用的,用了让框架知道是ajax提过来的。目的是能区别错误返回页面(错误提示!–框架中的)
},
error:_ajaxRetrunErrFunction ,//若出现返回数据的异常,被这个函数捕捉。
success: function(myjson){
//if(_ajaxReturnFunction(myjson)==true){//_ajaxReturnFunction是对返回的数据进行预处理,若返回的数据是json格式并且返回值==OK或返回的第一个键值==OK,则这个函数会弹出一个默认的说明以提示操作成功并返回值为真,否则就是提示操作失败,返回值为假。
//}
var textarea_value=””;
for(var i=0;i<myjson.length;i++){
textarea_value+=myjson[i].ftp_domain+”\r”;
}
$(“textarea”).text(textarea_value);
$(“#sfnum”).text(“需要执行站个数:”+myjson.length);
}
});
}

page_num=1;
allnum=0;
nownum=0;
//点击提交按钮的时候要执行的(返回值,回写表格)。
function ccshow(a){
document.getElementById(“button”).disabled=true;
document.getElementById(“status”).innerHTML=”<br/><font color=blue>状态:执行中……</font>”;

page_num=1;//重新初始化
nownum=0;
//document.getElementById(‘fachild’).innerHTML=”;
createtab();//为div再次添加表格
checkshow(a);
}

function checkshow(abc){
if(abc!=”){page_num++;}//让执行的页数加1;
// delobj(document.getElementById(‘fachild’));//清除div内容 ,这个火狐下不兼容,就不用了。
var textarea=document.getElementById(“textarea”).value;
textarea= textarea.Trim();
var checkselect=document.getElementById(“checkselect”).value;
if(textarea==””&&checkselect==”0″){
alert(“请选择类型或输入域名”);
return false;
}
var arrdomain=textarea.split(“\n”);

//定义分批
var onepagenum=10;//定义每次执行的数目;
var begain_i=(page_num-1)*onepagenum;
var pagecount=Math.ceil(arrdomain.length/onepagenum);//总个数除以每页要执行的==需要执行多少批。
var end_i=eval(begain_i)+eval(onepagenum);
var yu=arrdomain.length-begain_i;
if(yu<onepagenum){end_i=eval(begain_i)+eval(yu);}
var a=0; //初始化a,用来判断当前页是否执行完毕的。
//document.getElementById(“sfnum_end”).innerHTML=”1/”+pagecount+”批”;//初始化定义开始显示第一页

for(var i=begain_i;i<end_i;i++){
var adomain=arrdomain[i];
//var adomainstr=”<a href=’http://”+arrdomain[i]+”‘ target=’_blank’>”+arrdomain[i]+”</a>”;
var str=”&nbsp;<font color=red>系统运行结果……</font><br/>”;
if(page_num<=pagecount){

var mytd=createtr(str,adomain);
$.ajax({
type: “POST”,
url: “index.php?c=checkSessionController&a=doCheckSession”,
//cache: false,
// async: false,//默认是true异步操作,若async:false就是同步操作,
context: mytd,//这个参数是为了上下文对象用的,若这里定义了它(mytd)则在后面返回值中可以用$(this)指代mytd这个对象。
data: {
“domain”:adomain
// “nownum”:(i+1),
//”countnum”:arrdomain.length
},

success: function(msg){
$(this).html(msg);
allnum=allnum+1;
nownum=nownum+1;
//alert(allnum);
$(“#sfnum_end”).html(“<br/>已执行”+allnum+”/–当前执行比例:”+nownum+”/”+arrdomain.length);
if(++a==onepagenum){//若当前批都执行完了,就执行下一批。
checkshow(“yes”);
}
if(nownum==arrdomain.length){
document.getElementById(“status”).innerHTML=”<br/><font color=red>状态:完成</font>”;
document.getElementById(“button”).disabled=false;
}
}
});//结束ajax
}
}//结束for

}

</script>


关注公众号,了解更多it技术(it问答网

发表评论

电子邮件地址不会被公开。