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

    私的良スレ書庫

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

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

    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
    101 : Name_Not - 2014/11/09(日) 12:00:19.93 ID:???.net (+21,-29,-19)
    まあこの辺りでさんざん語られたことのコピペかな

    + JavaScript の質問用スレッド vol.117 +
    http://peace.2ch.net/test/read.cgi/hp/1403330196/531-
    102 : Name_Not - 2014/11/09(日) 12:19:35.74 ID:???.net (+6,-29,-38)
    >>100
    なにいってんのjQueryもメインはremoveChildで消してるんだけど
    103 : Name_Not - 2014/11/09(日) 12:20:03.17 ID:???.net (+114,+29,-35)
    だいたいベンチ取ればinnerHTMLが猛烈に遅いのは分かることだろ
    104 : Name_Not - 2014/11/09(日) 12:21:07.15 ID:???.net (+57,+29,-10)
    適材適所
    原理主義はアホ
    っていう結論になったはずだが?
    105 : Name_Not - 2014/11/09(日) 12:22:53.36 ID:???.net (+57,+29,-9)
    適材適所ってなんだよ遅くて非効率なものを使う必要はねえんだよ
    106 : Name_Not - 2014/11/09(日) 12:36:22.89 ID:1ma5/uRs.net (+40,+29,-164)
    >>103
    > だいたいベンチ取ればinnerHTMLが猛烈に遅いのは分かることだろ

    速かったよ。

    一見文字列を解釈する必要がある分時間がかかるから
    不思議に思えるが、JavaScriptがネイティブでないのが原因。

    innerHTMLだと、代入した後は
    すべてネイティブで処理されるから早いが、

    それと同等なことをネイティブでないJavaScriptでやると
    1つずつオーバーヘッドが加わる。

    あとさすがにブラウザ、HTMLテキストを解釈するのが仕事だけあって
    相当チューニングされてる。
    107 : Name_Not - 2014/11/09(日) 12:50:16.73 ID:???.net (+56,+28,-29)
    一度に代入できるのに遅いわけないだろw
    108 : Name_Not - 2014/11/09(日) 13:01:20.25 ID:???.net (+78,+29,-111)
    >>103
    遅くなるのは
    innerHTML += string
    を繰り返す場合だけだと思うが

    これは前に挿入されたHTMLの構文解析を重複して繰り返す
    ことに他ならない。遅くなるのは当然でベンチマークとして不公平

    純粋な意味で innerHTML が劇的に遅いとされるベンチマーク結果はあるの?
    109 : Name_Not - 2014/11/09(日) 13:12:23.25 ID:???.net (+48,+30,+0)
    110 : Name_Not - 2014/11/09(日) 13:13:33.42 ID:???.net (+52,+29,-1)
    遅くないって逝ってた奴出てこいよ
    111 : Name_Not - 2014/11/09(日) 13:16:18.20 ID:???.net (+54,+27,-52)
    innerHTMLが敬遠されるのは速さじゃなくてXSS問題の方が大きいと思う
    >>96がinnerHTMLを使ったコードだったら、>>07は吐き気を覚えるのだろう
    112 : Name_Not - 2014/11/09(日) 13:24:21.07 ID:???.net (+57,+29,-48)
    初心者がinnerHTMLが1番って結論を出したらそれがこのスレの総意のように扱うな
    113 : Name_Not - 2014/11/09(日) 13:25:08.17 ID:???.net (+0,-27,-41)
    innerHTML推し派はDOM XSSとか知らない
    114 : Name_Not - 2014/11/09(日) 13:27:46.52 ID:???.net (+57,+29,-8)
    両者の長所短所を知っている人ならば、どっちか片方だけがいいだなんて言わない
    115 : Name_Not - 2014/11/09(日) 13:30:44.00 ID:???.net (+43,+15,-26)
    いいえ、innerHTMLはデメリットしかない
    116 : Name_Not - 2014/11/09(日) 13:40:40.82 ID:???.net (+0,-26,-13)
    117 : Name_Not - 2014/11/09(日) 13:47:36.74 ID:???.net (-3,-30,-77)
    XSS問題はinnerHTMLが抱える根幹の問題
    XSSの発生しない方法があるなら、セキュリティ意識の高い人はinnerHTML以外を選択する
    XSSに目をつぶるとしても、textContent, TextNode#data, insertAdjacentHTML に言及されるべきなのだが、既に>101で語り尽くされてる
    119 : Name_Not - 2014/11/09(日) 13:59:37.37 ID:???.net (-5,-28,-16)
    < と > をエスケープすればいいだけじゃん
    120 : Name_Not - 2014/11/09(日) 14:09:39.57 ID:???.net (+2,-25,-22)
    appendChildがわざわざエスケープしてくれるのに手動でやるのか?
    121 : Name_Not - 2014/11/09(日) 14:24:33.49 ID:???.net (+57,+29,-26)
    おっと、appendChildがエスケープって語弊があるな
    122 : Name_Not - 2014/11/09(日) 14:44:10.78 ID:???.net (+1,-26,-22)
    手動ですればいいじゃん
    innerHTMLの大きな問題点はXSSじゃない
    123 : Name_Not - 2014/11/09(日) 15:14:45.06 ID:???.net (+41,+23,-2)
    はあ?
    124 : Name_Not - 2014/11/09(日) 18:31:54.69 ID:???.net (+55,+28,-23)
    innerHTMLの問題はXSS以外にもあるが、既に>>101で議論されたので改めて議論する事もない
    125 : Name_Not - 2014/11/09(日) 18:33:06.53 ID:DNSyM79S.net (-26,-29,-47)
    >>118
    > DOM追加でinnerHTML使ったらXSSが発生するよ?

    なら、XSSが発生しないように
    チェックすればいいだけじゃないの?
    126 : Name_Not - 2014/11/09(日) 18:39:55.90 ID:???.net (+48,+27,-20)
    >>125
    テキストノード操作すればチェックする必要がない
    故にチェックミスも発生しない
    127 : Name_Not - 2014/11/09(日) 18:42:15.67 ID:???.net (+38,+13,-13)
    >>125
    テキストノード操作すればチェックする必要もない
    128 : Name_Not - 2014/11/09(日) 18:57:48.22 ID:???.net (+23,-4,-33)
    innerHTMLはXSSが問題だと言っている人は、innerHTMLを使ってはいけないっていう主張なの?
    129 : Name_Not - 2014/11/09(日) 19:00:47.42 ID:???.net (+57,+29,-21)
    遅くてDOMを壊す恐れがあるものを使う必要はない
    130 : Name_Not - 2014/11/09(日) 19:02:03.30 ID:???.net (+57,+29,-16)
    ふーんじゃあjQueryも使わないんだね
    131 : Name_Not - 2014/11/09(日) 19:06:20.18 ID:???.net (+57,+29,-17)
    jQueryを立てにして逃げんなよ
    お前の言葉で反論どうぞチキン
    132 : Name_Not - 2014/11/09(日) 19:09:48.39 ID:???.net (+94,+29,-32)
    jQueryは使わないって言えばいいだけなのに、なんで煽るんだろうね
    133 : Name_Not - 2014/11/09(日) 19:17:04.33 ID:???.net (+57,+29,-2)
    自分の言葉で考えたことを述べましょう
    134 : Name_Not - 2014/11/09(日) 19:26:48.72 ID:???.net (+19,-30,-64)
    例えば elm に <p id="a" class="b" style="color:red;">test<b>test</b>test</p> を入れたいと思ったらどうします?
    innerHTML なら一行で済みます。十分大きな利点です
    このコードも innerHTML を使わずに書くというのなら、私の負けです。毎日仏壇に掲げて尊敬します
    135 : Name_Not - 2014/11/09(日) 19:27:46.54 ID:???.net (+86,-15,-64)
    基本的にjQueryでもinnerHTMLを利用しているAPIは使わない
    使わなくて困ったことがない
    136 : Name_Not - 2014/11/09(日) 19:37:06.20 ID:???.net (+61,-30,-95)
    >>134
    > 例えば elm に <p id="a" class="b" style="color:red;">test<b>test</b>test</p> を入れたいと思ったらどうします?
    まず、JavaScriptコード内にコンテンツを埋め込むという設計があり得ないから、そういうコードがあるなら設計から見直す
    HTML上に用意されているコンテンツをJavaScriptで改変するのが基本
    外部コンテンツを利用する場合は XML, CSV, JSON 等の整形フォーマット化されたデータをJavaScriptで取得して一定規則に則った方法でHTML出力する
    138 : 134 - 2014/11/09(日) 20:07:11.50 ID:???.net (+57,+29,-31)
    確かに。言われてみればそうですね
    innerHTMLを使うこと自体は問題ないけど、そもそも使う機会がないですし、使うような設計は見直すべきですね
    大変失礼しました。今から仏壇に掲げてきます
    139 : Name_Not - 2014/11/09(日) 20:31:50.02 ID:???.net (-26,-29,-74)
    >>136
    >XML, CSV, JSON 等の整形フォーマット化されたデータを

    コード内に埋め込むかどうかは別として
    HTML 自体も整形フォーマット化されたデータなので
    外部から取得したHTMLデータをinnerHTMLで直接的に放り込むことは
    ありだと思うよ
    141 : Name_Not - 2014/11/09(日) 21:58:09.64 ID:???.net (-14,-29,-30)
    HTML Templatesが普及すれば万事解決
    143 : Name_Not - 2014/11/09(日) 22:20:03.00 ID:???.net (-8,-29,-49)
    >>142
    あ、HTML Templatesっていうのは、HTML5のtemplate要素のことね
    145 : Name_Not - 2014/11/09(日) 22:39:27.47 ID:???.net (-1,-29,-15)
    すまん俺は141や143でがあるが139ではない
    146 : Name_Not - 2014/11/09(日) 22:51:12.56 ID:DNSyM79S.net (-15,+29,-61)
    また意味もなくinnerHTMLはXSSが起きるって
    言ってる奴いるのか?

    XSSが起きる条件わかってないだろ。
    外部から渡された任意のHTMLを処理するときだけだぞ。

    ここまで言えば、まずありえない話だって気づくよな?
    反論したいなら、具体的に起きる条件を書いて反論してくれよな。
    147 : Name_Not - 2014/11/09(日) 22:54:04.05 ID:???.net (+37,+19,-3)
    外部ってなんのこと?
    148 : Name_Not - 2014/11/09(日) 22:56:09.37 ID:DNSyM79S.net (-14,+29,-13)
    >>147
    どんなデータが来るのかを
    知ることが不可能なもののこと

    例えばユーザーが入力するデータは
    知ることが不可能。
    149 : Name_Not - 2014/11/09(日) 22:57:03.49 ID:???.net (+8,+24,-4)
    じゃあ内部は?
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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