web-dev-qa-db-ja.com

アプリケーションがハングしたときに、ユーザーがランダムにすばやくクリックするのはなぜですか?

この質問は、大規模な操作が原因でアプリケーションがフリーズするという同僚の動作を目撃したときに思い付きました。そして、それは私が確かに自分でやったことです。

アプリが数秒以上フリーズし、クリックし始めます。繰り返し。それはどういうわけか「それを目覚めさせる」ようになるかのように、しばしば、特に意味のある場所ではありません。さらに奇妙なことに、プログラムが再び応答すると、それらすべてのクリックがキューに入れられて発火することを知っているユーザーは、インタラクティブな機能が知られていない領域(クロムの空の部分など)をクリックすることを特に選択します。

したがって、ユーザーがクリックすると、効果がないことがわかっていて、機能がないことがわかっている領域でクリックして、プログラムが元に戻ることを期待しています。私たちは皆それをします。しかし、なぜ?

また、プログラムが応答を停止する時間が長いほど、ランダムなアクションが発生し始めます。数秒後、それはクリックです。その後すぐに、キーボードがタップされます(スペースバーはお気に入りのように見えますが、逆に人々はEnter/Returnキーを試そうとはしません)。次に、強烈な速射でエスケープキーを押します(この時点で、パワーユーザーはCtrl-Alt-Delまたは他のコンボを解除できます)。

最終的には、無反応プログラムの保証された修正にすべて到達します[要出典]:タワーを蹴る。

なぜこれを行うのですか?


[〜#〜] edit [〜#〜]万能な回答です!承認されたものを1つだけ選択できますが、私は他にもたくさん賛成しています。

217
Kai

ユーザーが繰り返しクリックする理由は、ユーザーがアクションを実行するたびに更新を予測することに慣れており、クリックすることで、アプリから期待される動作があるかどうか、または少なくとも彼らが何ができるかについて彼らに知らせる何らかの反応

また、この面白い画像は答えを与えるかもしれません:)

enter image description here

スペースバーのキーに関しては、キーのサイズが大きい( フィッツの法則 )ことと、反応を期待して何度も簡単にクリックできることと関係があると思います。 Enterキーに関しては、一般的に次のステップに進むためのアフォーダンスとして使用されます。ユーザーは、Enterキーを繰り返し押すと、この厄介なステージを通過し、うまく機能している次のステージをロードするのに役立つことを期待できます。

最後に、ユーザーがコンピューター上で行っていること、または何かを閉じることからの脱出を意味するエスケープキーとして、エスケープキーが押され、この状況から脱出する試みが行われます。これを引用するには エスケープキーの心理についての記事

ボタンの日付は1960年で、I.B.M。プログラマーのBob Bemerによって作成されました。これは、プログラマーがあるコンピューター言語から別の言語に切り替えるのを支援するためのものでした。その後、キーは進化し、文字通りエスケープツールになりました。ユーザーは、使用しているオペレーティングシステムやブランドに関係なく、キーを押して、従事している機能を停止します。キーの名前はおそらくパニック感を示唆するものでした。私は個人的にその言語は効果的だと思います。それは強力で、要点があり、やや空想的で少し夢のようなものです。

また、これを引用するには NY回の記事 ESCキーのデザインについて

なぜ「脱出」するのですか?ベマーは別の言葉、たとえば「中断」を使うことができたかもしれないが、彼は自分の不安に対する小さな記念碑である「ESC」を選んだ。ベメルは心配でした。 1970年代に、彼は2000年問題について警告を開始し、リチャードニクソンのアドバイザーに2000年に発生する可能性のあるコンピューターの災害について説明しました。今日、私たちの比較的安定したコンピューターでは、パニックボタンを必要とする人はほとんどいません。しかし、先駆的なプログラマーであるボブ・フランクストンは、ESCキーをまだ使用していると語っています。 「Get-me-the-hell-out-of-hereキーを持っていることには良い点があります。」

