+ JavaScript & jQuery 質問用スレッド vol.7 + [無断転載禁止]©2ch.net (711レス)
上下前次1-新
52(3): 2016/12/11(日)22:43 ID:??? AAS
1. image = new Image();
2. image.src = 何々
3. image.onload = ハンドラ
便乗して質問するが、
こう書いておいたら、画像を読み込んだ後に、ハンドラが確実に呼ばれるのか?
それとも、もし画像を読み込むのが速ければ、もうハンドラは呼ばれないのか?
確か、画像の読み込みは、非同期だよね。
読み込みしながら同時に、3行目も実行されるよね?
53: 2016/12/11(日)23:55 ID:??? AAS
>>52
onloadよりも先に画像が読み込まれれば、onloadは発生しない。
ただこの場合は単に2と3を逆にすればいい。
iframeが特殊なだけ
54: 2016/12/12(月)00:57 ID:??? AAS
>>52
>読み込みしながら同時に、3行目も実行されるよね?
1, 2, 3 を同期的に実行すればハンドラは必ず呼ばれるだろう
キャッシュされていようが image 読み込みは非同期になるので
55: 2016/12/12(月)01:18 ID:??? AAS
> 1, 2, 3 を同期的に実行すれば
その方法を書きなさい。出来ないこと言っても意味がない
56: 2016/12/12(月)03:06 ID:??? AAS
>書きなさい
って、まんまそのまま番号外しただけのコードなんだけど
57(1): 2016/12/12(月)04:56 ID:??? AAS
呼ばれるよ。他のあらゆるAPIでもね。
変更と同じイベントループで登録したイベントハンドラは
順番がどうであれ必ず呼ばれる実装になってる。
58(1): 2016/12/12(月)09:38 ID:??? AAS
img 要素の src 属性と onload イベントリスナの設定タイミング
外部リンク[html]:please-sleep.cou929.nu
有名な話。経験が浅い人には気づけない話だろう。
59: 2016/12/12(月)09:39 ID:??? AAS
やっぱりIE9でもキャッシュ有効時のimg要素はonloadを無視する件
外部リンク[html]:akibahideki.com
60: 2016/12/12(月)12:39 ID:??? AAS
誘導。
■JavaScriptスレ
JavaScript の質問用スレッド vol.131
2chスレ:hp
JavaScript の質問用スレッド vol.122
2chスレ:tech
JavaScript(ECMAScript)質問用スレッド vol.122
2chスレ:tech
■ライブラリスレ
JavaScript ライブラリ総合質問所 vol.5
省3
61(1): 2016/12/12(月)12:40 ID:??? AAS
>>57-58
本来、その回のイベントループ(フレーム)では、ハンドラが登録されるだけで、
画像は次のフレームから読み込まれるから、>52 の順番でもOKなのだな
結局、IE8以前のバグだったのか。
「onreadystatechange にハンドラを設定して、その中で readyState を見る」
とか、何かの本で読んだことがある
62: 2016/12/12(月)19:30 ID:??? AAS
外部リンク:html.spec.whatwg.org
63: 2016/12/12(月)19:38 ID:??? AAS
おお、仕様にも書いてあるんだね
64: 2016/12/12(月)21:10 ID:??? AAS
>>61
仕様のほうが後で作られたのであれば
それはバグじゃない
65: 2016/12/12(月)21:35 ID:??? AAS
HTML4.01の仕様には当然無いとして、初めて仕様化されたのはこの時点かな。
W3C Working Draft 29 March 2012
外部リンク[html]:web.archive.org
IE9のリリースが2011年4月26日だからこれをバグと呼ぶのは無理がある。
66: 2016/12/12(月)21:46 ID:??? AAS
おお、やっぱり昔は仕様になかったんだね
67: 2016/12/12(月)23:08 ID:??? AAS
Safariシェア低すぎるからサポート打ち切ろう
68(1): 2016/12/12(月)23:20 ID:??? AAS
とんでもない
Safariは現在唯一 ECMAScript6に100%対応した最先端ブラウザやぞ
69: 2016/12/12(月)23:47 ID:??? AAS
ECMAScript6に100%対応しただけじゃ
API使えることにはならないし
70: 2016/12/13(火)01:54 ID:??? AAS
仕様をちゃんと読んでると言っても、最新の仕様と
最新のブラウザだけしか見てないのであれば
仕事としてやるには全然足りないからね。
プロとしては未熟。
71: 2016/12/13(火)10:59 ID:??? AAS
>>68
100%は対応していない
例えばtail-callの挙動が一部おかしい
そもそもES5のテストも未だ全クリできた実装はない
上下前次1-新書関写板覧索設栞歴
あと 640 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.012s