2

私はアニメーション化されたSpotifyアプリに取り組んでいて、それが途切れるという問題に遭遇しました。アニメーションコードを可能な限り削減しようとしたが、それでも途切れが発生した後、setTimeout関数以外のすべてを削除しました。デバッガーでタイムラインを見ると、吃音が続くことが確認されました。

問題をテストするために、次のコードスニペットを作成し、Spotifyとchromeで実行しました。

var delta;
var newTime;
var oldTime = new Date().getTime();
var startTime = new Date().getTime();
function updateFrame() {
    newTime = new Date().getTime();
    delta = newTime - oldTime;
    if (delta>500 ) {
        console.log(delta + " @ " + Math.round((newTime-startTime)/1000) + " seconds");
    }
    oldTime = newTime;
    setTimeout("updateFrame()",50);
}

Spotifyでは、一般的な出力は次のようになります。

 2168 @ 14 seconds
 2150 @ 51 seconds
 2151 @ 111 seconds
 2166 @ 171 seconds
 2174 @ 231 seconds
 2194 @ 291 seconds
 2181 @ 351 seconds
 2259 @ 411 seconds
 2216 @ 471 seconds

この2秒間、音楽が再生され続け、キーストロークが記録されている間、SpotifyUI全体が完全に応答しなくなります。setIntervalを使用したり、setTimeout間隔を変更したり、更新関数でsetTimeoutの場所を変更したりしても効果はないようです。

Chromeでは、タブが非アクティブになるまで何もログに記録されません。

 1002 @ 9 seconds 
 1001 @ 10 seconds 
 1000 @ 11 seconds 
 1001 @ 12 seconds 
 1003 @ 13 seconds 
 1000 @ 14 seconds 
 1006 @ 15 seconds

この問題を解決する方法がわかりません。使用した他のアプリがフリーズSpotifyを実行したため、何か問題が発生しているように感じます。これは、永続的なsetTimeout呼び出しが含まれていないことが原因である可能性がありますが、それらを使用せずにアニメーションを作成する方法がわかりません。

4

0 に答える 0