首頁  >  文章  >  後端開發  >  javascript - ajax非同步請求數據,ios螢幕閃爍

javascript - ajax非同步請求數據,ios螢幕閃爍

WBOY
WBOY原創
2016-12-01 01:27:501163瀏覽

做一個聊天頁面,ajax異步請求數據時,不論有無數據返回,ios都會閃動一下,而android不會閃動 ,這是怎麼回事,該如何解決

<code>$(document).ready(function(){
        $('.loading_box').attr('style','display:none');
        ajaxform();
        window.setInterval("ajaxform()",3000); 

    });
    

function ajaxform(){
    var id=$(".main_box ul li:last-child").find('.delete_btn').attr('field');//alert(id);
    $.post(
        "{:U('App/Friends/ajaxform')}",
        {"openid":openid,"id":id},
        function(data){
          if (data) {
            var str = "";console.log(data);
            $.each(data, function(index, array) {
              if(array['openid']==openid){
                if(array['type']==0){
                  //普通文字或图片
                  str='<li class="chart-right"><div class="chart_text_box"><div class="jieshao"><p>'+array['uname']+'</p><p>'+array['time']+'</p></div><div class="chart_text_qipao_right"><p>'+array['content']+'</p></div><div class="operation_box"><div class="delete_btn" field="'+array['id']+'">删除</div></div></div><div class="persion_img_right"><img src="'+array['headimgurl']+'"><font><img src="{$tpl}App/Friends/Public/img/vipv'+array['classid']+'l.png"></font></div></li>';
                }else{
                  //我的霸屏
                  str='<li class="chart-right"><div class="chart_text_box"><div class="jieshao"><p>'+array['uname']+'</p><p>'+array['time']+'</p></div><div class="chart_text_qipao_right"><p><i class="money_text">重金霸屏'+arr[array['type']]+'秒</i>'+array['content'];
                  if(array['img']!=""){
                    str+='<font class="chart_img"><img src="'+array['img']+'"></font>';
                  }
                  str+='</p></div><div class="operation_box"><div class="delete_btn" field="'+array['id']+'">删除</div></div></div> <div class="persion_img_right"><img src="'+array['headimgurl']+'"><font><img src="{$tpl}App/Friends/Public/img/vipv'+array['classid']+'l.png"></font></div> </li>';
                }  
              }else{
                if(array['type']==0){
                  //普通文字或图片
                  str = ' <li class="chart-left"><div class="persion_img_left"><img src="'+array['headimgurl']+'"><font><img src="{$tpl}App/Friends/Public/img/vipv'+array['classid']+'l.png"></font></div> <div class="chart_text_box"><div class="jieshao"><p>'+array['uname']+'</p><p>'+array['time']+'</p></div><div class="chart_text_qipao_left"><span class="sanjiao_left"></span><p>'+array["content"]+'</p></div>';
                  if(isadmin){
                    str+='<div class="operation_box"><div class="delete_btn" field="'+array['id']+'">删除</div> <div class="blacklist" field="'+array['openid']+'">拉黑</div></div>';
                  }
                  str+='</div> </li>';
                }else{
                  //他人霸屏
                  str='<li class="chart-left "><div class="persion_img_left"><img src="'+array['headimgurl']+'"><font><img src="{$tpl}App/Friends/Public/img/vipv'+array['classid']+'l.png"></font></div> <div class="chart_text_box"><div class="jieshao"><p>'+array['uname']+'</p><p>'+array['time']+'</p></div><div class="chart_text_qipao_left"><span class="sanjiao_left"></span><p><i class="money_text">重金霸屏'+arr[array['type']]+'秒</i>'+array['content'];
                  if(array['img']!=""){
                    str+='<font class="chart_img"><img src="'+array['img']+'"></font>';
                  }
                  str+='</p></div>';
                  if(isadmin){
                    str+='<div class="operation_box"><div class="delete_btn" field="'+array['id']+'">删除</div> <div class="blacklist" field="'+array['openid']+'">拉黑</div></div>';
                  }
                  str+='</div> </li>';
                }
              }
              $(".main_box ul").append(str);
              $('.main_box').scrollTop( $('.main_box')[0].scrollHeight );
            });
          }
                     
        }
    );
}</code>

