のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,646,204人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレ+ JavaScript の質問用スレッド vol.135 +

JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
351 : Name_Not - 2018/09/30(日) 08:54:02.57 ID:???.net (+86,-30,-63)
この件は良く知らんのだけど
>>337いわく1.9.1の時点からそういう挙動
・scriptのasyncはHTML5から
・jq 1.9.1リリース 2013年02月04日
・HTML5勧告     2014年10月28日
順番おかしくね
352 : Name_Not - 2018/09/30(日) 09:04:11.75 ID:???.net (+34,-29,-11)
>>351
jQのpromise的動作とjsタグのasync的動作はまったく別物
353 : Name_Not - 2018/09/30(日) 09:05:03.28 ID:???.net (+56,+28,-1)
間違ったscriptタグね、まぁ何でもいいや
354 : Name_Not - 2018/09/30(日) 09:07:27.62 ID:???.net (+68,+0,-40)
>>352
>>346
JQueryの良く分からん挙動がscriptのasyncと関係ないということになると
>>342-343の大長編レスの前提が崩れるんじゃないか?
355 : Name_Not - 2018/09/30(日) 09:18:08.16 ID:???.net (+48,+25,-3)
同期、非同期ぐらい勉強しろよ
356 : Name_Not - 2018/09/30(日) 09:18:49.85 ID:???.net (+62,+26,-38)
>>351
> ・>>337いわく1.9.1の時点からそういう挙動

どこにも1.9.1の時点からなんて書いてない。
少なくとも1.9.1ではそういう挙動だったってだけ。
おそらく最初からそうだろう
357 : Name_Not - 2018/09/30(日) 09:30:03.28 ID:???.net (+44,-29,-108)
>>352
何を持って別物と言ってるのかは知らないが、
PromiseオブジェクトにはPromise.resolve()とPromise.reject()という
メソッドがあって、それぞれ解決済み、リジェクト済みのオブジェクトを返す。

このオブジェクトにあとからthenメソッドでコールバック関数を
くっつけてもちゃんとコールバックが呼ばれるんだよ。
358 : Name_Not - 2018/09/30(日) 09:32:38.78 ID:???.net (+42,-29,-140)
> jQのpromise的動作とjsタグのasync的動作はまったく別物

jsタグってなに?HTMLタグっていいたいの?
HTMLタグのasyncはJavaScriptの実行を遅らせることで
見た目上のパフォーマンスを上げる技術で

その弊害として、DOMContentLoadedが先に呼ばれてしまうから
JavaScriptの発動が起きないってものなんだけど

jQueryはそのことも考慮されてるから、普通に書くだけで
非同期でJavaScriptが読み込まれても大丈夫って話をしてるんだよ

Promise的動作っていうのは、コールバックを後から追加しても
発動するって話。あんた全く別物の話をしてるよ
359 : Name_Not - 2018/09/30(日) 09:39:09.00 ID:???.net (+4,-30,-31)
>>351
http://tokkono.cute.coocan.jp/blog/slow/index.php/xhtmlcss/script-defer-async-attribute-of-major-browsers/

async対応はChrome8(2010年12月)、Firefox 3.6(2010年1月)から
360 : Name_Not - 2018/09/30(日) 09:41:31.01 ID:???.net (+58,+25,+0)
361 : Name_Not - 2018/09/30(日) 09:42:15.90 ID:???.net (+3,-29,-131)
>asyncはJavaScriptの実行を遅らせることで

遅らせてるのか?
htmlの解析処理と当該jsファイルのダウンロード・実行処理とを
切り離して並行処理させることで、htmlのパース・文章や画像の配置等が妨げられないようにしているだけでは?

DOMContentLoadedより後に処理が開始されるのではなく
DOMContentLoadedの前に終わるとは限らないというだけの話では?
362 : Name_Not - 2018/09/30(日) 09:46:11.48 ID:???.net (+3,-29,-113)
> DOMContentLoadedより後に処理が開始されるのではなく
> DOMContentLoadedの前に終わるとは限らないというだけの話では?

今はそういう細かい話はどうでも良くて、
需要なのはscriptタグのasyncを使われてると、DOMContentLoadedが
先に発生してしまうことがあるってことですよ

