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

    私的良スレ書庫

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

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

    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
    951 : Name_Not - 2013/10/07(月) 17:13:04.62 ID:??? (+36,-30,-139)
    親divの中に100個の子divを作り個別にidやstyle.top, leftを指定、更新時には親divごと消す
    ということをやってるのですが、どうやらcloneNode~removeChildよりも
    HTMLテキストを繋げてinnerHTMLで上書きする方が倍ほど早いようです
    それでもinnerHTMLは使わないべきでしょうか?
    952 : Name_Not - 2013/10/07(月) 17:18:32.92 ID:??? (+55,+29,-19)
    innerHTMLより遅いなんてよほど馬鹿なコード書いてるとしか思えん
    953 : Name_Not - 2013/10/07(月) 17:19:58.29 ID:??? (+87,+25,-14)
    innerHTMLは遅い
    お前の書き方が悪いだけ
    http://jsperf.com/jquery-html-vs-empty-vs-innerhtml/9
    954 : Name_Not - 2013/10/07(月) 17:24:03.60 ID:??? (+110,+29,-77)
    >>948
    実際の動作によって性質を判定する方法をダックタイピング的と言ったのです
    これは今後もJavaScriptにおいても重要な手法となるので覚えておいてくださいね
    逆にブラウザ名で判別するのはモダンではない
    jQuery.browserがなくなったのも同じ傾向上にあるものです
    955 : Name_Not - 2013/10/07(月) 17:27:16.08 ID:??? (+99,+29,-35)
    >>951
    innerHTMLの方が速い場合もあるよ
    場合によって使い分けるべきで、どちらの方が絶対にいいというもでもない
    956 : Name_Not - 2013/10/07(月) 17:28:34.62 ID:??? (+99,+30,-50)
    そりゃ逆だ
    物の肩書ではなく持っている性質によって振る舞いが決定される
    つまり主導権は物側にあるというのがダックタイピングだ
    性質を量るというのはタイプ、つまり型で判定するということで
    ダックタイピングとは真逆だぞ
    957 : Name_Not - 2013/10/07(月) 17:29:02.13 ID:??? (+113,+29,-2)
    >>954
    それをダックタイピング的と呼ぶのは恥ずかしいからやめとけ
    958 : Name_Not - 2013/10/07(月) 17:35:38.33 ID:??? (+76,+29,-112)
    >>955
    そうか~?innerHTMLでできることをパーサーを動かさないノード操作に
    置き換えて遅くなるとかほとんど無かったんだが
    一見すると絶対innerHTMLの早いだろう?って感じのコードでも実際に
    計ってみるとノード操作の方が早かったりした
    まあそれでも、誤差程度の差にしかならん場所には、
    わかりやすさ重視でinnerHTMLを使ったりするけどね
    959 : Name_Not - 2013/10/07(月) 17:39:34.49 ID:??? (+222,+29,-68)
    >>956
    それは違います
    レンダリングという実際のふるまいで判定しているのですからダックタイピング的です
    比較対象が最終段階で数字となっているのであなたは勘違いしているのです
    ものごとの本質を見て下さいね
    >>957
    C級技術者には伝わらないということが嫌というほど分かったで気を付けますね
    960 : Name_Not - 2013/10/07(月) 17:53:21.45 ID:??? (+91,+29,-22)
    てか少し前に、このスレでもinnerHTMLの方が速い場合もあるという結論が出てたと思うけど
    961 : Name_Not - 2013/10/07(月) 17:59:58.58 ID:??? (+78,+29,-86)
    >>959
    ダックタイピングっていうのはあくまでも型付けの手法
    実際のふるまいは関係無い
    実際のふるまいでなくメソッドの名前等(シグネチャ)で判別される
    異なるふるまいをするとしても同じシグネチャのメソッドが揃っていれば同じ型とみなされる
    962 : Name_Not - 2013/10/07(月) 18:02:06.27 ID:??? (+72,+29,-5)
    >>959
    俺俺言語やめちくり~
    963 : Name_Not - 2013/10/07(月) 18:06:16.77 ID:??? (+121,+30,-72)
    >>959
    素直に「そうだったんですか」とか
    「勘違いしました」って謝ればいいのに
    引込みがつかなくなるとこまで意地を張る哀れな性格の奴だな

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

    いい加減見苦しい意地張りはやめよう
    恥ずかしいよ?
    964 : Name_Not - 2013/10/07(月) 18:10:44.15 ID:??? (+104,+29,-4)
    >>960
    一般的な操作においては明らかに遅いです
    965 : Name_Not - 2013/10/07(月) 18:15:48.54 ID:??? (+62,+29,-43)
    コードも貼られてないんだから一般的なケースで話すのが当たり前
    ~の場合もあるとか言ってたらキリがないし

    パフォーマンス云々じゃなくて質問者のコードの問題を取り去って
    改善するという考え方でいかないと
    966 : Name_Not - 2013/10/07(月) 18:25:44.34 ID:??? (-2,-30,-43)
    javascriptで関数の引数を配列として明示したいのですが
    どのようにやればいいのでしょうか?

    function(int[] arr){}
    みたいにやりたいのですが
    967 : Name_Not - 2013/10/07(月) 18:31:13.20 ID:??? (+2,-29,-57)
    配列として明示するって具体的にどういうこと?
    見た目の問題?
    配列以外をエラーにしたいの?
    それとも初期値を空配列にしたいとか?
    もしくはargumentsみたいなこと言ってるんじゃないよね?
    968 : Name_Not - 2013/10/07(月) 18:45:49.65 ID:??? (+4,-29,-24)
    >>967
    見た目の問題です

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

    function(array arr){}みたいにはできないみたいですし
    教えてください
    969 : Name_Not - 2013/10/07(月) 18:48:49.50 ID:??? (-6,-29,+0)
    >>968
    jsdoc
    970 : Name_Not - 2013/10/07(月) 18:49:07.94 ID:??? (-1,-30,-51)
    >>968
    /**
    * @param {Array} arr 配列でね!
    */
    function( arr ){}

    ではだめかね
    971 : Name_Not - 2013/10/07(月) 18:51:43.08 ID:??? (+57,+29,-42)
    は?
    「arr」で配列だって一目瞭然じゃない?
    この程度にDOCなんていらんよ
    972 : Name_Not - 2013/10/07(月) 18:53:21.40 ID:??? (+9,-18,-4)
    ダックタイピング的に考えると
    配列が必ずしもArrayであるとは限らない
    973 : Name_Not - 2013/10/07(月) 18:56:30.20 ID:??? (-1,-29,-2)
    TypeScriptでも使ったほうがいいな
    974 : Name_Not - 2013/10/07(月) 19:08:26.31 ID:??? (+3,-30,-135)
    ダック・タイピング的にやるなら、こうすか?

    function( arr ){
      if(arr != null && typeof arr === "object" && 'splice' in arr && 'join' in arr){
        console.log('良し');
      }
      else{
        throw('フジャッケンナ!フジャッケンナ!');
      }
    }
    975 : Name_Not - 2013/10/07(月) 19:20:19.72 ID:??? (-1,-29,-84)
    ダックタイピング&実用的にはArray.fromでパースするのがいい
    lengthを持つあらゆるオブジェクトとイテレータブルオブジェクトを配列に変換できるすぐれもの
    976 : Name_Not - 2013/10/07(月) 19:32:48.40 ID:??? (+2,-29,-19)
    見た目的でいいんなら悪い書き方だけどこう書くこともできるよ
    function ( arr = Array ) { }
    977 : Name_Not - 2013/10/07(月) 20:06:31.43 ID:??? (+91,+29,-8)
    もし部下がこんなコード書いてたら90分説教だわ
    978 : Name_Not - 2013/10/07(月) 20:08:57.97 ID:??? (+70,+29,-9)
    >>977
    また本質的には変わらないコード書いた上に
    長い説教するのだけは勘弁して下さい
    979 : Name_Not - 2013/10/07(月) 20:13:13.83 ID:??? (-1,-29,-50)
    >>976
    これ引数指定し忘れたりundefinedだっらarrがArrayオブジェクトになるんだぞ
    それでもいいんか?
    980 : Name_Not - 2013/10/07(月) 20:40:40.44 ID:??? (-1,-29,-25)
    まずArrayかどうかを判断するのがもの凄く難しいからな……
    Array.isArrayが使える環境なら問題ないんだけど
    981 : Name_Not - 2013/10/07(月) 20:50:59.28 ID:??? (+51,+28,-1)
    だからこそのダックタイピング
    982 : Name_Not - 2013/10/07(月) 21:14:31.13 ID:??? (+105,+29,-58)
    >>964
    誰が「一般」を決めるんだよw
    innerHTMLが速いのは大量のコードをDOMツリーに追加するような場合だよ
    これも十分一般的な用途だが
    983 : Name_Not - 2013/10/07(月) 21:15:58.18 ID:??? (+74,+30,-28)
    >>963
    それはこっちの台詞だよw
    最初は優しく教えてあげてるんだからそれで納得しろよ
    君と関わってもこっちは何も得るところがないんだから
    984 : Name_Not - 2013/10/07(月) 21:17:43.81 ID:??? (+51,+23,-21)
    まとめての場合でも50倍遅いって上のベンチで出ちゃってるじゃんwwww
    嘘つきw
    985 : Name_Not - 2013/10/07(月) 21:19:58.51 ID:??? (+57,+29,-6)
    しまった巨人様だ!
    皆スルーして早く帰ってもらおう!
    986 : Name_Not - 2013/10/07(月) 21:22:10.32 ID:??? (+11,-25,-18)
    >>827
    この件ですが、pot.jsをヒントにして配列をインターバルにイテレートする処理を書いて
    体感速度を大幅に上昇させることができました
    ありがとうございました
    987 : Name_Not - 2013/10/07(月) 21:24:08.45 ID:??? (+57,+29,-5)
    ポットンJSの話何回するんですかねえ……
    988 : Name_Not - 2013/10/07(月) 21:26:59.11 ID:??? (+57,+29,-44)
    引篭り児童を更生させてあげるのも大人の役目
    早く彼が良くなることを願って茶番に付きあおう
    989 : Name_Not - 2013/10/07(月) 21:27:01.27 ID:??? (+57,+29,-42)
    http://jsperf.com/innerhtml-vs-createelement-test

    これなんかはinnerHTMLの方がずっと速い
    だからその時々でパフォーマンスを比較するのがいい
    一つの方法に固執するのはC級プログラマーの特徴だよ
    990 : Name_Not - 2013/10/07(月) 21:28:11.07 ID:??? (+52,+29,-4)
    こりゃ大層なツッコミ待ちだこと
    991 : Name_Not - 2013/10/07(月) 21:29:30.45 ID:??? (+70,+29,-9)
    >>821
    確かにお前さん言うとおり只者で無いことは分かった。
    表に出ちゃいけない人間だよ、お前。
    992 : Name_Not - 2013/10/07(月) 21:33:02.76 ID:??? (+57,+29,-27)
    流れが悪いと察するやいなや個人攻撃に切り替える人間の屑
    屑だよあんた、屑、屑、屑、くず!1
    993 : Name_Not - 2013/10/07(月) 21:34:05.15 ID:??? (+41,+18,-15)
    質問スレで議論うぜえな
    994 : Name_Not - 2013/10/07(月) 21:35:02.43 ID:??? (+84,+29,-4)
    >>982-983はなり済ましです
    >>959からここまで書き込んでいません
    995 : Name_Not - 2013/10/07(月) 21:41:42.53 ID:??? (+57,+29,-15)
    すみませんでした
    今ではむきになって言い過ぎたと反省しております
    996 : Name_Not - 2013/10/07(月) 21:47:48.95 ID:??? (+52,+29,-4)
    反省は人を成長させる
    997 : Name_Not - 2013/10/07(月) 21:48:15.72 ID:??? (+69,+29,-27)
    実際の使用方法は要素を空にするより追加や書き換えが主
    >>953の比べ方こそ特殊
    998 : Name_Not - 2013/10/07(月) 21:53:24.01 ID:??? (+50,+27,-14)
    富豪プログラミングしろよ
    999 : Name_Not - 2013/10/07(月) 22:05:29.38 ID:??? (+25,+2,-13)
    999ならパフォーマンス厨昇天
    1000 : Name_Not - 2013/10/07(月) 22:06:17.46 ID:??? (+49,+26,-13)
    1000ならパフォーマンス厨堕天
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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