0

それは私のjquery ajaxセットアップコードで、クロムではうまく機能しますが、Firefoxでは非常に遅いです.ローダーgifが問題を引き起こしていることがわかりました.ローダーアニメーションなしで、Firefoxでajaxが高速に動作します. どうもありがとうございます。

Javascript:

var div=$("<div id='mask'/>");
$.ajaxSetup({
    beforeSend:function(jqxhr,settings){                          
        div.addClass('loader').appendTo('body');                         
    }
    ,complete:function(){
        div.remove();        
    }
});

CSS:

#mask {
    position:fixed;
    top:0;
    left:0;
    right:0;
    bottom:0;
    opacity:0.2;
    background-color:#fff;
}

.loader {
    background:url(ajax-loader.gif) center center no-repeat;
}
4

2 に答える 2

0

まず、div を閉じます。また、GIF をプリロードしようとしましたか? 2.5kb は本当にあなたの ajax クエリを遅くすることはできません...しかし、ああ、不可能なことは何もありません。ところで、あなたの要素は #mask です。

  1. HTML ページにマスク要素を作成します。

<div id="mask"> </div>

  1. CSS に:
position:fixed;
top:0;
left:0;
right:0;
bottom:0;
opacity:0.2;
background-color:#fff;
display : none;
background:url(ajax-loader.gif) center center no-repeat;
  1. あなたのJavaScriptで:
var div = $("#mask");
$.ajaxSetup({
    beforeSend:function(jqxhr,settings){                          
        div.show();                         
    }
    ,complete:function(){
        div.hide();        
    }
});
于 2012-11-30T15:46:48.437 に答える
0

これは、ajax リクエストごとに本文に div を追加および削除するためだと思います。これをhtmlで宣言して、表示/非表示にすることをお勧めします。

#mask {
 ..
 display: none;
 background:url(ajax-loader.gif) center center no-repeat;
 ..
}

$.ajaxSetup({
    beforeSend:function(jqxhr,settings){                          
        $('#mask').show();
    }
    ,complete:function(){
        $('#mask').hide();
    }
});
于 2012-11-30T15:48:54.117 に答える