他にもRequireJSのような非同期でJavaScriptモジュールを読み込む仕組みを
使ったときにも発生しましたね。
363 : Name_Not - 2018/09/30(日) 09:49:05.41 ID:???.net (+57,+29,-24)
たとえ細かい話でも虚偽が含まれてる人の話は信用できないからなあ
364 : Name_Not - 2018/09/30(日) 09:50:48.24 ID:???.net (+57,+29,-9)
はは、信用出来ないっていうだけで、間違ってるとは言えない
あわれよのうw
365 : Name_Not - 2018/09/30(日) 09:57:43.01 ID:???.net (+57,+29,-3)
まあ間違ってるわけじゃないからね。信用出来ないってだけ
366 : 352 - 2018/09/30(日) 09:58:20.98 ID:???.net (+73,+30,-92)
>>354>>357>>358
ごめん訂正するね
言葉足らずだった
「別物」ではなく「実装箇所が別物」
動作としては似たようなものだ
一番最初の気持ちとしてただ>>351の言ってることが的外れだったので意図としてはそれを訂正したかった
367 : Name_Not - 2018/09/30(日) 10:03:04.24 ID:???.net (+31,-29,-29)
window.addEventListener('load', ... )ではどうしてもダメなケースを聞きたい
>>330のような無能サンプルコードは除外するものとする
368 : Name_Not - 2018/09/30(日) 10:06:48.99 ID:???.net (+86,+24,-5)
(たぶんダメなケースなんて)ないです
369 : Name_Not - 2018/09/30(日) 10:10:23.62 ID:???.net (+56,+24,-7)
>>367
ページ内にある画像全てが読み込まれないと
JavaScriptが動かないのでダメ
370 : Name_Not - 2018/09/30(日) 10:11:51.44 ID:???.net (+103,+29,-49)
>>368
操作性悪くなって遅くても動くからダメじゃないんですって主張は禁止なw
その理屈だと電気がなくても生きていけるって回答になる。
371 : Name_Not - 2018/09/30(日) 10:12:21.46 ID:???.net (+48,+25,-1)
画像を減らそう!
372 : Name_Not - 2018/09/30(日) 10:14:13.01 ID:???.net (+52,+29,-2)
ゼロに。ゼロがいい。ゼロにしよう。
373 : Name_Not - 2018/09/30(日) 10:21:20.40 ID:???.net (+3,-29,-184)
asyncで読ませたい
どうしても早いタイミングDOMContentLoadedで動かしたい
asyncするとDOMContentLoadedに間に合わないリスクが怖い・・・
jQueryなら専用のコード書かなくてもすぐに実現!! ←今ココ

ざっくり書くとこんな感じかね?
DOM APIでもできないわけではないし
jQueryならといっても最初からそれを狙った実装ではないようだが
現実として便利に転用できますよ、という具合
374 : Name_Not - 2018/09/30(日) 10:30:51.06 ID:???.net (+36,+29,-33)
>>370
どっちにしてもwindow.onloadだとロードイベントに一個しか関数を紐付けできないから不便極まるんだよなぁ
一個だけしか使わないってんなら関係ないけどさぁ…
375 : Name_Not - 2018/09/30(日) 11:58:19.13 ID:GnzbbCvLi (+35,+29,-49)
>>308
遅レスだが、今時の技術者とは思えん発言だな
彼の中では、大部分のCSS3(草案)が枯れてない=不安定で使えないということになるのか
378 : Name_Not - 2018/10/05(金) 07:10:11.63 ID:???.net (+106,-29,-32)
そんなことよりお前らremoveEventListenerとか使ったことある?
使う機会がまったくないよなアレ
379 : Name_Not - 2018/10/05(金) 08:16:06.35 ID:???.net (+62,+29,-10)
>>378
そもそも今この瞬間までそいつの存在すら知らなかったぞ
380 : Name_Not - 2018/10/05(金) 08:21:08.17 ID:???.net (+78,+29,-27)
>>378
使ったことはないが
disableにできない類のもののイベントリスナを切りたいとか
起動する関数を切り替えたいとか
使える機会はいろいろ思いつくぞ

呼び出される関数側でチェックして即returnとかの別手段でだいたい十分だけど
381 : Name_Not - 2018/10/05(金) 08:54:47.34 ID:???.net (+63,-30,-161)
>>380
> 呼び出される関数側でチェックして即returnとかの別手段でだいたい十分だけど

そういうのはクラス名で制御すべきだよ。

例えばこんな感じにしてると、spanのクラスが
それぞれmode1 or mode2 の場合のみ、該当のものだけ発動してくれる

