function aaa() {
document.getElementById("tt").value = "数据保存中,请稍后...";
//这里的方法调用AJAX去操作数据,做了延时,大概要10秒的处理时间。
document.getElementById("tt").value = "数据保存成功";
}
为什么“tt”的值只能最后显示“数据保存成功”,而“数据保存中,请稍后”无法显示出来...像下面这样加个alert却又可以了。function aaa() {
document.getElementById("tt").value = "数据保存中,请稍后...";
alert("aaaaaaa");
//这里的方法调用AJAX去操作数据,做了延时,大概要10秒的处理时间。
document.getElementById("tt").value = "数据保存成功";
}
document.getElementById("tt").value = "数据保存中,请稍后...";
//这里的方法调用AJAX去操作数据,做了延时,大概要10秒的处理时间。document.getElementById("tt").value = "数据保存成功";
}这怎么延时啊? javascript又没有线程睡眠document.getElementById("tt").value = "数据保存成功";
除非你把这句写在 ajax的回调函数里,那样的话,"数据保存中"就会显示
至于那个 alert("xxxx")
只要你不按确定,整个javascript程序执行流程都将被挂起停止,直到按下alert的确定
如果是异步的,那么document.getElementById("tt").value = "数据保存成功";这条语句不会等到ajax操作陈功才执行,而是直接执行。那当然无法显示前面的数据保存中,请稍后...,因为你后面的直接把它给覆盖了。。
正确的写法应该是把document.getElementById("tt").value = "数据保存成功";这条语句写到ajax操作成功的回调函数之中
document.getElementById("tt").value = "数据保存中,请稍后...";
setTimeout("document.getElementById('tt').value = '数据保存成功';",10000);这样试试 。alert了 要等确定后才执行下面的代码 。
这个一般是ajax成功后再显示吧.
function aaa() {
document.getElementById("tt").value = "数据保存中,请稍后...";
//这里的方法调用AJAX去操作数据,做了延时,大概要10秒的处理时间。
//一般来说,ajax都是异步的,虽然你的操作需要10秒钟,但是ajax并不会等待,直接就继续运行下一步了
//所以,"数据保存中,请稍后..."并不是没有显示,而是刚显示,马上又被改成"数据保存成功"了
//所以,如果在这中间加一句alert就能看到了
document.getElementById("tt").value = "数据保存成功";
}
解决的办法,就是使用回调函数,比如在jquery中
$.ajax(
{//其他参数
success:function(){
document.getElementById("tt").value = "数据保存成功";
}
}
);
如:$.ajax({
type:"...",
url:"...",
data:"...",
beforeSend: function(){
// "数据保存中,请稍后..."
},
success: function(){
// "数据保存成功"
}
// ...
});
1、 设置ajax 同步请求
2、把 document.getElementById("tt").value = "数据保存成功"; 写到回调函数内