質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

952閲覧

webインターフェースのボタンを押した反応時間のPCとスマホの違い

kazu_jc

総合スコア18

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/12/17 01:34

編集2018/12/17 01:45

分かる方にとっては、単純なことなのだと思いますが、
教えていただけますでしょうか。

自分のwebsiteで『反射神経測定テスト』というのを持っていますが
シグナルが点灯すると、なるべく早くマウスクリックまたは、
enterボタンを押して、人の反応時間を測定するものです。
それをJavascriptで作成したのですが、パソコンでは問題ない
のですが(平均0.25秒くらい)

ところが、スマートフォンの場合、測定テストインターフェースの
画面のボタンを押した反応時間が約0.5秒くらい遅れてしまいます
(平均0.75秒くらい)
平均0.25ということは、パソコンは端末差がだいたいは無視できるほど
瞬時に反応しているようですが、
スマートフォンの場合遅れるものなのでしょうか?
(送れる場合も、その時間は端末で『一定の値』?)

それとも何か他の原因がありますか?

宜しくお願い致します。

◾ 問題の発生した環境
パソコンはWindows10 でも Windows8 でも
それくらいのOSが入っている最低スペック
くらいのpcで問題ありません。

スマートフォンはアンドロイドやiパッド、アップル製品、どれでも
反応は遅いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

反応速度を求められるようなアプリの場合は、スマートフォン側はtouchイベントの方が最適化されるかもしれません。

クリックってあくまでPCのマウスの概念なので。
そこを「タッチ」に変換する間があるのかも。
スマートフォンって「タッチしたまま移動」とかもあるし、ダブルタップって結構シビアだったり、
「1点だけタッチして終わったよ」というのを判断するまでの何かしらのオーバーヘッドがあるのかも。

面倒であれば下記に紹介されているようなライブラリを使うのも手です。

投稿2018/12/17 01:45

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kazu_jc

2018/12/17 02:00

お世話になっております。 タッチイベントというものがあるのは、知りませんでした。 試してみようと思います。 ありがとうございます。
kazu_jc

2018/12/17 03:52

できました!ありがとうございます。 タブレット端末によってパソコンより個体差はあるみたいで、 最新のiパッドで0.02秒くらいの遅れ誤差です。 なので、0.5秒差と比較すれば、タッチイベントの問題でした。 ありがとうございました。 ただ、タップイベントが使えるか判定して、touchstartかclickか切り替える ことが必要になりました。 https://cgsc.info/programming/20151203_touchstart-or-click
m.ts10806

2018/12/17 03:53

そうですね。端末の性能にもよります。 やはりライブラリ利用が確実と思います。
kazu_jc

2018/12/17 04:00

すみません、ライブラリとは、どのような考えでしょうか? 端的にいうと、ひとつのファイルで処理しようとせずに、 複数のファイルに分けて、必要に応じて必要なファイルを 読みに行く、みたいなことでしょうか?
m.ts10806

2018/12/17 04:02

回答に貼った記事の2ページ目以降で解説されています。 http://www.atmarkit.co.jp/ait/articles/1301/16/news029_2.html タッチイベントとかその辺をまとめたライブラリもあるよ、ということです。 自前で書くよりその辺の個体差とかの違いを吸収してくれてコードを書きやすくしてくれているものです。 jQuery自体もブラウザ間の違いとかを吸収してくれているライブラリですけどね。
kazu_jc

2018/12/17 04:11

なるほど、奥が深いです。ありがとうございました。参考にさせていただきます。
guest

0

スマホの場合、画面にタッチされた瞬間では、それがクリックなのかフロックなのか、判断がつけられないので、一定時間タッチ後の動作を監視する必要があります。
指の移動がなければクリック、移動していればフリックのように判断が行われるので、0.5秒はその判断に必要な時間となります。

タッチイベントを使用すれば、遅れなく反応できると思いますよ。

投稿2018/12/17 02:10

kasa0

総合スコア578

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kazu_jc

2018/12/17 02:13

ご回答ありがとうございます。試してみます。
guest

0

PCなどでは、マウスボタンでクリックやボタンを押した、(もしくはリターンキーで)というのを判定するんで、押した瞬間というのは簡単に判別できます

スマホの場合、これがタッチパネルの処理になります。この場合、パネル面のスキャンや、静電容量の測定を常時行い、それの変化により押されたかどうかという判定を行います。
その測定間隔がどれだけのものかはわかりませんが、早々頻繁に測定するわけにも行かないということもあり、その測定結果からどのように、どれだけ押されたかということを判別し、ボタンを押したという判定を行うってことで、押した瞬間の判別ができない上、その処理時間が余計にかかるという事情があります
#また、この判別処理の中にはフリックやマルチタッチなどなどの処理も入り込んでますし

投稿2018/12/17 01:56

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kazu_jc

2018/12/17 02:05

ご回答ありがとうございます。 今日、朝思ったのですが、私はスマホでゲームとかしないのですが、 スマホでシューティングゲームとか、もしあるなら、これもすぐ反応しないと成り立たない気がするのですが。。どんなゲームがあるかは、分からないのですが。。
y_waiwai

2018/12/17 02:12

スマホでシューティングゲームやアクションゲーム(格闘ゲーム?)は見ない気がしますね(そこらへん詳しくないですが) あるのは引っ張ったりなぞったりするものばかり、ってのはそこらへんの事情があるとおもってます
m.ts10806

2018/12/17 02:59

少なくともhtml5+JavaScriptではライブラリ使ってやるもので生のクリックイベントは「ボタン」「リンク」のような画一的な操作にしか使われないように思います。 JavaScriptでシューティングとかよく記事に出ていますし書籍もあるので作りの参考にしてみてください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問