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 = "数据保存成功";
}
解决方案 »
- js 中的switch如何使用“>6”这样的比较条件?
- firefox 下的js提交不执行的bug 在线等ing……
- firefox 下 return false 怎样还是把表单提交了
- 如何使用Js消去图片热区
- 今天在研究vista侧边栏,请问各位:如何得到outlook联系人,msdn找到 C# 的代码,但是不知道用javascript怎么写,非常感谢!
- 父窗口刷新后,如何能找到子窗口?
- 如何能在一进入页面,就让光标focus在一个指定的input里?在线等待
- javascript的问题
- 字符编码问题,空指针异常,求大神支招~~~~~
- cookie的domain属性问题
- 求解这种菜单导航怎么做?
- 疑难问题求解
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 = "数据保存成功"; 写到回调函数内