最後に、 control + alt + delete オプションを使用して、アプリケーションをシャットダウンして新たに起動することができます。

ユーザーの心はこのパターンで流れると思います

反応があるかどうかを確認させてください(ステージをクリック)->このステージ(キーを入力)を通過してみます->ローカルレベルでこのアプリケーションを終了させます(ESCkeyステージ)->このアプリケーションをルートレベルまたはコンピューターレベルでシャットダウンさせます(control-alt-deleteステージ)

167

人々は物理的な用語でインターフェースを考えるの傾向があります。 「マトリックス上のライトの長方形」ではなく、「ウィンドウ」について考えます。そのため、アプリケーションがハングすると、人々は、アプリケーションが機能しなくなったときに、物理オブジェクトを使用する場合と同じように、アプリケーションとの対話に戻ります。

物事を振ることは、多くの人が機能していない物理的なオブジェクトを「修正」しようとする方法のようであり、これと同等のデジタルは、クリックする力でそれを打つことです。

さらに、(ありがたいことに)時々、何らかの理由でクリックがピックアップされないコンピュータによって時々発生するため、何も起こっていないように見えるときにもう一度クリックすると、問題が解決することがよくあります。次に、クリックを拾うことがよくあります。したがって、クリックは、実際にクリックされ、ピックアップされたことを確認する方法でした。これがしばしば機能したという事実再実行された動作なので、見落とされたクリックや誤ったクリックではなかったことを確認するために、人々はそれを行うことを「学び」ました。

57
JohnGB

私は最近、この本 Extinction Burst と呼ばれる本を You Are Not So Smart から読みました。 ここ は私が話している章で、これはWikipediaからの抜粋です。

例として、電子ボタンをつつくように強化された鳩を考えてみましょう。その訓練の歴史の中で、鳩がボタンをつつくたびに、それは強化剤として少量の鳥の種を受け取りました。したがって、鳥が空腹のときはいつでも、餌を受け取るためのボタンをつつきます。ただし、ボタンをオフにした場合、空腹の鳩は最初と同じようにボタンをつついてみます。食べ物が近づいていない場合、鳥はおそらく...何度も何度も何度も挑戦します。彼らのつつき行動が結果をもたらさない必死の活動の期間の後、鳩のつつきの頻度は減少します。

そのような動作の潜在的な利点を説明する別の抜粋:

この絶滅バーストの進化的利点は明らかです。自然環境では、すぐに強化されないにもかかわらず、学習された行動を続ける動物は、その動物が再試行した場合でも、強化の結果を生み出す可能性があります。この動物は、あきらめやすい別の動物よりも有利です。

46
Dylan Meador

少なくともウィンドウでは、ウィンドウはキューで新しいメッセージを受信した後にのみ「グレー表示」になり、タイトルに(応答なし)のサフィックスが付きます。メッセージの蓄積は、ウィンドウがビジーなUIスレッドを検出する方法です。

投機的には、これがユーザーがWindowsでそれを行う理由である可能性があります-システムをプローブし、アプリケーションがフリーズしているか、またはOS全体がフリーズしているかを評価します。

28
Gusdor

これは、エレベーターの呼び出しボタン、または横断歩道の「押しボタンを横断する」ボタンをもう一度押す傾向に関連していると思います:人間はせっかちで、私たちはただの応答を待つのは難しいと思います。凍結されたプログラムの場合、この欲求不満/焦りはフィードバックの欠如と信頼の欠如によって悪化します。

14
ruakh

コンピュータは非常に複雑なものであり、ユーザーは自分で説明できない行動を学びます。

私は90年代前後のコンピューターがどのように動作するかを読んだことを覚えています(私は信じています)マウスが動いているときは、ユーザーが気にかけていたプロセスをより早く完了させるための割り込みがマウスによって発生したため、実際には高速に動作することがありました。何人の人がそれを知っていただろうか?おそらく、統計的にゼロに等しい数です。しかし、私はこれを行うほとんどのパワーユーザーをプログラムを待つときの習慣の問題として思い出します。