回覆內容:

做一個聊天頁面,ajax異步請求數據時,不論有無數據返回,ios都會閃動一下,而android不會閃動 ,這是怎麼回事,該如何解決

<code>$(document).ready(function(){
        $('.loading_box').attr('style','display:none');
        ajaxform();
        window.setInterval("ajaxform()",3000); 

    });
    

function ajaxform(){
    var id=$(".main_box ul li:last-child").find('.delete_btn').attr('field');//alert(id);
    $.post(
        "{:U('App/Friends/ajaxform')}",
        {"openid":openid,"id":id},
        function(data){
          if (data) {
            var str = "";console.log(data);
            $.each(data, function(index, array) {
              if(array['openid']==openid){
                if(array['type']==0){
                  //普通文字或图片
                  str='<li class="chart-right"><div class="chart_text_box"><div class="jieshao"><p>'+array['uname']+'</p><p>'+array['time']+'</p></div><div class="chart_text_qipao_right"><p>'+array['content']+'</p></div><div class="operation_box"><div class="delete_btn" field="'+array['id']+'">删除</div></div></div><div class="persion_img_right"><img src="'+array['headimgurl']+'"><font><img src="{$tpl}App/Friends/Public/img/vipv'+array['classid']+'l.png"></font></div></li>';
                }else{
                  //我的霸屏
                  str='<li class="chart-right"><div class="chart_text_box"><div class="jieshao"><p>'+array['uname']+'</p><p>'+array['time']+'</p></div><div class="chart_text_qipao_right"><p><i class="money_text">重金霸屏'+arr[array['type']]+'秒</i>'+array['content'];
                  if(array['img']!=""){
                    str+='<font class="chart_img"><img src="'+array['img']+'"></font>';
                  }
                  str+='</p></div><div class="operation_box"><div class="delete_btn" field="'+array['id']+'">删除</div></div></div> <div class="persion_img_right"><img src="'+array['headimgurl']+'"><font><img src="{$tpl}App/Friends/Public/img/vipv'+array['classid']+'l.png"></font></div> </li>';
                }  
              }else{
                if(array['type']==0){
                  //普通文字或图片
                  str = ' <li class="chart-left"><div class="persion_img_left"><img src="'+array['headimgurl']+'"><font><img src="{$tpl}App/Friends/Public/img/vipv'+array['classid']+'l.png"></font></div> <div class="chart_text_box"><div class="jieshao"><p>'+array['uname']+'</p><p>'+array['time']+'</p></div><div class="chart_text_qipao_left"><span class="sanjiao_left"></span><p>'+array["content"]+'</p></div>';
                  if(isadmin){
                    str+='<div class="operation_box"><div class="delete_btn" field="'+array['id']+'">删除</div> <div class="blacklist" field="'+array['openid']+'">拉黑</div></div>';
                  }
                  str+='</div> </li>';
                }else{
                  //他人霸屏
                  str='<li class="chart-left "><div class="persion_img_left"><img src="'+array['headimgurl']+'"><font><img src="{$tpl}App/Friends/Public/img/vipv'+array['classid']+'l.png"></font></div> <div class="chart_text_box"><div class="jieshao"><p>'+array['uname']+'</p><p>'+array['time']+'</p></div><div class="chart_text_qipao_left"><span class="sanjiao_left"></span><p><i class="money_text">重金霸屏'+arr[array['type']]+'秒</i>'+array['content'];
                  if(array['img']!=""){
                    str+='<font class="chart_img"><img src="'+array['img']+'"></font>';
                  }
                  str+='</p></div>';
                  if(isadmin){
                    str+='<div class="operation_box"><div class="delete_btn" field="'+array['id']+'">删除</div> <div class="blacklist" field="'+array['openid']+'">拉黑</div></div>';
                  }
                  str+='</div> </li>';
                }
              }
              $(".main_box ul").append(str);
              $('.main_box').scrollTop( $('.main_box')[0].scrollHeight );
            });
          }
                     
        }
    );
}</code>

閃動是頁面刷新了,看是否有重新渲染頁面的程式碼。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn