2016-12-22 5 views
7

角度を使ってionic(1)アプリケーションを構築しようとしています。 私は理解していない、なぜ私はこの警告エラーが表示されます - "スクロールをスムーズにするために点滅を遅らせる"

を取得しています「スムーズなスクロールを行うために、タスクを延期点滅。。より多くのためのhttps://developers.google.com/web/tools/chrome-devtools/profile/evaluate-performance/railhttps://crbug.com/574343#c40を参照してくださいあなたのタイマーやネットワークタスクは、これを避けるために実行するために50ミリ秒未満を取る必要があります情報。"

と追加の警告私はページのスライダーを使用しています「スクロールが進行中であり、中断することはできませんので、例えば、偽=解約とtouchmoveイベントをキャンセルしようとする試みを無視していました。」

です

は「『touchstart』入力イベントの処理はメインスレッドがビジーであることに起因する835ミリ秒のために延期された。 『受動的』は、ページがより敏感にするなどのイベントハンドラをマーキング検討する」

+0

私はHonor 7 Liteでこれを一度も見ました。これは、トランジションを引き起こしたボタンが非アクティブだったかのようでしたが、次の画面に水平にスクロールできることがわかりました。アプリ全体が再開されるまで、移行は機能しませんでした。 –

+2

これは、エラー文書を再説明しようとする以上の問題のトラブルシューティングに役立つような詳細は含まれていないため、賞金を払っても多くの注意を払うことはまずありません。あなたが本当に援助に興味があるなら、実際に何をしようとしているか、例えば、どのイオンモジュールをどの順序で呼び出しているかなど、何らかの兆候が役立つでしょう。 – Claies

答えて

4

この警告は、「法線」です。 webviewは基本的に、スクロールイベントやタッチイベントにバインドされているイベントがいくつかあり、それがアプリケーションの処理速度を低下させる可能性があることを伝えています。 Googleのドキュメントでは、計算や関数を直接touchmove/dragイベントで実行するのではなく、インターバルを使用することをお勧めします。これは、UXを賢明にしようとしていることに応じてwebviewを備えたモバイルアプリケーションでは必ずしも可能ではありません。

さらに、setIntervalを使用すると、10msのような猛烈なタイミングをとらなければならず、スクロール/ドラッグが本当に悪く見えます。 これらの警告を忘れると、それらは非常に一般的であり、最も可能性の高いガイドラインですが、ほとんどの時間を避けることはできません。

警告を避けたい場合は、ここでjQueryの例を参照してください。このアイデアは、イベントの値を捕らえ、別のスレッドで計算を実行することです。

var int, x, y; 

$('#mydiv').on('touchstart', function(event){ 
     int = setInterval(work, 20); 
}); 

$('#mydiv').on('touchend', function(event){ 
     clearInterval(int); 
}); 

$('#mydiv').on('touchmove', function(event){ 
     x = event.touches[0].pageX; 
     y = event.touches[0].pageY; 
}); 

function work(){ 
     //how you can do whatever with x y without getting a warning 
} 
1

あなたの角度/ページが依然として集中的に処理されているため、私の経験からは、基本的にはこれが得られます。新しい状態にナビゲートしたあと、あまりにも速くスクロールしようとすると、この警告が表示されてしまいました。私の解決策は、jsのスクロールを無効にして、より関連性の高い場所に多くのパワーを解放することでした。 scrolling.jsScrolling(value)についてhttp://ionicframework.com/docs/api/provider/$ionicConfigProvider/

0

これらは実際には重大な警告です。私はこの警告に長すぎる時間を費やしました。タイマやネットワークタスクのような長い実行中のjavascriptタスクがあると、スクロールするまで停止します。スクロールが完了すると、これらのタスクが再開されます。

関連する問題