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

私的良スレ書庫

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

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

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
151 : Name_Not - 2014/09/06(土) 09:55:27.06 ID:???.net (+57,+29,-6)
質問者は再現できないことに明らかに気が付いてないだろ
152 : Name_Not - 2014/09/06(土) 10:01:47.38 ID:???.net (+88,+23,-1)
動かない理由がわかりました!
Rubyでした!
153 : Name_Not - 2014/09/06(土) 10:06:11.11 ID:???.net (+63,+30,-130)
過去に「お客様は神様です」というフレーズが本来の意味とは別の意味で解釈されて広まったが彼の言い分は正にそれだな。
質問者の権力が最上位であると主張した上で権力を振りかざす事に何の疑問も抱いていない。

・質問者は神様です。質問に不備があっても決して否定してはいけません。
・回答者はA級以上の回答しかしてはいけません。B級以下の回答は受け付けません。(A級、B級は質問者が勝手に決めます。回答者が自分の階級を主張することは出来ません。)
・回答者は「再現できない」という回答をしてはいけません。
154 : Name_Not - 2014/09/06(土) 10:34:01.80 ID:???.net (+57,+29,-5)
いけないとは言ってないよ
それって言っても意味ないんじゃね?って話
155 : Name_Not - 2014/09/06(土) 10:37:43.03 ID:???.net (+86,+29,-1)
てか結局原因何だったんだよ
156 : Name_Not - 2014/09/06(土) 11:59:23.57 ID:???.net (+57,+29,-5)
質問に不備があるのは確かだから正してやるのは問題ない
157 : Name_Not - 2014/09/06(土) 12:12:38.05 ID:???.net (+72,+29,-12)
>>155
>>152だね
JavaScriptではなく、Rubyの質問だったらしい
「もっと良く確認せよ」と小一時間問い詰めたい
158 : Name_Not - 2014/09/06(土) 12:18:51.39 ID:???.net (+57,+29,-19)
マジでRubyかよ…
Rubyはよく知らんがオブジェクトリテラルの構文は一緒なのか
159 : Name_Not - 2014/09/06(土) 12:26:29.81 ID:???.net (+57,+29,-4)
いやいや
rubyとJSを間違えるわけねーだろ
160 : Name_Not - 2014/09/06(土) 12:30:01.12 ID:???.net (+57,+29,-22)
何で間違えたかなんて知るかよ
騙りかどうかも知らん
騙りが嫌ならIDやトリップを出せ
161 : Name_Not - 2014/09/06(土) 13:24:25.53 ID:???.net (+57,+29,-3)
Rubyは完全に釣りだった
全然違う
162 : Name_Not - 2014/09/06(土) 19:20:51.73 ID:???.net (+7,-29,-112)
DOMNodeInsertedからMutationObserverに置き換えについてなんですが
MutationObserverが非同期の(完全同期じゃない)せいで
他の同期的な処理に競り負けて処理が割り込めなくなりました

これの解決方法か代替案など何かないでしょうか
今日一日頑張ったんですが万策尽きました・・・
163 : Name_Not - 2014/09/06(土) 20:54:12.65 ID:???.net (+3,-30,-91)
すみません説明不足ですね

置き換え元
document.addEventListener("DOMNodeInserted", function(e) {
 if(.hasAttribute('onmousedown')) e.target.removeAttribute('onmousedown');
}, false);
164 : Name_Not - 2014/09/06(土) 20:56:31.31 ID:???.net (+3,-30,-126)
説明用に単純化しようとして書き換え中に投稿しちゃいました

document.addEventListener("DOMNodeInserted", function(e) {
var node = e.target;
if(node.hasAttribute('onmousedown')) node.removeAttribute('onmousedown');
}, false);

こんな感じの処理を考えています
165 : Name_Not - 2014/09/06(土) 22:13:41.11 ID:???.net (+5,-29,-50)
>>162
あなたの認識がどこかおかしい

> MutationObserverが非同期の(完全同期じゃない)せいで
DOMNodeInserted も非同期でなんら変わらない
166 : Name_Not - 2014/09/07(日) 02:11:28.58 ID:???.net (+3,-30,-199)
>>165
このページを参考に書き換えましたがここにはちゃんと同期的とありますよ
http://msdn.microsoft.com/ja-jp/library/ie/dn265032%28v=vs.85%29.aspx

