元スレ+ JavaScript の質問用スレッド vol.115 +
JavaScript覧 / PC版 /みんなの評価 :
651 = :
>>649
お前、趣味でやってるのかよwww
652 = :
趣味でやってる人は、0.0001秒にまで
こだわったりするからなw
653 = :
ベンチ取ってみたんだけど何これ?おかしくね?何故rowが糞遅いのか?firefoxだと、何故row2が一番速いのか?
http://jsperf.com/row-vs-lodash
654 = :
おかしいのはベンチの取り方
655 = :
100万回のループで10秒も時間が違ったのだ!
1秒の方が10倍も速いんだぞ!
10倍もの差は無視できない!
でもそれ1回あたり0.00001秒ですよね?
656 = :
なるほど。ベンチの取り方かえたら、おかしくなくなったわ
658 = :
処理系の実装によるだろうね。
このケースなら構文解析で定数に置換されるだろうから、
速度は同じになるんじゃないかな。
659 = :
俺がそうだったので速度厨の気持ちも分かるが
lodash化する過程で大量の無駄な処理に気づいた
部分的なベンチマークに拘ると全体的なアルゴリズムが洗練されないのだな
関数言語的プログラミングは汚さを許さないというか、
汚いところが浮き上がって見えるので、処理が洗練されていく
660 = :
dom要素をcloneNode(true)して、id属性だけは削除したいです
しかしcloneしたもののidにヌルストリングやnullを代入しても消えません
deleteで削除しても駄目です
どうすれば消えるのでしょうか?
662 = :
それ用のメソッドがあったんですね
ありがとうございました
663 = :
テキストを書き換えるときはinnerHTMLを使うとDOMが壊れるからやめろっていいますけど
これってバグなんじゃないのでしょうか
664 = :
違うでしょうね
665 = :
そんな話聞いたことない
666 = :
じゃあまず聞いたことある人いませんか?
667 = :
<span id="testnode">before</span>
a=document.getElementById("textnode");
a.innerHTML="after";//これはOK
<span id="testnode"><a href="http://hoge.com/">before</a></span>
a=document.getElementById("textnode");
a.innerHTML="<a href=\"http://hoge.com\">after</a>";//これはだめ
という話 そしてやめろってのはeval系みたいな作用でブラウザによろしくないという話で
動くには動く。ただそんなコード使ってる人は初心者と言われて当然
<span id="testnode"><a href="http://hoge.com/">before</a></span>
a=document.getElementById("textnode");
b=document.createElement("a");b.href="http://hoge.com/";
b.innerHTML="after";a.appendChild(b);//こうするのが通常
これは10000回繰り返すと速度が10倍遅いんだけどとかいう話ではなく
数十回レベルでもハッキリと遅いのが見える 明らかにブラウザに負荷をかけてる
668 = :
>>663
テキストを書き換えるなら
element.textContent や textNode.data の方が
より適切ってことではないの?
( < や > は実体参照に置換してくれる)
実際に要素を生成することも含むならやめる必要はないと思う
(その場合に DOMが壊れるとは具体的に何を意味するのかわからん)
669 = :
testnodeとtextnodeが間違ってることに気づいた
そしてDOMが壊れるってのだとこっちかー
<div id="aaa"><div id="bbb">cliok!!</div></div>
a=document.getElementById("aaa");
b=document.getElementById("bbb");
b.addEventListener("click", function(){alert("test")},false);
a.innerHTML.replace("cliok","click");//イベント消えちゃうよー
670 = :
連投すまん 三度目の正直、次からはしっかり確認する。最終行
a.innerHTML=a.innerHTML.replace("cliok","click");
が正解
671 = :
innerHTMLはdomを真新しいものに置き換えるので
変数がその参照を持っていたらまずいとかその程度のことだろ
672 = :
>>665
え、驚きなんですが・・・?
徳丸先生とかあごちゃんのtwitterチェックしてませんの?
ちょっと前に話題に上がってるネタですよ
673 = :
>>664-666
無知って恥ずかしいですね
>>667
evalみたいなっていうのは何の話なのかよくわかりませんが
そういうことではなくてinnerHTMLで書き換えるとDOMが壊れるのでXSSが起こるのはinnerHTMLがdomのめんどうみないのがおかしいんじゃないかって話です
674 = :
>>672
http://d.hatena.ne.jp/hasegawayosuke/20140508/p1
これかぁ その二方は知らないけど、この記事書いてるhasegawaさんならそれなりに(
この手のバグはそのうち治るから放置でいいよ(´・ω・)
675 = :
JavaScriptの情報のアンテナ低いやつ多すぎて話になんねえわ
676 = :
だからなんでdomが壊れるんだよ
壊れねーよ
677 = :
>>676
情弱バカは書き込むんじゃねえよ
壊れるんだよ
678 = :
壊れてたまるかよw
そんなことで壊れるならプログラム動かねーから
679 = :
>>673
いくつか想像はつきますが、事象を特定できないので質問するならもっと正確に質問して下さい。
「DOMが壊れる」って何ですか?
本当に理解できているのかあやしくなる表現ですね。
680 = :
>>678-679
もうお前みたいなウルトラのバカは勉強してから書き込めよ
http://www.owasp.org/index.php/DOM_based_XSS_Prevention_Cheat_Sheet
681 = :
あきらかに理解してないだろ
他人の書いた文章をそのまま使うな
自分の頭で咀嚼してから自分の言葉で表現しろ
それがB級以上のプログラマーの在り方だ
682 = :
>>667 >>668 >>669 >>670 ここらへんのネタか
>>672 >>674 こっちのネタかは
質問者の文だと分からんよね 後者っぽいけど
そして、理解せず質問するなってのは変じゃないか
理解出来てたら質問スレに来ないと思う
683 = :
innerHTMLにどんな値を代入しようが、「壊れる」ということはないと思うんだけど
「想定しない木構造になってしまう」という意味?
なんにせよユーザー入力された値を信用してそのまま使うなというのはHTMLに限らずだね
684 = :
なるほど
一理ある
685 = :
>>674
これはinnerHTMLのバグじゃないだろ
686 = :
domが壊れるんじゃなくてinnerHTMLが間違ってるんじゃん
フォームごとinnerHTMLで渡すとかどんな状況だ?
そんなくそコード普通は書かないから
687 = :
>>682
理解出来なくて質問するのはいいとしても、「知ったかぶりで適当な事を発言して、他人に知らないんですか?」と嘯くのは勘弁してほしいわ
688 = :
>>これってバグなんじゃないのでしょうか
バグ以外の何ものでもないだろうな
689 = :
よく分からないから単純な再現コード書いてください
690 = :
>>687
いや理解できないのはお前がそれを知らないから理解できないだけ
>>680
を全文読みましょう
少なくともinnerHTMLに関連する箇所だけでも読みましょうね
691 = :
何者にもなれないお前たちに告げる
↓
692 = :
ここで聞いたおれが一番のバカだったわ
コアな部分にはあんまり興味のないお遊び野郎しかいなくて残念だ
693 = :
確かに金にならないものに興味は無い
694 = :
いやだから実証コード書けよ
695 = :
>>694
>>680のリンクにありますが?ちゃんと読んでから書き込めしろや東京スカイツリーバカか
696 = :
そんなのいちいち読んでられるか
単純な実証コードって言ってんだろ
お前が理解した範囲で書けよ
697 = :
「ボクちゃんは自分で考えることも出来ないので
代わりに考えてください」って言ってるようにしか見えない
698 = :
>>690
なら初めから具体的に質問しろよ
質問者はどれにも触れてないのに、質問内容が理解出来る訳ないだろ
>663から>680を確定させるには情報が不足してるとは思わないのか
699 = :
>>696
単純なコードというレベルのものが>>680ありますよ?
初級者は無理に回答しなくていいのよ^^
700 = :
>>698
もうね情弱は無理に答えなくていいって
innerHTMLのバグを知らないお前はくちだすなよ
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.113 + (1001) - [97%] - 2014/1/25 12:46
- + JavaScript の質問用スレッド vol.135 + (1002) - [97%] - 2018/11/23 10:30
- + JavaScript の質問用スレッド vol.125 + (1001) - [97%] - 2015/10/7 17:45
- + JavaScript の質問用スレッド vol.119 + (1002) - [97%] - 2014/10/3 15:30
- + JavaScript の質問用スレッド vol.118 + (1002) - [97%] - 2014/8/29 22:30
- + JavaScript の質問用スレッド vol.117 + (1009) - [97%] - 2014/8/5 3:30
- + JavaScript の質問用スレッド vol.116 + (1002) - [97%] - 2014/7/1 0:45
- + JavaScript の質問用スレッド vol.114 + (1001) - [97%] - 2014/5/3 10:45
- + JavaScript の質問用スレッド vol.112 + (1001) - [97%] - 2013/11/27 16:46
- + JavaScript の質問用スレッド vol.111 + (1001) - [97%] - 2013/11/4 6:00
- + JavaScript の質問用スレッド vol.110 + (1001) - [97%] - 2013/10/13 14:01
- + JavaScript の質問用スレッド vol.113 + (1001) - [97%] - 2014/3/15 21:30
- + JavaScript の質問用スレッド vol.105 + (1001) - [97%] - 2013/5/20 4:45
- + JavaScript の質問用スレッド vol.109 + (1001) - [95%] - 2013/10/7 13:16
- + JavaScript の質問用スレッド vol.121 + (1001) - [95%] - 2022/11/29 16:30
- + JavaScript の質問用スレッド vol.126 + (348) - [95%] - 2023/1/12 17:00
- + JavaScript の質問用スレッド vol.100 + (1001) - [95%] - 2012/6/13 22:46
トップメニューへ / →のくす牧場書庫について