不报错。。说了如果前面放个alert()就会显示$("#msg").html()的内容
我在IE下调试  是按顺序执行的

解决方案 »

  1.   

    你可以尝试把之前的字符串全部累加起来,看看究竟有没有输出.
    $("#msg").html($("#msg").html()+'新增字符串');
      

  2.   

    $("#msg").html("")里面的字符串全部都不显示如果前面加个alert 就会实时显示出来
      

  3.   

    刚刚测试了。。是输入了!但是是在ajax执行完成之后再显示在页面上的
      

  4.   

    第一步是必定执行的,但ie会缓存ajax请求,表现是执行回调函数但不会把请求发到服务端。所以可以瞬间完成这个请求,每个请求都瞬间完成的话,你就看不到中间的过程了,只能看到最终那一句的结果,
    简单的解决方法是用时间戳避免缓存
     url: "AjaxHandler.ashx?paras=" + $(".checkchild:checked").eq(i).attr("id") + "&type=CreatSend"+"&d="+new Date().getTime(),
      

  5.   

    楼主说alert就会执行,
    我推测代码执行了的,你所有的消息都是写在了id为msg的那个元素里面了,程序执行不是一下就过去了,后面的执行覆盖了前面的执行啊,所有只显示了最后面的结果吧,alert会中断js的执行,自然可以看到中间的结果了你试试把第一步改成msg1
    第一步改成msg2,
    再运行看看效果
      

  6.   

    for(){
    ajax()
    }
    $("#msg");//这里直接执行是严重错误,ajax执行是需要时间的,还没返回值你就已经急着输出了。
    像这种应该只发一次post ajax 而不是选择了多少个就发多少个ajax,用户体验与服务器优化都不利。
      

  7.   

    async:false 用同步的ajax用户体验就好了么?
    如果有100个checkbox,你要发送100个ajax请求?为何不保存好需要ajax post的数据,一次发送过去?
      

  8.   

    修改一下这段代码
    $(function(){
       //TODO 代码放到这里
    })
      

  9.   

    这样子能实时提示用户在干嘛啊提醒完全是可以用模拟的。用低性能换取可有可无的提醒,似乎有些不划算。
    如果真的要实时提醒,传统ajax无法高效满足你的需求。
    websocket还可以。
      

  10.   

    我觉得这写法有问题。缺少了条件判断导致逻辑不够强烈,可能会造成这样的情况。如果我写,应该是假如checked了-----执行第二步(ajax步)------否则------执行原始状态(或第一步)这样就可以了。