私はあなたが過去に肯定的な結果をもたらした学習された行動であるとあなたが説明する行動に私のお金を置きます。一部またはほとんどが肯定的な結果に因果関係がないと確信しています(たとえば、プロセスが完了したときにたまたまスペースバーを押した)、これらの奇妙な動作のいくつかは実際に実行するよりも良い結果を引き起こしたと思います何も。

最後に、これらのアクションの一部は、アプリケーションが本当に応答しないことを確認するための基本的なトラブルシューティングでもあります。これにより、リロードして作業に戻ります。

12
Dane

ユーザーがフリーズするアプリケーションにイベントを生成する理由の1つは、イベントがキューに入れられるのではなく、ドロップされるという感覚を持っていることです。これは基本的な心理学かもしれません。しかし、直感は実際に正しくあります。負荷の高いシステムは実際にイベントを見逃す可能性があるためです。以下では、それらがGUIである場合、実際にそうする必要があると主張します。

よく知られた例の1つがFirefoxです。ブラウザがスクリプトの実行でビジー状態のときに、一部の入力フィールドに入力しようとすると、実際には文字が失われます。表示されていない文字の入力を繰り返さない場合、単に待つだけでは表示されません。彼らはビットバケットに入った。

ユーザーがキューを管理する方法がないため、負荷がかかっているすべてのイベントをキューに入れることには欠点があります。間違いもキューに入れられ、システムがイベントの処理に取り掛かると望ましくない結果が生じます。

GUIイベントのキューイングには問題があり、イベントの長いキューを保持することは無意味です。たとえば、システムにウィンドウを移動し、そのウィンドウのボタンをクリックするように指示したが、システムが遅いため、これらのイベントが実際に発生するのは、後でないとします。イベントが処理されるとき、クリックは移動されたウィンドウを参照する必要がありますか?または、クリックは、クリックが発行されたときにカーソルの下に表示されたものを参照する必要がありますか?あいまいさの適切な解決策は、クリックイベントを削除することです。

そう:

  1. キューに入れられたイベントの処理が遅れると混乱が生じるため、システムが応答しない場合は、賢明に設計されたグラフィカルインターフェイスでクリックなどのイベントをドロップする必要があります。

  2. これは、クリックが何もしない場合、それはことわざのビットバケットにドロップされ、アクションhasが繰り返されることを意味します。

  3. ユーザーには、クリックなどのイベントを処理するシステムの準備状況を示す適切なフィードバックが提供されません。イベントが受け入れられるかどうかを知る唯一の方法は、それを試すことです。 (一部のユーザーインターフェイスは特別なカーソルに変更されたり、UIの一部がグレー表示されたりして、応答がないことを示します)。

  4. したがって、ユーザーは応答が発生するまで繰り返しクリックします:合理的な行動。

本当の質問は次のとおりです。回転する砂時計のカーソルやグレー表示されたウィンドウなど、アプリケーションが現在イベントを受け入れていないという明確なフィードバックを提供しているのに、なぜ人々は素早くクリックするのですか?

これは、複数の要因の組み合わせである可能性があります。 1つは、「目覚める」必要のある生物のように、応答しないものを単に突き出す基本的な本能です。そのような明確な兆候のないシステムを使用したことから、それは部分的に学習された行動である可能性があります。また、アプリケーションがビジーであるという兆候を完全に理解していないか、クリックが実際に役立つという信念から生じている可能性もあります。 (クリックが役立つという仮説は簡単に反証することはできません。アプリケーションがその特定の状況から迅速なクリックの努力なしに同じくらい迅速に回復したとユーザーが確信できる方法はありません。)実際、これらのユーザーオペレーティングシステムスケジューラは、ユーザーの焦り(クリックで測定)を考慮に入れて、ユーザーインターフェイスタスクをより優先するように調整できます。そうでない場合は、多分そうすべきです!さらに、アプリケーションすべての長いタスクが、UIが応答を維持できるようにするバックグラウンドプロセスとしてモデル化され、UIがブロックされるように同じイベント処理スレッド内にあるように書かれないようにしてください。

