ajax请求中动态显示问题

1.jquery方式

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ajax加载loading图标</title>
</head>
<body>
<form id="test-form" action="test.php" method="post">
<input type="text" name="username">
</form>
<button id="btn">提交</button>
<div id="loading"></div>
<div id="res"></div>
</body>
<script>
$('#btn').click(function(){
$.ajax({ 
url:$('#test-form').attr('action'), //发送后台的url
type:'post', 
data:$('#test-form').serialize(), //序列化表单内容
dataType:'text', //后台返回的数据类型
timeout:15000, //超时时间
beforeSend:function(XMLHttpRequest){ 
$("#loading").html("<img src='./images/loading.gif' />"); //在后台返回success之前显示loading图标
}, 
success:function(data){ //data为后台返回的数据
$("#loading").empty(); //ajax返回成功,清除loading图标
$('#res').html('ajax请求成功!');
}
}); 
});
</script>
</html>

2.js方式

xmlhttp.onreadystatechange = function(){
var loadingdiv = document.getelementbyid("loading"); 
loadingdiv.innerhtml = "loading..."; 
loadingdiv.style.right = "0"; 
loadingdiv.style.top = "0";
loadingdiv.style.display = "block"; 
//load completed
if(xmlhttp.readystate == 4) {
loadingdiv.style.display = "none"; 
loadingdiv.innerhtml = ""; 
if(xmlhttp.status == 200) {
var str = xmlhttp.responsetext;
/* do something here ! */
}
else
alert("error!" + "nstatus code is: " + xmlhttp.status + "nstatus text is: " + xmlhttp.statustext);
}
}

 

function toAjax(url,data,type,callback) {

var i;

$.ajax({

url:url,

type:type,

data:data,

dataType:"json",

error:function(){

alert("错误!");

},

beforeSend: function () {

i = before();

},

success:function(result) {

Load(i);

callback && callback(result);

}

});

}

function before(){

return layer.msg('加载中...', {icon: 16,shade: [0.5, '#f5f5f5'],scrollbar: false,offset: '0px', time:100000}) ;

}

function Load(index){

layer.close(index);

}

用了layer的loading 推荐layer,弹窗,样式还不错!!!

posted on 2018-05-29 11:07  幻雪奇缘  阅读(969)  评论(0编辑  收藏  举报

导航