アカウント名:
パスワード:
JavaScriptでミリ秒単位の実行速度なんて開発者の自己満足だろ・・・。
ミリ秒単位で画面上のオブジェクトを動かしたりするときは多少差が出ますが、 テキスト処理関連で困ることはだいぶ減ったように思います。 ただしIEはこんな感じのコードでボタンを連打しても反応がすごく遅い問題がずーっと直らないです。
<html><head><script type="text/javascript">var count = 1;var countUp = function() { document.getElementById('output').firstChild.nodeValue = count; count += 1;};</script></head><body><input type="button" value="count" onclick="javascript:countUp();" /><div id="output">0</div></body></html>
> ボタンを連打しても反応がすごく遅い問題がずーっと直らないです。
これは、「ボタンを連打する」と「ダブルクリック」になってしまうからでしょう。
IEのボタンは、ダブルクリックに反応しないFirefoxのボタンは、ダブルクリックにも反応する
ということで、反応が遅いわけではないと。
<input type="button" value="count" onclick="javascript:countUp();" />
に
ondblclick="javascript:countUp();"
を追加すれば良いってだけの話でしたな
IEに関してはそれで問題を回避できますね。 でもそれだけだとIE以外のブラウザがダメなので、 IEとそれ以外でコードを分岐する必要があります。 とりあえずこんな感じでしょうか。 addEventListnerとAttachEventの有無でブラウザ判定しています。
<html><head><script type="text/javascript">var count = 1; var countUp = function() { document.getElementById('output').firstChild.nodeValue = count; count += 1;}; var setButtonAction = function() { var btn = document.getElementById('myBtn'); // mozilla, webkit, opera if (window.addEventListener) { btn.addEventListener('click', countUp, false); } // ie else if (window.attachEvent) { btn.attachEvent('onclick', countUp); btn.attachEvent('ondblclick', countUp); }}; if (window.addEventListener) { window.addEventListener('load', setButtonAction, false);}else if (window.attachEvent) { window.attachEvent('onload', setButtonAction);}</script></head><body><input id="myBtn" type="button" value="count" /><div id="output">0</div></body></html>
技術の無い奴が悪評を流布するからですね
この件は、ブラウザの仕様(バグ?)であって、 直接的な処理速度の話ではないですね。 でも、JavaScriptが速ければ無駄な処理が増えても遅延が顕在化しない、 ということはあると思います。
せっかくなので私なりの意見を書いておくと、 JavaScriptの高速化のおかげで、 ミリ秒単位のコーディングがしやすくなりました。 これは開発者の自己満足ではなくて、 JavaScriptの可能性が大きくなっているのだと思います。 FlashでやっていたようなエフェクトがJavaScriptでもなめらかに動かせるし、 JavaScriptは速ければ速いほどいいです。 でも、JavaScriptの処理速度がブラウザの謳い文句になるほど、 エンドユーザに対して訴求力のある話ではないかもしれません。 あくまでも縁の下の進化というか。
なるほど、そういう理由でしたか。
一応付け加えさせていただくと、 Firefoxだけではなく、Mozilla系とWebkit系とOpera (つまりIE以外のほとんどのブラウザ)は連打できます。 IEはonmousedownなども連打もできません。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
犯人は巨人ファンでA型で眼鏡をかけている -- あるハッカー
開発者の自己満足 (スコア:0)
JavaScriptでミリ秒単位の実行速度なんて開発者の自己満足だろ・・・。
Re:開発者の自己満足 (スコア:2, すばらしい洞察)
Re:開発者の自己満足 (スコア:1)
ミリ秒単位で画面上のオブジェクトを動かしたりするときは多少差が出ますが、
テキスト処理関連で困ることはだいぶ減ったように思います。
ただしIEはこんな感じのコードでボタンを連打しても反応がすごく遅い問題がずーっと直らないです。
Re:開発者の自己満足 (スコア:3, 参考になる)
> ボタンを連打しても反応がすごく遅い問題がずーっと直らないです。
これは、「ボタンを連打する」と「ダブルクリック」になってしまうからでしょう。
IEのボタンは、ダブルクリックに反応しない
Firefoxのボタンは、ダブルクリックにも反応する
ということで、反応が遅いわけではないと。
Re: (スコア:0)
に
を追加すれば良いってだけの話でしたな
Re:開発者の自己満足 (スコア:1)
IEに関してはそれで問題を回避できますね。
でもそれだけだとIE以外のブラウザがダメなので、
IEとそれ以外でコードを分岐する必要があります。
とりあえずこんな感じでしょうか。
addEventListnerとAttachEventの有無でブラウザ判定しています。
Re: (スコア:0)
javascriptのコードがなんで重くなって、
ms レベルでの速度改善を求められる理由が、
よくわかる話ですね。
Re: (スコア:0)
技術の無い奴が悪評を流布するからですね
Re:開発者の自己満足 (スコア:2, 興味深い)
この件は、ブラウザの仕様(バグ?)であって、
直接的な処理速度の話ではないですね。
でも、JavaScriptが速ければ無駄な処理が増えても遅延が顕在化しない、
ということはあると思います。
せっかくなので私なりの意見を書いておくと、
JavaScriptの高速化のおかげで、
ミリ秒単位のコーディングがしやすくなりました。
これは開発者の自己満足ではなくて、
JavaScriptの可能性が大きくなっているのだと思います。
FlashでやっていたようなエフェクトがJavaScriptでもなめらかに動かせるし、
JavaScriptは速ければ速いほどいいです。
でも、JavaScriptの処理速度がブラウザの謳い文句になるほど、
エンドユーザに対して訴求力のある話ではないかもしれません。
あくまでも縁の下の進化というか。
Re: (スコア:0)
なるほど、そういう理由でしたか。
一応付け加えさせていただくと、
Firefoxだけではなく、Mozilla系とWebkit系とOpera
(つまりIE以外のほとんどのブラウザ)は連打できます。
IEはonmousedownなども連打もできません。