0

だから、私はこの非常に複雑なカスタム アニメーションを持っています。setTimeout()

    var i=20;
     while(i!==0){
     setTimeout(function() {
     $("#feedback-toad").css("height","+=12");
     $("#feedback-toad").css("background-position", "50% "+i*(-5)+"%");
     }, i*100);
     i=i-1; }


    setTimeout(function() {
    $("#feedback-toad").prepend("<div id='toad-speaks'>SIGN UP OR LEAVE ME FEEDBACK, IF YOU DON'T WANT TO DO IT...</div>");
  , 2000);


   setTimeout(function() {
  $("#toad-speaks").html("SIGN UP OR LEAVE ME FEEDBACK, IF YOU DON'T WANT TO DO IT..  <br/> <br/> BUT YOU WANT TO ...");
    }, 4000);


    setTimeout(function() {
    $("#feedback-toad").animate({
    height:"60"}, 1000, function(){
     $("#feedback-toad").remove();
                       });
                       }, 6000);

多くのタイムアウトを使用すると実際に CPU が過負荷になる可能性があるため、弱いシステムやスマートフォンで問題が発生する可能性があることを読みました。

このコードを最適化し、1 つまたは 2 つのタイムアウトを使用する方法はありますか? この記事では、これは可能であると言われていますが、その方法についての手がかりはありません。

4

2 に答える 2

1

まず第一に、12 行目と 23 行目または 24 行目で右角かっこ } が欠落しているため、これが期待どおりに機能する場合、私は驚いています。

それに加えて、2000、4000、6000 のタイマーを組み合わせて、

  • 以下を含む 2000 タイマー。
    • 2000 タイマー (以前の 4000) には、以下が含まれます。
      • 2000 タイマー (旧 6000)

ただし、これによりパフォーマンスがまったく向上しない可能性があります。

そして、3つは実際には多くありません。多くは、数十、数百、または数千にもなります (自動スクリプトによって生成されます)。これは、弱いシステムから始めて、問題を引き起こす可能性があります。でも、3~4枚あれば全然大丈夫です。

于 2013-09-08T23:35:24.507 に答える