$('span.mode1').click(function() { alert('click1'); })
$('span.mode2').click(function() { alert('click2'); })
382 : Name_Not - 2018/10/05(金) 09:07:31.77 ID:???.net (+7,-29,-14)
>>378
unload,remove時の後始末
383 : Name_Not - 2018/10/05(金) 12:41:52.32 ID:???.net (+72,+29,-11)
>>378
普通に使うけどなあ
来れなかったら、addしたイベントをどうやって剥がしたら良いのかわからん
384 : Name_Not - 2018/10/05(金) 12:48:12.48 ID:???.net (+89,+29,-8)
addしたイベントを剥がす機会がないということでは?
385 : Name_Not - 2018/10/05(金) 13:05:13.90 ID:???.net (+93,+29,-24)
要素が増減するならばデリゲート使って親要素でイベントを捉えれば良いし
その方が効率なわけで、わざわざイベントハンドラを外すことはないね
386 : Name_Not - 2018/10/05(金) 13:07:47.65 ID:???.net (+102,+25,-3)
>>384
なるほどー
>>385
増減しない時は?
387 : Name_Not - 2018/10/05(金) 13:33:44.87 ID:???.net (+105,+29,-4)
>>386
増減しないならつけっぱなしでいいやん
388 : Name_Not - 2018/10/05(金) 14:49:21.41 ID:???.net (+102,+29,-28)
>>387
つけっぱなしで良いこともあるし外さにゃならんこともあるな
この辺は経験というか、やったことあるかどうかの差だからしゃーないわな
389 : Name_Not - 2018/10/05(金) 15:08:34.23 ID:???.net (+91,+29,-18)
だからその外さなきゃならない場合ってのが無いんだっていう話をしてるんだが
経験があるというのなら、その経験を語れよ
390 : Name_Not - 2018/10/05(金) 15:14:14.60 ID:???.net (+57,+29,-41)
webページ作るのに外さないといけないユースケースは確かにめったに無さそうだ。
実はコンソールで色々いじくって実験する用なんじゃないのか。console.logみたいに
391 : Name_Not - 2018/10/05(金) 15:38:07.82 ID:???.net (+94,+29,-28)
使った経験は無いが、想像するに一つのボタンに複数の機能を持たせるときには使えそう
392 : Name_Not - 2018/10/05(金) 15:45:12.06 ID:???.net (+78,+29,-116)
>>391

>>381を見てね
ロジックで処理を分けるのは古いやり方だよ。今は状態ごとの処理を定義する。
こうすることがバグも減らせるんだよ。ちゃんと外せたか?二重に登録してないか?
なんて考える必要がない。

こういうものこそ経験っていうんだけどな
393 : Name_Not - 2018/10/05(金) 15:49:59.55 ID:???.net (+8,-29,-30)
>>392
ますますremoveEventListenerの使い道ないじゃないか…(憤慨)
394 : Name_Not - 2018/10/05(金) 15:50:44.44 ID:???.net (+70,+29,-20)
>>389
色々あるけどなあ
フレームワークっぽいもの作ってたときとかよく使ったよ
395 : Name_Not - 2018/10/05(金) 15:57:29.66 ID:???.net (+62,+29,-80)
一個のサイト作る場合ではなく
複数のサイトで汎用的に使うコンポーネントなんかを作るケースだと
CSSまで自由に出来なくてJSでやらにゃならんこともあって
そんな時には必要になるなあ

みんなも自分のサイトに組み込んでるフレームワークやライブラリのコードをのぞいてみると
案外使われてるのに遭遇すると思うよ
396 : Name_Not - 2018/10/05(金) 16:46:37.54 ID:???.net (+57,+29,-6)
いちいち重複イベントチェックなんて面倒だ
まとめてごっそり総入れ替えだ
397 : Name_Not - 2018/10/05(金) 17:00:40.46 ID:???.net (+18,-9,-49)
リフレクションAPIやプロキシーAPIと同じでフレームワークとか作る人用か。使うだけの人には洋ナシ体型
398 : Name_Not - 2018/10/05(金) 17:06:44.57 ID:???.net (+51,+28,-3)
経験の差が出ましたなw
399 : Name_Not - 2018/10/05(金) 17:25:12.57 ID:???.net (+47,+29,-2)
まあ無いよね。
400 : Name_Not - 2018/10/05(金) 17:28:11.92 ID:1Er0ekUU.net (+24,+29,-17)
くだらん喧嘩は他所でやれw
ツイッターとか
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について