UIボタンが遅延していると認識される前に、どれくらいの頻度でUIボタンをポーリングする必要がありますか?


8

ピン変更割り込みを使用してボタンの状態を読み取ることは可能であり、望ましい場合もありますが、でボタンの状態をポーリングする方が簡単loop()です。これは一般的に使用される手法です。

あなたがいる場合loop()に迅速に十分な実行、その後、ボタンの押下を常にキャッチしようとしていると、ユーザーは任意の遅延または遅れを知覚することはできません。

ループに時間がかかりすぎて、遅延または遅延が認識される可能性があります。

問題は、ユーザーがこれを見るまでに、通常、どれくらいの時間がかかるかということです。


2
loop()かなり遅い場合(つまり、エンドユーザーに十分な速度でフィードバックを提供するには遅すぎる場合)、ピンレベルの変更時にISRを使用して、ユーザーに即時フィードバック(これが高速に計算できる場合)を提供できます、または一時的にフィードバックを送って(LEDが点灯するなど)、要求が認識され、まもなく処理されることを伝えます(loop())。ISRでloop()いくつかのグローバルbool変数を設定することで許可します。
jfpoilpret 2014年

1
それはおそらく、キークリックが役立つ数少ない時間の1つです。
Cyber​​gibbons 2014年

回答:


14

簡単に言えば、アクションが瞬時に発生したとユーザーに感じてもらいたい場合、ユーザーに応答するには100ミリ秒かかるということです。

ジェイコブニールセンによると、1993年の著書「ユーザビリティエンジニアリング」では、システムのユーザビリティとユーザーエクスペリエンスの重要な参考資料と見なされています。

  • 0.1秒は、システムが瞬時に反応しているとユーザーに感じさせるための制限です。つまり、結果を表示する以外に特別なフィードバックは必要ありません。

彼はまた、応答時間に関するこの基本的なアドバイスは何十年もの間ほぼ同じであったと述べています[Miller 1968; カード他 1991]。

この引用は、この記事から引用しました:応答時間:3つの重要な制限。これもJacob Nielsenによって書かれました。

この時間には、ボタンを押してユーザーにフィードバックを与えるのにかかった時間をすべて含める必要があることに注意してください。

同じソースからの、ユーザーエクスペリエンスにとって重要であるが、OPによって直接言及されなかった他の応答時間しきい値は次のとおりです。

  • 1.0秒は、ユーザーが遅延に気づいたとしても、ユーザーの思考の流れが中断されないようにするための制限についてです。通常、0.1秒を超え1.0秒未満の遅延の間は特別なフィードバックは必要ありませんが、ユーザーはデータを直接操作する感覚を失います。

  • 10秒は、ユーザーの注意を対話に集中させるための限界に近いです。より長い遅延の場合、ユーザーはコンピューターが終了するのを待っている間に他のタスクを実行する必要があるため、コンピューターがいつ完了するかを示すフィードバックをユーザーに提供する必要があります。遅延中のフィードバックは、応答時間が非常に変動する可能性がある場合に特に重要です。ユーザーは何を期待すべきかわからないためです。


1
素晴らしい答え。追加情報をありがとう、それはまた役に立ちます。
サイバーギボンズ2014年

3

行動後10ミリ秒以内に変化が起きると、人は変化を知覚できないことが一般に知られています。この応答性により、最近はほとんど「スピーピー」と表現されるエクスペリエンスが実現します。目立ちますが、ユーザーにとっては名前を付けるのは難しいです。

したがって、完璧が必要な場合は、約15msの遅延をとってください。本当に良かったら、100msの遅延を取ってください。100ミリ秒は平均で50ミリ秒であり、人々にとっては確実に合格します。

アプリケーションと予想される応答時間も重要です。引き戸やエレベーターには非常に大きな許容差が与えられます(物理的なオブジェクトは常により多くの時間がかかるため)一方で、券売機のインターフェースはまったく与えられません。

ポーリングの上限は約1500msです。周りでは人々はいつもそれが遅いことに気づくでしょう。

このデータは、ゲーマーおよびプログラマーとしての純粋に個人的な経験です。YMMVを試してみて、自分で試してみるのが一番いい方法だと思います。唯一の「科学的」な答えは10ミリ秒未満であり、それを超えるのは、遅延(人や瞬間によって異なります)とユーザーの許容範囲を認識する能力です。

補足として、インターフェースが使用されていないときにバッテリーまたはCPU時間を節約するために、遅延を変動させることを試みることができます。ユーザーのアクション、より速いポーリング。アプリケーションが実行しているときは、非常にゆっくりとポーリングします。必要に応じて投票することをお勧めします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.