在Firefox中正常工作,但在完成脚本后在IE和chrome更新

时间:2015-01-02 06:11:11

标签: jquery internet-explorer firefox

我想用async = false ajax制作脚本来制作一些控件并保存。 我想向用户展示这一进展。但是在完成整个脚本后IE和chrome更新Label1。 Firefox运行正常。有谁知道我做错了什么?

感谢您的帮助。

mydata.php

if ($_POST['oper']=='wait')
 {
  sleep(2);
 }   

CODE

function myFunc()
 {
  $.ajax({ type: 'POST',cache: false, url: 'mydata.php', data: {oper: 'wait'}, dataType: 'json', async: false});
  $('#Label1').html('1');
  $.ajax({ type: 'POST',cache: false, url: 'mydata.php', data: {oper: 'wait'}, dataType: 'json', async: false});
  $('#Label1').html('2');
  $.ajax({ type: 'POST',cache: false, url: 'mydata.php', data: {oper: 'wait'}, dataType: 'json', async: false});
  $('#Label1').html('3');
  }




 <span name='Label1' id='Label1'>XXX</span><button onclick='myFunc()'>Save</button>

2 个答案:

答案 0 :(得分:0)

试试这个:

function myFunc()
{
  $.ajax({ type: 'POST',cache: false, url: 'mydata.php', data: {oper: 'wait'}, dataType: 'json', async: false});
  $('#Label1').delay('1000').html('1');
  $.ajax({ type: 'POST',cache: false, url: 'mydata.php', data: {oper: 'wait'}, dataType: 'json', async: false});
  $('#Label1').delay('1000').html('2');
  $.ajax({ type: 'POST',cache: false, url: 'mydata.php', data: {oper: 'wait'}, dataType: 'json', async: false});
  $('#Label1').delay('1000').html('3');
  }

但我建议您使用Ajax Success / Complete功能,而不是等待ajax完全完成。

这样的事情:

$.ajax({ type: 'POST', cache: false, url: 'mydata.php', data: {oper: 'wait'}, dataType: 'json', async: false, success: function() { /* Do whatever you want here when your ajax has been successful. */}, error: function() { /* Here you can handle the errors thrown by ajax */ alert(e);}, complete: function() { /* Put the code here what you want to run irrespective of success or error. */ }})

答案 1 :(得分:0)

对于那个帖子,你好吧。 async = false已弃用,我必须找到另一种方式。谢谢你的帮助。