変更イベント:Mutation events(DOMNodeInsertedやDOMAttrModifiedなど)
→同期的とか同期イベントであると説明があります
変更オブザーバー:MutationObserver
→非同期とは書いてないけれど相違点の欄に遅延通知とあります

他サイトも見ましたが同期なんじゃないかと

どちらにしてもDOMNodeInsertedで割り込めたものが
割り込めなくなったのでMutationObserverの方が発火タイミングは遅いようです
167 : Name_Not - 2014/09/07(日) 15:38:59.77 ID:???.net (+5,-22,-37)
MVCという言葉がありますが
JavaScript界でも、ストレージにアクセスするためのオブジェクトをmodelと呼びますか?
168 : Name_Not - 2014/09/07(日) 15:57:47.44 ID:???.net (+62,+29,-129)
外部とアクセスするためのオブジェクトを何という名前にしたらいいですか?
最終的にはサーバと通信させますが、
今のところはローカルストレージにアクセスします
そういう抽象化されたストレージアクセスを提供するオブジェクトに適した名前は何なのでしょう?
169 : Name_Not - 2014/09/07(日) 16:04:27.82 ID:???.net (+44,+26,+0)
ぐぐれかす
170 : Name_Not - 2014/09/07(日) 16:25:20.25 ID:???.net (+52,+29,-4)
何とググんですか?
171 : Name_Not - 2014/09/07(日) 16:35:35.76 ID:???.net (+33,+5,-5)
バックボーンjsにはmodelがあるみたいですね~
こういうの使った方がいいのかな?
172 : Name_Not - 2014/09/08(月) 13:09:33.03 ID:???.net (+91,+29,-9)
オライリーの「ステートフルJavaScript」って読んだ方がいいですか?
173 : Name_Not - 2014/09/08(月) 13:18:34.69 ID:???.net (+57,+29,-32)
googleとかの検索後補完ってものすごく速いと思うのですが
あれって普通のHTTP通信なのでしょうか?
一般的なサイトが表示される速さと比べて次元の違う反応速度だと思うのですが
174 : Name_Not - 2014/09/08(月) 14:19:35.85 ID:???.net (-1,-29,-38)
解析してみたら普通にXHRのGETで取得して130~200msぐらいで動作してるけど
175 : Name_Not - 2014/09/08(月) 14:29:05.38 ID:???.net (+53,+25,-16)
そうなのですか
HTTPでもテキストデータのやりとりだけなら速いということでしょうか
ありがとうございました
176 : Name_Not - 2014/09/08(月) 23:19:09.93 ID:???.net (+161,+29,-31)
コンストラクタで返り値を返すことで
newの結果を任意のものにすることが出来ると知りました
これはあまり知られてないのでは?
177 : Name_Not - 2014/09/08(月) 23:40:56.43 ID:???.net (+9,-30,-58)
apply(this, arguments)
というコードを本の中で見ました
argumentsは純粋な配列ではないので、何かマズい感じがするのですが
問題ないのでしょうか?
178 : Name_Not - 2014/09/08(月) 23:41:51.24 ID:???.net (+70,+29,-2)
>>176
バッドノウハウだったりして……?
179 : Name_Not - 2014/09/08(月) 23:54:53.09 ID:???.net (+88,+29,-13)
>>176
知る必要がない
180 : Name_Not - 2014/09/09(火) 00:13:11.95 ID:???.net (+63,+20,+0)
>>176
普通に使うけど
181 : Name_Not - 2014/09/09(火) 05:15:07.14 ID:???.net (+40,+5,+0)
>>179
ありますが?
182 : Name_Not - 2014/09/09(火) 10:51:37.84 ID:???.net (+14,-29,-59)
>>176
知られているかは統計次第だし、どうでもいい
使う人は使うし、使わない人は使わないとしかいえない