7
Kaz

これは、大学にいて、GUIヒューリスティックのエキスパートと一緒に作業していたときに出くわした質問です。

基本的に、ユーザーがアプリケーションが応答しないときにクリックすると、アプリケーションが本当に応答しないのか、それとも期待どおりにシステムと対話していないのかが確認されます。クリックが意味をなす場所のほとんどは望ましくない結果をもたらすため、ほとんどのユーザーは空のスペースをクリックしてこれをテストします。

スペースバーについて-これに関してはいくつかの異なる意見があると思います。 1つは、それがキーボードの最大のキーであり、あなたに最も近いということです。これがテストされる理由であることがよくあります。

アプリケーションがハングまたは応答しなくなると、アプリケーションは1秒ごとに対話を停止するか、アプリケーションが何かに取り組んでいることをユーザーに伝えません。ユーザーのフラストレーションレベルは指数関数的に増加します。彼らが行った実験の詳細と証拠については、シェフィールド大学の論文を見る必要があります。

最後に、多くの場合、escまたはctrl + alt + delなどのキーの組み合わせをクリックすると、システムがアプリケーションではなくこれらのキーを処理するため、システムが応答し始めます。通常、ユーザーは実際には気にせず、特定のキーが特定のアプリケーションでこれを実行できるかどうかを考えます-このアプリケーションには他のキーが必要であり、キーボードのすべてのキーをタップし始めることがよくあります。はい、これらのアクションとキーはキューに入れられますが、Win 7とWin 8では、キューが減少し、このキューサイズを超えて大きくなると、Windowsがアプリケーションを終了しようとします-ユーザーとしてオプションと応答性を提供します探しています。

4
Manish

最良の理由はすでに述べられていると思います(ユーザーがアプリでクリックやアプリを操作した後のアップデートを期待している)のですが、この質問は私の友人を思い出させました。

私が彼に尋ねたとき、アプリはフリーズしていました-「なぜアプリを素早くクリックするのですか?」

彼の答えは、「OSは操作するアプリを優先すると思います」(彼の場合は、Windows XPでした)。彼は、アプリをクリックすることにより、OSがより多くのリソースを提供し、フリーズを解除できると考えました。

4
surui

ときどき(特に負荷の高いWebアプリの場合)、マウスのクリックに関連する要求が失われることがあります。多分それはダウンしていたサーバーにルーティングされたラウンドロビンを取得しました。いずれにせよ、クリックを2回実行すると問題が解決することがよくありますが、ユーザーは運命の要求を永遠に待ち、応答が来ないことを待っていた可能性があります。

くそったれ、くすぐったくない:ユーザーがビジーカーソルを待ってずっとそこに座っていると、だれかがこのあわてあきらめないで他のことを試さない理由を尋ねる人がいるかもしれません。

ますます必死のクリックの動作については、問題を解決するために利用できる限られた選択肢を利用することの徴候です。開発者は、ログファイルを調べたり、スレッドダンプを強制的に実行したりして、問題の実際の原因を直接調査して対処することができますが、一般的なユーザーのオプションは非常に限られています。

3
Alex Stangl

Windows Vista以降の場合、通常、プログラムが応答しない後にクリックすると、プログラムの再起動/終了を求めるウィンドウがポップアップ表示されます。

XPの場合、タスクマネージャーにアクセスする必要があります。したがって、ユーザーがXPユーザーの場合、ハングの失望による据え置き攻撃の遅延など、心理的な理由があると思われます。コンピュータアプリケーション。

2
Ess Kay