JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4のテンプレを読んだ上で質問してください。
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
前スレ
+ JavaScript の質問用スレッド vol.124 + [転載禁止](c)2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1427008785/
(ライブラリ禁止条項は、多数の意見によって廃止されました。ライブラリの質問もOKです)
探検
+ JavaScript の質問用スレッド vol.125 +
レス数が1000を超えています。これ以上書き込みはできません。
2018/02/18(日) 16:48:01.14ID:F2O3xW/S
979デフォルトの名無しさん
2018/06/02(土) 12:15:22.97ID:X90L1I+w この人マジで全く根拠のない思い込みの知ったかぶりで適当こいてるだけだから一切話聞く必要ない
別にLiving Standardが素晴らしいとは言わないけど DOM Living Standard の *存在を知らない* のはエンジニアとして論外
>>971
>(しかしWHATWGはHTMLだけでDOMにはノータッチのようだが)
つ https://dom.spec.whatwg.org
別にLiving Standardが素晴らしいとは言わないけど DOM Living Standard の *存在を知らない* のはエンジニアとして論外
>>971
>(しかしWHATWGはHTMLだけでDOMにはノータッチのようだが)
つ https://dom.spec.whatwg.org
980デフォルトの名無しさん
2018/06/02(土) 12:25:06.32ID:EfxrOVAT そもそもW3Cへの批判を並べながらECMAScriptを語るってのが意味不明
DOMの話してんじゃないの
DOMの話してんじゃないの
981デフォルトの名無しさん
2018/06/02(土) 12:37:03.92ID:az533VkJ そもそもJavaScript素晴らしいとか言ってんのごくわずかしかいないのに誰と戦ってるのか
ほとんどのWeb屋は英語と同じでJavaScriptがWebの共通語だから使ってるだけで、大抵別のお気に入り言語がある
ほとんどのWeb屋は英語と同じでJavaScriptがWebの共通語だから使ってるだけで、大抵別のお気に入り言語がある
982デフォルトの名無しさん
2018/06/02(土) 12:43:53.45ID:RN3zjhf2 JavaScriptは現在勝ち言語なんだからわざわざ素晴らしいとかアピールする必要なんて無いだろ
そんなこと言ってる人も見ないが
そんなこと言ってる人も見ないが
983デフォルトの名無しさん
2018/06/02(土) 12:53:48.90ID:t3xHIzYO 一応 >>877 に突っ込むと、「Cの順なら最速」は意味不明。
stopPropergationでenterが止まるのを見てもわかるように、overの伝搬を利用してenterを実装することを想定した仕様だと思う
入れ子ではなくセットで、overに従属するenterが後から来るのは特段不自然ではない
(C#でもClosing→FormClosing→Closed→FormClosedという順番のイベントがある)
パフォーマンスとIEとjQueryの動作を破壊してまでAを採用する理由がないならBにするのが妥当に見えるが
> WPFはどうなのかな?と思って確認したが、mouseover自体がない。
WinFormsにもWPFにもoverとenterはないと思う
何を持って「.NETは最初からイベントの順番は決まっており、遅くとも2005には固定されてた」なの?
stopPropergationでenterが止まるのを見てもわかるように、overの伝搬を利用してenterを実装することを想定した仕様だと思う
入れ子ではなくセットで、overに従属するenterが後から来るのは特段不自然ではない
(C#でもClosing→FormClosing→Closed→FormClosedという順番のイベントがある)
パフォーマンスとIEとjQueryの動作を破壊してまでAを採用する理由がないならBにするのが妥当に見えるが
> WPFはどうなのかな?と思って確認したが、mouseover自体がない。
WinFormsにもWPFにもoverとenterはないと思う
何を持って「.NETは最初からイベントの順番は決まっており、遅くとも2005には固定されてた」なの?
984デフォルトの名無しさん
2018/06/02(土) 12:57:18.61ID:+/nRHGaP 深刻な確証バイアス罹患者だろうからどうしようもない
985デフォルトの名無しさん
2018/06/02(土) 13:14:52.90ID:EcvZfz1b986デフォルトの名無しさん
2018/06/02(土) 13:18:16.74ID:B1JKBGEy C言語って未定義が多いよね
>>986
未定義は馬鹿が踏みがちなので、わざわざ「未定義」と注記しているのだよ
未定義は馬鹿が踏みがちなので、わざわざ「未定義」と注記しているのだよ
988デフォルトの名無しさん
2018/06/02(土) 14:00:10.24ID:XIvhMjpN989デフォルトの名無しさん
2018/06/02(土) 14:06:08.99ID:EcvZfz1b >>983
> 何を持って「.NETは最初からイベントの順番は決まっており
「.NET Event order」でググレば俺には最初にヒットするが
> Windows フォームのイベントの順序
> https://docs.microsoft.com/ja-jp/dotnet/framework/winforms/order-of-events-in-windows-forms
その他諸々。いちいち全部決まってるよ。
また、addEventListenerで足した順に処理される。
> (C#でもClosing→FormClosing→Closed→FormClosedという順番のイベントがある)
ClosingとClosedはobsoleteだ。
そしてセットが問題ではなく、入れ子になってないのが妥当ではないと言っている。
とはいえFormsについては最早どうでもいい。
> stopPropergationでenterが止まるのを見てもわかるように
これはアウトだろ。WHATWGとW3Cのどちらにもそれを想起させる記載はない。
ただ、俺環境では止まらないが。もういっぺん確認してみて。
> 「Cの順なら最速」は意味不明。
これは分からなくていい。
俺が最速の実装を目指したら結果的にこうなる、という例でしかない。
君が別の解になることはあり得るし、問題ではない。ただ、
> overの伝搬を利用してenterを実装する
を想定しているのならそれは俺と同じであり、
・overとoutを伝播させてenterとleaveを作る。
・だからoutよりenterが先に来ているBでは、outを事前に空伝播する必要がある。
・同様に、Aの場合はenterがoverよりも前で、overを空伝播させる必要がある。
・空伝播を一回もさせずに済むのはCの時。
だからCは伝播がそれぞれ1回ずつの4パス、Bはout*2で合計5パス、
Aはさらにoverが2回で合計6パス、という想定だ。
が、まあ、これ自体は重要ではない。
普通は決めるならAだし、あるいは規定無し=実装任せで最速実装できるようにする。
どちらでもないのはものすごく違和感がある。
> 何を持って「.NETは最初からイベントの順番は決まっており
「.NET Event order」でググレば俺には最初にヒットするが
> Windows フォームのイベントの順序
> https://docs.microsoft.com/ja-jp/dotnet/framework/winforms/order-of-events-in-windows-forms
その他諸々。いちいち全部決まってるよ。
また、addEventListenerで足した順に処理される。
> (C#でもClosing→FormClosing→Closed→FormClosedという順番のイベントがある)
ClosingとClosedはobsoleteだ。
そしてセットが問題ではなく、入れ子になってないのが妥当ではないと言っている。
とはいえFormsについては最早どうでもいい。
> stopPropergationでenterが止まるのを見てもわかるように
これはアウトだろ。WHATWGとW3Cのどちらにもそれを想起させる記載はない。
ただ、俺環境では止まらないが。もういっぺん確認してみて。
> 「Cの順なら最速」は意味不明。
これは分からなくていい。
俺が最速の実装を目指したら結果的にこうなる、という例でしかない。
君が別の解になることはあり得るし、問題ではない。ただ、
> overの伝搬を利用してenterを実装する
を想定しているのならそれは俺と同じであり、
・overとoutを伝播させてenterとleaveを作る。
・だからoutよりenterが先に来ているBでは、outを事前に空伝播する必要がある。
・同様に、Aの場合はenterがoverよりも前で、overを空伝播させる必要がある。
・空伝播を一回もさせずに済むのはCの時。
だからCは伝播がそれぞれ1回ずつの4パス、Bはout*2で合計5パス、
Aはさらにoverが2回で合計6パス、という想定だ。
が、まあ、これ自体は重要ではない。
普通は決めるならAだし、あるいは規定無し=実装任せで最速実装できるようにする。
どちらでもないのはものすごく違和感がある。
990デフォルトの名無しさん
2018/06/02(土) 14:41:06.71ID:EcvZfz1b >>983
> パフォーマンスとIEとjQueryの動作を破壊してまでAを採用する理由がないならBにするのが妥当に見えるが
ちなみにこれは最初期からこの実装だった、という想定でいいのか?
ならW3Cは現行のブラウザの実装をそのまま仕様化しただけで、
当然google等が文句を言う筋はないが、
google自身はこの仕様が不味いと理解しているから賛成もせず黙っている、といったところか。
Aの場合はリソース確保/解放をenter/leaveで行い、処理をover/outで行うという、一番綺麗なソースになる。
ただしリソース確保については if (ptr==null) でoverのド頭でやってもいいから、
リソース解放のleaveが最後になっているBにしても問題はない。
だから「高速化」という名目でA->Bにすることはあり得る。
さすがにCまでやると、outの後にenterとなり、全く直感的ではなくなるので、
現行のソースが動かなくなる可能性もある。
(仕様化されていなくてもそれを想定して書いている奴はおり、結果的にそれらが動かなくなる)
だからそこまではやらなかった、というのも割と納得出来るストーリーだ。
で、Bが仕様化されてしまって、ちょ、待てよ、といったところか。
W3Cの連中はマジでコード書いてなさそうなので、googleがここら辺を説明しても通じないとは思う。
それで偉そうに言われたら、分裂するのもまあ納得出来る。
> パフォーマンスとIEとjQueryの動作を破壊してまでAを採用する理由がないならBにするのが妥当に見えるが
ちなみにこれは最初期からこの実装だった、という想定でいいのか?
ならW3Cは現行のブラウザの実装をそのまま仕様化しただけで、
当然google等が文句を言う筋はないが、
google自身はこの仕様が不味いと理解しているから賛成もせず黙っている、といったところか。
Aの場合はリソース確保/解放をenter/leaveで行い、処理をover/outで行うという、一番綺麗なソースになる。
ただしリソース確保については if (ptr==null) でoverのド頭でやってもいいから、
リソース解放のleaveが最後になっているBにしても問題はない。
だから「高速化」という名目でA->Bにすることはあり得る。
さすがにCまでやると、outの後にenterとなり、全く直感的ではなくなるので、
現行のソースが動かなくなる可能性もある。
(仕様化されていなくてもそれを想定して書いている奴はおり、結果的にそれらが動かなくなる)
だからそこまではやらなかった、というのも割と納得出来るストーリーだ。
で、Bが仕様化されてしまって、ちょ、待てよ、といったところか。
W3Cの連中はマジでコード書いてなさそうなので、googleがここら辺を説明しても通じないとは思う。
それで偉そうに言われたら、分裂するのもまあ納得出来る。
991デフォルトの名無しさん
2018/06/02(土) 15:54:42.91ID:t3xHIzYO >>989
>いちいち全部決まってるよ。
「書いてあるのだけ」決まってる。実際にはこの前後や間にMove、Layoutなんかが割り込まれる。
なお、イベントの実行順はC#では保証されない。(アクセサでイベント追加/削除を自由に定義できるため)
>stopPropergationでenterが止まる
すまん、再確認したら、拾い物のサンプルで使ってたライブラリが悪さしてたわ・・・
>最初期からこの実装だった
前そうだった気はするけど、さすがに古いバージョンを確認する気は起きん
Pointerイベントに向けて整理しただけかもしれない
ちなみに、Chromiumでは多分この報告で修正されてる。以前はそれなりに実装が異なったらしい。
https://bugs.chromium.org/p/chromium/issues/detail?id=470947
> 処理をover/outで行うという
それはレアケースな気がするが
>いちいち全部決まってるよ。
「書いてあるのだけ」決まってる。実際にはこの前後や間にMove、Layoutなんかが割り込まれる。
なお、イベントの実行順はC#では保証されない。(アクセサでイベント追加/削除を自由に定義できるため)
>stopPropergationでenterが止まる
すまん、再確認したら、拾い物のサンプルで使ってたライブラリが悪さしてたわ・・・
>最初期からこの実装だった
前そうだった気はするけど、さすがに古いバージョンを確認する気は起きん
Pointerイベントに向けて整理しただけかもしれない
ちなみに、Chromiumでは多分この報告で修正されてる。以前はそれなりに実装が異なったらしい。
https://bugs.chromium.org/p/chromium/issues/detail?id=470947
> 処理をover/outで行うという
それはレアケースな気がするが
992デフォルトの名無しさん
2018/06/02(土) 19:15:14.71ID:EcvZfz1b >>991
> なお、イベントの実行順はC#では保証されない。
マルチキャストデリゲートが登録順に実行される仕様なんだよ。
だからJavaScriptのノリでaddEventListenerしていく分には順番は保証されてる。
まあもうこれはいい。
> それはレアケースな気がするが
それはない。
mouseenterの項目見れば分かるが、それぞれが単発イベントになるから重いんだよ。
> With deep hierarchies, the amount of mouseenter events sent can be quite huge and cause significant performance problems.
> In such cases, it is better to listen for mouseover events.
> https://developer.mozilla.org/en-US/docs/Web/Events/mouseenter
だから実行性能を取るのならover/outで組むべきで、実際そういうサイトも多い。
君にenter/leaveで組む積極的理由があるのならご自由に。
単にC#出身で知らなかっただけならover/outへの切り替えを検討した方がいい。
とはいえ単純な置き換えにはならないが。
> ちなみに、Chromiumでは多分この報告で修正されてる。
> Actual event order: mouseenter mouseover mouseleave mouseout
これは元はenter/leaveを作ってそれを伝播させる実装か。
境界跨ぎを厳密に計算して追跡出来ればこれの方が速いのかもしれん。
で、他に合わせて修正か。なるほどchromiumの連中は面白くないだろう。
これだと元凶はFFだな。以下見る限りIEもベースはバブル順だったらしいし。
> https://www.quirksmode.org/js/events_order.html
後方互換性については、逆に2015/05までのライブラリは全て問題なしだと言えるのだが、
この状況だと今更修正する感じはなさそうだな。
なら積極広報すればいいのに、とも思うが。
> なお、イベントの実行順はC#では保証されない。
マルチキャストデリゲートが登録順に実行される仕様なんだよ。
だからJavaScriptのノリでaddEventListenerしていく分には順番は保証されてる。
まあもうこれはいい。
> それはレアケースな気がするが
それはない。
mouseenterの項目見れば分かるが、それぞれが単発イベントになるから重いんだよ。
> With deep hierarchies, the amount of mouseenter events sent can be quite huge and cause significant performance problems.
> In such cases, it is better to listen for mouseover events.
> https://developer.mozilla.org/en-US/docs/Web/Events/mouseenter
だから実行性能を取るのならover/outで組むべきで、実際そういうサイトも多い。
君にenter/leaveで組む積極的理由があるのならご自由に。
単にC#出身で知らなかっただけならover/outへの切り替えを検討した方がいい。
とはいえ単純な置き換えにはならないが。
> ちなみに、Chromiumでは多分この報告で修正されてる。
> Actual event order: mouseenter mouseover mouseleave mouseout
これは元はenter/leaveを作ってそれを伝播させる実装か。
境界跨ぎを厳密に計算して追跡出来ればこれの方が速いのかもしれん。
で、他に合わせて修正か。なるほどchromiumの連中は面白くないだろう。
これだと元凶はFFだな。以下見る限りIEもベースはバブル順だったらしいし。
> https://www.quirksmode.org/js/events_order.html
後方互換性については、逆に2015/05までのライブラリは全て問題なしだと言えるのだが、
この状況だと今更修正する感じはなさそうだな。
なら積極広報すればいいのに、とも思うが。
993デフォルトの名無しさん
2018/06/02(土) 20:09:52.03ID:X90L1I+w なんの根拠もないのにwhatwg domでググることすらしないで
>(しかしWHATWGはHTMLだけでDOMにはノータッチのようだが)
とか書いちゃうヤツだから、
自分が詳しくない分野に関する話ほどコイツの発言は無視した方がよいぞ
適当にはったりでっち上げてる可能性があるからなー
>(しかしWHATWGはHTMLだけでDOMにはノータッチのようだが)
とか書いちゃうヤツだから、
自分が詳しくない分野に関する話ほどコイツの発言は無視した方がよいぞ
適当にはったりでっち上げてる可能性があるからなー
994デフォルトの名無しさん
2018/06/02(土) 20:35:54.76ID:X90L1I+w >>985
>確認したが、EventOrderについては記載がない。
DOMにマウスイベントの発火順が載ってないのは当たり前だよ
>Abstract
>DOM defines a platform-neutral model for events, aborting activities, and node trees.
別に仕様書の細かいところまで読んで覚えなくてもいいけど、要旨ぐらい読んでよ、マジでマジで
>確認したが、EventOrderについては記載がない。
DOMにマウスイベントの発火順が載ってないのは当たり前だよ
>Abstract
>DOM defines a platform-neutral model for events, aborting activities, and node trees.
別に仕様書の細かいところまで読んで覚えなくてもいいけど、要旨ぐらい読んでよ、マジでマジで
995デフォルトの名無しさん
2018/06/03(日) 01:50:45.77ID:aiyBis5i Google mapをちょっと大きめのディスプレーで開くと、メモリー使用がGB超えるんだよ。
これ何かおかしい方向に進んでるような。
これ何かおかしい方向に進んでるような。
996デフォルトの名無しさん
2018/06/03(日) 16:20:59.52ID:FIkbW6E2 + JavaScript の質問用スレッド vol.126 +
https://mevius.5ch.net/test/read.cgi/tech/1527917483/
https://mevius.5ch.net/test/read.cgi/tech/1527917483/
997デフォルトの名無しさん
2018/06/03(日) 16:21:20.67ID:FIkbW6E2 + JavaScript の質問用スレッド vol.126 +
https://mevius.5ch.net/test/read.cgi/tech/1527917483/
https://mevius.5ch.net/test/read.cgi/tech/1527917483/
998デフォルトの名無しさん
2018/06/03(日) 16:21:51.09ID:FIkbW6E2 + JavaScript の質問用スレッド vol.126 +
https://mevius.5ch.net/test/read.cgi/tech/1527917483/
https://mevius.5ch.net/test/read.cgi/tech/1527917483/
999デフォルトの名無しさん
2018/06/03(日) 16:22:07.58ID:FIkbW6E2 + JavaScript の質問用スレッド vol.126 +
https://mevius.5ch.net/test/read.cgi/tech/1527917483/
https://mevius.5ch.net/test/read.cgi/tech/1527917483/
1000デフォルトの名無しさん
2018/06/03(日) 16:22:24.10ID:FIkbW6E2 + JavaScript の質問用スレッド vol.126 +
https://mevius.5ch.net/test/read.cgi/tech/1527917483/
https://mevius.5ch.net/test/read.cgi/tech/1527917483/
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 104日 23時間 34分 23秒
新しいスレッドを立ててください。
life time: 104日 23時間 34分 23秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 石破茂氏、「高市さんよくぞ言った」の空気に待った 存立危機事態…考えてはいても「公の場で言うことか」:東京新聞 [少考さん★]
- トランプ氏、日中の対立を懸念 首相に「エスカレート回避を」−日本政府関係者(共同) ★2 [蚤の市★]
- 中国外務省「正式な発言撤回なければ受け入れず」 高市首相は台湾有事「存立危機事態」言及せずも「言及しないことと撤回は別問題」★2 [ぐれ★]
- 【おっぱい】「女性を見つけた瞬間に揉みたいという衝動にかられ…」路上で25歳女性に不同意わいせつ行為か 21歳土木作業員の男を逮捕 [nita★]
- トランプ氏、日中対立激化は望まず 直接関与に日本政府内に危機感も [蚤の市★]
- 【大阪】「ここで死にたい」タワーマンション計画に高齢住民の悲痛な叫び 梅田・茶屋町で進む再開発計画 ロフト閉店で 梅田の東側は… [ぐれ★]
- イーノック、そんな装備で大丈夫か?
- 世界「た、高市早苗ちゃん、あまり中国を刺激しないで…」高市早苗「うるさいですね…」ピョンピョン [402859164]
- 水道料金、来年から3倍wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww [329329848]
- 台湾は日本の国土やろ????????????🤔
- 中国政府、ブチギレ「日本政府は高市氏の誤った発言を希薄化、ごまかし、隠蔽しようとしている。絶対に許さない」 [329329848]
- 【📦】Amazonブラックフライデー、期間中最後のフライデーとなる5日目(金曜日)突入!!!