>>177
Function.prototype.apply の仕様を読めば、理解できるはず
http://es5.github.io/#x15.3.4.3
183 : Name_Not - 2014/09/09(火) 14:49:39.33 ID:???.net (+110,+29,-25)
仕様読むのが面倒くさいのでイエスかノーで答えてくれませんか?
184 : Name_Not - 2014/09/09(火) 17:08:28.26 ID:???.net (+61,+26,+0)
>>183
めんどくさいからパス
185 : Name_Not - 2014/09/09(火) 17:45:04.77 ID:???.net (+94,+29,-3)
知ってるなら面倒くさくないはずですが?
186 : Name_Not - 2014/09/09(火) 19:23:37.77 ID:haOOypsm.net (+37,+26,+0)
187 : Name_Not - 2014/09/09(火) 21:39:17.03 ID:???.net (+50,+8,-23)
>>183
×仕様読むのが面倒くさい
○仕様(あるいは英語)を読めない
188 : Name_Not - 2014/09/09(火) 22:23:03.43 ID:???.net (+75,+30,-50)
>>185
仕様を読むのを面倒くさがるお前の為に解説してやるのが面倒くさい
今答えてお前を甘やかすと、今後仕様を読むのを面倒くさがるお前が仕様を読めば分かる質問をして解説してやる必要性が延々と生まれるのが面倒くさい
189 : Name_Not - 2014/09/09(火) 23:16:01.37 ID:???.net (+78,-29,-50)
jqueryとかで
typeof x === 'undefined'
ってやってるけど、
x === undefined
じゃだめなんですか?
なんかのブラウザのためなのか、他なのかわからないので誰か知ってたら教えてください
190 : Name_Not - 2014/09/10(水) 00:08:22.36 ID:???.net (+1,-29,-134)
undefined は undefinedな値が入ってる変数だから
undefined = 1; とかかされたら困る。

とか言うのが理由。

だけど今のブラウザはundefined変数には代入できなかったりするし、
そもそもundefinedに値を入れるコードがバグと思ってるので
俺はx === undefinedで比較してるよ。
一番素直でわかりやすいからね。

誰もやらない馬鹿なコードのための対応を
冗長で可読性を落としてまでやる価値はないので。
191 : Name_Not - 2014/09/10(水) 00:20:32.26 ID:???.net (+17,-29,-8)
>>189
対象ブラウザ次第
ES5 未対応ブラウザを対象にしないならそれでもいい
192 : Name_Not - 2014/09/10(水) 00:23:53.40 ID:???.net (+63,+0,-9)
>>191
その言い方だとES5未対応なら
動かないって言っているみたいじゃないか。

ES5未対応でも動くというのに。
193 : Name_Not - 2014/09/10(水) 00:29:04.73 ID:???.net (+70,+29,-37)
>>192
どうしてそうなる?
「ES5未対応なら駄目な理由がある」であって「ES5では動かない」に飛ぶのは論理の飛躍だろう
194 : Name_Not - 2014/09/10(水) 00:29:15.27 ID:???.net (+110,+6,-211)
「undefined に何かを代入した時に正しく動かなくなって困る」
という問題は、

「window.alertに何かを代入した時にalertが正しく動かなくなって困る」
のと一緒で、既存の変数に代入するならば互換性があるものを入れるべき。
互換性ががない値をものを代入する奴が悪い。

という説明で解決する話だと思う。
195 : Name_Not - 2014/09/10(水) 00:31:47.30 ID:???.net (+74,+29,-45)
>>194
代入する奴が悪いが、代入しても問題が発生しないコードがより良い事はいうまでもない
196 : Name_Not - 2014/09/10(水) 00:33:12.56 ID:???.net (+41,-29,-57)
>>193
undefinedに代入するコードの方に問題がある。
そっちを修正するべき。
197 : Name_Not - 2014/09/10(水) 00:34:59.38 ID:???.net (+20,-28,-191)
>>195
> 代入しても問題が発生しないコードがより良い事はいうまでもない

うん。それがwindow.alertの話なんですよ。

window.alertに代入しても問題が発生しないコードを書けますか?

undefinedの代入されても問題が起きないようにするべきというならば
window.alert・・・ だけではなく、既存のいろんなものだって
変な値が代入されても問題が起きないようにするべきってことになりませんか?
198 : Name_Not - 2014/09/10(水) 00:35:10.10 ID:???.net (+66,+29,-19)
>>196
自分が全てのコードを修正できる状況ならそれでいいんだろうがな
199 : Name_Not - 2014/09/10(水) 00:36:36.37 ID:???.net (+6,-29,-53)
>>198
だからwindow.alertの話だって自分以外のコードが
window.alertに変なものを代入していたら同じことでしょう?
200 : Name_Not - 2014/09/10(水) 00:39:25.39 ID:???.net (+12,-30,-132)
>>197
> うん。それがwindow.alertの話なんですよ。
今問題にされてるのは undefined だから

> window.alertに代入しても問題が発生しないコードを書けますか?
全く関係ない問題だが、そのコードより前にコードが存在しない前提であれば、Object.defineProperty でも使えば?
繰り返すが、undefined ではする必要はないからな
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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