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

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

JavaScript覧 / PC版 /
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 / 要望・削除依頼は掲示板へ / 管理情報はtwitter

951 = :

親divの中に100個の子divを作り個別にidやstyle.top, leftを指定、更新時には親divごと消す
ということをやってるのですが、どうやらcloneNode~removeChildよりも
HTMLテキストを繋げてinnerHTMLで上書きする方が倍ほど早いようです
それでもinnerHTMLは使わないべきでしょうか?

952 = :

innerHTMLより遅いなんてよほど馬鹿なコード書いてるとしか思えん

953 = :

innerHTMLは遅い
お前の書き方が悪いだけ
http://jsperf.com/jquery-html-vs-empty-vs-innerhtml/9

954 = :

>>948
実際の動作によって性質を判定する方法をダックタイピング的と言ったのです
これは今後もJavaScriptにおいても重要な手法となるので覚えておいてくださいね
逆にブラウザ名で判別するのはモダンではない
jQuery.browserがなくなったのも同じ傾向上にあるものです

955 = :

>>951
innerHTMLの方が速い場合もあるよ
場合によって使い分けるべきで、どちらの方が絶対にいいというもでもない

956 = :

そりゃ逆だ
物の肩書ではなく持っている性質によって振る舞いが決定される
つまり主導権は物側にあるというのがダックタイピングだ
性質を量るというのはタイプ、つまり型で判定するということで
ダックタイピングとは真逆だぞ

957 = :

>>954
それをダックタイピング的と呼ぶのは恥ずかしいからやめとけ

958 = :

>>955
そうか~?innerHTMLでできることをパーサーを動かさないノード操作に
置き換えて遅くなるとかほとんど無かったんだが
一見すると絶対innerHTMLの早いだろう?って感じのコードでも実際に
計ってみるとノード操作の方が早かったりした
まあそれでも、誤差程度の差にしかならん場所には、
わかりやすさ重視でinnerHTMLを使ったりするけどね

959 = :

>>956
それは違います
レンダリングという実際のふるまいで判定しているのですからダックタイピング的です
比較対象が最終段階で数字となっているのであなたは勘違いしているのです
ものごとの本質を見て下さいね
>>957
C級技術者には伝わらないということが嫌というほど分かったで気を付けますね

960 = :

てか少し前に、このスレでもinnerHTMLの方が速い場合もあるという結論が出てたと思うけど

961 = :

>>959
ダックタイピングっていうのはあくまでも型付けの手法
実際のふるまいは関係無い
実際のふるまいでなくメソッドの名前等(シグネチャ)で判別される
異なるふるまいをするとしても同じシグネチャのメソッドが揃っていれば同じ型とみなされる

962 = :

>>959
俺俺言語やめちくり~

963 = :

>>959
素直に「そうだったんですか」とか
「勘違いしました」って謝ればいいのに
引込みがつかなくなるとこまで意地を張る哀れな性格の奴だな

今からでも「分かりました」って一言かけば
こちらとてそれ以上追求しないし
お前さんの人間度もupするぞ

いい加減見苦しい意地張りはやめよう
恥ずかしいよ?

964 = :

>>960
一般的な操作においては明らかに遅いです

965 = :

コードも貼られてないんだから一般的なケースで話すのが当たり前
~の場合もあるとか言ってたらキリがないし

パフォーマンス云々じゃなくて質問者のコードの問題を取り去って
改善するという考え方でいかないと

967 = :

配列として明示するって具体的にどういうこと?
見た目の問題?
配列以外をエラーにしたいの?
それとも初期値を空配列にしたいとか?
もしくはargumentsみたいなこと言ってるんじゃないよね?

968 = :

>>967
見た目の問題です

配列ってわかるようにしたいです

function(array arr){}みたいにはできないみたいですし
教えてください

971 = :

は?
「arr」で配列だって一目瞭然じゃない?
この程度にDOCなんていらんよ

972 = :

ダックタイピング的に考えると
配列が必ずしもArrayであるとは限らない

974 = :

ダック・タイピング的にやるなら、こうすか?

function( arr ){
  if(arr != null && typeof arr === "object" && 'splice' in arr && 'join' in arr){
    console.log('良し');
  }
  else{
    throw('フジャッケンナ!フジャッケンナ!');
  }
}

976 = :

見た目的でいいんなら悪い書き方だけどこう書くこともできるよ
function ( arr = Array ) { }

977 = :

もし部下がこんなコード書いてたら90分説教だわ

978 = :

>>977
また本質的には変わらないコード書いた上に
長い説教するのだけは勘弁して下さい

981 = :

だからこそのダックタイピング

982 = :

>>964
誰が「一般」を決めるんだよw
innerHTMLが速いのは大量のコードをDOMツリーに追加するような場合だよ
これも十分一般的な用途だが

983 = :

>>963
それはこっちの台詞だよw
最初は優しく教えてあげてるんだからそれで納得しろよ
君と関わってもこっちは何も得るところがないんだから

984 = :

まとめての場合でも50倍遅いって上のベンチで出ちゃってるじゃんwwww
嘘つきw

985 = :

しまった巨人様だ!
皆スルーして早く帰ってもらおう!

986 = :

>>827
この件ですが、pot.jsをヒントにして配列をインターバルにイテレートする処理を書いて
体感速度を大幅に上昇させることができました
ありがとうございました

987 = :

ポットンJSの話何回するんですかねえ……

988 = :

引篭り児童を更生させてあげるのも大人の役目
早く彼が良くなることを願って茶番に付きあおう

989 = :

http://jsperf.com/innerhtml-vs-createelement-test

これなんかはinnerHTMLの方がずっと速い
だからその時々でパフォーマンスを比較するのがいい
一つの方法に固執するのはC級プログラマーの特徴だよ

990 = :

こりゃ大層なツッコミ待ちだこと

991 = :

>>821
確かにお前さん言うとおり只者で無いことは分かった。
表に出ちゃいけない人間だよ、お前。

992 = :

流れが悪いと察するやいなや個人攻撃に切り替える人間の屑
屑だよあんた、屑、屑、屑、くず!1

993 = :

質問スレで議論うぜえな

994 = :

>>982-983はなり済ましです
>>959からここまで書き込んでいません

995 = :

すみませんでした
今ではむきになって言い過ぎたと反省しております

996 = :

反省は人を成長させる

997 = :

実際の使用方法は要素を空にするより追加や書き換えが主
>>953の比べ方こそ特殊

998 = :

富豪プログラミングしろよ

999 = :

999ならパフォーマンス厨昇天

1000 = :

1000ならパフォーマンス厨堕天


←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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