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

    私的良スレ書庫

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

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

    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
    301 : Name_Not - 2014/02/11(火) 19:25:49.54 ID:??? (+52,+29,-58)
    jQuery使ってる時点で生JavaScriptと大差のコスト掛かってるって知ってるのかね?
    そんなにパフォーマンス気にするならjQueryなんて使っちゃ意味ない
    302 : Name_Not - 2014/02/11(火) 20:36:24.96 ID:??? (+39,-30,-116)
    var $={
    id:function(a){
    jid=document.getElementById(a);return this},
    edit:function(a){jid.innerHTML=a;return this},
    click:function(a){jid.addEventListener('touchend',a)}
    };

    $.id("text").edit('touch').click(function(){
    $.id('text').edit('touched')
    })
    もどきをがんばって作ったんだけど、俺には無理。
    303 : 270 - 2014/02/11(火) 20:52:44.43 ID:qP1Qd/+/ (-15,+28,-55)
    >>301
    勿論、知っているからこそ「ネイティブ実装の関数を使うべき」と主張している。
    本当に拘るのなら getElementById でも使えばいい。
    304 : Name_Not - 2014/02/11(火) 21:20:32.46 ID:??? (+68,+29,-103)
    >>302
    prototypeでも使えば実装できると思うが、なぜ $ を使いたがるんだろうか。
    間違いにく可読性は下がるのに $ を使いたがる人が多くて悲しい。
    (ES3の機械的に生成された云々の規約はどうしてなくなったんだろうなあ)
    305 : Name_Not - 2014/02/11(火) 22:01:05.39 ID:??? (+53,+29,-138)
    jQueryオブジェクトの生成はコストがかかるから変数に保持しておくというのがjQueryのTipsだよ。
    jQueryは重いからパフォーマンスなんて気にしなくていいなんてのはバカの暴論。
    306 : Name_Not - 2014/02/11(火) 22:21:30.97 ID:??? (+3,-30,-220)
    excelの「縮小して全体を表示」のようにボックスにテキストが納まりきらないときは
    縮小して全てのテキストを表示したいんだけど、widthをテキストの文字数で割った値
    をfont-sizeに設定してみたら文字が小さくなりすぎてしまう。
    $(function() {
    var s = $("div").css("width").match(/\d+/)/$("div").text().length;
    $("div").css("font-size", s + "px");
    });
    308 : Name_Not - 2014/02/11(火) 22:39:54.19 ID:??? (+4,-30,-192)
    function g(id){
    if(!(this instanceof g)) return new g(id);
    this.elm = document.getElementById(id);
    }
    g.prototype.edit = function(text){
    this.elm.innerText=text;
    };
    g.prototype.tap=function(event){
    this.elm.addEventListener('touchend',event)
    };
    g.prototype.add=function(text){
    this.elm.innerText+=text
    };

    var count=0
    g("e").tap(function(){
    if(count>5){count=0}
    g('t').add(list[count])
    g('e').edit(count);count++
    })

    改良
    309 : Name_Not - 2014/02/11(火) 22:40:58.97 ID:??? (+67,+29,-91)
    >>305
    お前のほうが読解力のない馬鹿の暴論だろ
    パフォーマンス第一に考えるならjQueryは不利って話を
    jQuery使うならパフォーマンスは捨てろなんて解釈脳味噌腐ってるね
    310 : Name_Not - 2014/02/11(火) 22:55:33.28 ID:??? (+34,-29,-42)
    ベンチマークしてみた。

    jQueryオブジェクトの生成に1msもかからなかった。
    311 : Name_Not - 2014/02/11(火) 23:59:46.66 ID:??? (+96,+29,-143)
    jQueryを使うのだからパフォーマンスを考えないと、重くなる。それだけのことだよ。

    パフォーマンス気にするならjQueryなんて使っちゃ意味ない
    対偶 jQueryを使うならパフォーマンスを気にするな

    論理学の基礎もわからん奴と議論は無理ですな。
    312 : Name_Not - 2014/02/12(水) 00:02:52.43 ID:??? (+3,-24,-92)
    ボトルネックの所だけネイティブ関数
    他はjQueryというのもありだろう

    ボトルネックの部分をネイティブ関数にしたら
    jQuery使う意味が無くなるなら話は別だが
    313 : Name_Not - 2014/02/12(水) 00:05:29.55 ID:??? (+70,+29,+0)
    >>311
    それ対偶になってないから。
    314 : Name_Not - 2014/02/12(水) 00:09:06.98 ID:??? (+94,+29,-74)
    ごめん、待遇にはなってるけど、

    ・パフォーマンスを第一に考えるならjQueryを使うべきでない
    ・jQueryを使うときもパフォーマンスに気をつけなければならない

    この2つは両立するの。わかる?
    315 : Name_Not - 2014/02/12(水) 00:23:40.15 ID:??? (+67,+29,-65)
    >>310
    セレクタの中にjQuery独自の物が含まれてたら遅くなると思う。querySelector()に任せられないから。
    でも要素数が少ないと違いがわからないかもな。

    とは言え、キャッシュを一回のハンドラ呼び出しを超えて保持するのには反対するが。
    316 : Name_Not - 2014/02/12(水) 00:39:56.43 ID:??? (+91,+29,-21)
    普通に考えて、変数にとっておいた方がいいだろ
    これで複雑とか言ってるのは知的障害者か
    317 : Name_Not - 2014/02/12(水) 02:04:28.22 ID:??? (+70,+29,-9)
    >>316みたいな必死なのが出る時点で
    意味が無いってのがわかるだろう?
    318 : Name_Not - 2014/02/12(水) 02:08:36.43 ID:??? (+109,+29,-60)
    >>314
    そもそも「パフォーマンスを第一に考えること」がダメなんだよね。

    たとえば1分頑張って1ミリ秒速くしました!って言っても
    60000回実行して初めて時間の節約になる。

    仕事だと1分間の人件費をかけるぐらいなら
    1ミリ秒遅いほうがマシじゃんってことになる。
    319 : Name_Not - 2014/02/12(水) 04:09:31.75 ID:??? (+72,+29,-35)
    >>318
    だから第一に考えることがアホだと言ってるんだって
    誰もjQuery使うななんて言ってねえよ
    320 : Name_Not - 2014/02/12(水) 04:18:57.28 ID:??? (+57,+29,-35)
    ライブラリ開発者とかならともかく
    どうせそうじゃねーんだろうから
    この程度でキャッシュなんかすんなや。
    321 : Name_Not - 2014/02/12(水) 08:31:15.63 ID:??? (+57,+29,-10)
    したいならすればいいし、したくないならしなきゃいいだろ
    何を不毛な議論をしているのか
    322 : Name_Not - 2014/02/12(水) 08:35:33.06 ID:??? (+94,+29,-29)
    キャッシュの仕方を聞いているのに
    キャッシュなんてすんなとか言い出す奴が一番馬鹿だな
    あるケースの時にキャッシュをした方がいいかしない方がいいか、という判断はあり得るが
    そうじゃないなら質問自体に集中しろよ
    だからC級プログラマーなんだよ
    323 : Name_Not - 2014/02/12(水) 08:37:22.03 ID:??? (+19,-8,-34)
    jsbinのライブラリ追加フォームに
    WIPというのがありますが、これはどういう意味ですか?
    324 : Name_Not - 2014/02/12(水) 08:58:58.17 ID:??? (+70,+29,-9)
    >>322
    誰がキャッシュの仕方なんか聞いてるんだよ?
    勝手に違う話始めるな。
    325 : Name_Not - 2014/02/12(水) 10:22:41.19 ID:??? (+90,+29,-9)
    キャッシュ否定派はローカル変数へのキャッシュもしないのか?
    くそみたいなコード書いてそう
    326 : Name_Not - 2014/02/12(水) 10:28:55.18 ID:??? (+69,+29,-56)
    >>325
    そうやって過度の一般化をするのはC級プログラマ
    jQueryオブジェクトをあの例示された使い方で
    キャッシュしないという話。
    327 : Name_Not - 2014/02/12(水) 11:55:01.49 ID:??? (+57,+29,-34)
    指定したノードの次のテキストノードを取得したいです
    階層の上下を無視し、コードで見たときの「次」です
    つまり兄弟ノードとは限りません
    これを一番簡単にやるにはどうしたらいいでしょうか
    328 : Name_Not - 2014/02/12(水) 13:08:00.80 ID:??? (+69,-29,-19)
    ifの結果returnする時
    elseを書くべき?書かないべき?
    329 : Name_Not - 2014/02/12(水) 14:07:21.80 ID:??? (-1,-29,-12)
    >>328
    elseの後 returnだけなら書く
    330 : Name_Not - 2014/02/12(水) 15:51:35.88 ID:??? (-1,-29,-43)
    テキストノードの指定した位置に文字列を挿入するにはどうしたらいいのでしょうか?
    insertNodeなどノード単位の挿入しかないようですが
    文字列を挿入したいです
    331 : Name_Not - 2014/02/12(水) 16:00:22.81 ID:??? (+8,-19,-7)
    文字列を別の変数に入れて、いじって、元に戻す
    332 : Name_Not - 2014/02/12(水) 16:07:03.26 ID:??? (-1,-29,-16)
    ありがとうございます
    dataに再代入したら、動いているようですが
    dataでいいのでしょうか
    333 : Name_Not - 2014/02/12(水) 16:25:20.23 ID:??? (+17,-30,-33)
    data でok

    CharacterData インタフェースには
    insertData(offset, string)
    とかもあるけどな(多少高速かもしれない)
    334 : Name_Not - 2014/02/12(水) 18:50:06.33 ID:??? (+56,+29,-1)
    >>328
    俺書かないわ
    335 : Name_Not - 2014/02/12(水) 20:15:15.53 ID:??? (+72,+29,-82)
    >>328
    else を書かなくて済むなら書かない。
    当たり前だと思うが、何を迷っているのか良くわからん。
    状況が曖昧すぎて答えようがないのが正直なところ。
    コードを例示した方が具体的なアドバイスをもらえると思われる。
    出口を一つにする考え方としては returnValue を変数にしておいて最後に return する。
    336 : 270 - 2014/02/12(水) 20:56:48.97 ID:i+Mfbkd3 (-22,+30,+0)
    >>305
    > jQueryオブジェクトの生成はコストがかかるから変数に保持しておくというのがjQueryのTipsだよ。
    Tipsとしてはわからなくもないが、わずかな速度向上の為にメモリを消費するのはどうか、と個人的には思う。
    「最近のPCは高スペックだからメモリはガンガン使っていいんだよ」という風潮なのかもしれないが、消費メモリ増加は訪問者に優しいコーディングとは言い難い。

    >>291の手法は確実に #id1 への参照速度を向上させるが、代償として「メモリ消費量が増加」し、「メモリリークのバグを誘発しやすい循環参照パターン」になってしまっている。
    IE6は希少種だからいいだろうと思われるかもしれないが、バグを誘発しやすいといわれる循環参照パターンのコードはお勧めしない。
    一応、jQueryはremoveEventListenerまで実行する作法のあるライブラリではあるが、循環参照パターンは回避できるなら回避したほうが良いと思う。

    ---
    パフォーマンスを向上させる場合はボトルネックとなる部分を見つけてそこから解消させていくのが基本。
    jQueryオブジェクトをキャッシュさせることによる速度向上、jQueryをやめることによる速度向上、...etc
    を比較してボトルネックとなる部分を見つけ出さなきゃ意味がない。
    だから、「jQueryをやめることによる速度向上」が「キャッシュすることによる速度向上」を上回るのであればjQueryをやめることを選択すべきだといえる。
    そういう意味でjQueryを使用することに疑問視する声があると思うのだが。
    作法としてこのコードの方がいい云々の話であれば、「メモリ消費量増加」「循環参照パターンの使用」と「わずかながらの速度向上」を秤にかけて判断する必要がある。
    338 : Name_Not - 2014/02/12(水) 21:59:27.04 ID:??? (-2,-30,-15)
    jq使ってイベント追加するより
    tap('element',function(){})
    みたいな方が読みやすくね?
    339 : Name_Not - 2014/02/12(水) 22:02:52.12 ID:??? (+91,+29,-33)
    みなさんはES6のアローファンクションをどう思います?
    初見では短くて素敵、と思う半面コードが見難くなるなあと思ったのですが、そういう議論はないのでしょうか
    340 : Name_Not - 2014/02/12(水) 22:21:32.75 ID:??? (+3,-30,-115)
    function tap(id,func){
    document.getElementById(id).addEventListener('touchend',func)
    }
    function edit(id,txt){
    document.getElementById(id).innerHTML=txt;
    }

    //ここから
    tap('txt',function(){
    edit('txt','This element was changed by JavaScript')
    })
    341 : Name_Not - 2014/02/12(水) 23:21:08.87 ID:??? (+30,+5,+1)
    >>333
    ありがとうございました
    342 : Name_Not - 2014/02/12(水) 23:46:44.69 ID:??? (+103,+29,-8)
    >>339
    扱いがむずかしくて普及しないだろうな
    単純にfunctionの代替として使えればいいのに
    343 : Name_Not - 2014/02/13(木) 00:11:13.18 ID:??? (+71,+29,-13)
    >>342
    (俺には)扱いが難しくて(俺の中では)普及しないだろうな。
    344 : Name_Not - 2014/02/13(木) 00:14:42.00 ID:??? (+91,+29,-26)
    es6を平気で使えるようになるのなんて4年後くらいだろ
    今使えないものになんて興味ないね
    345 : Name_Not - 2014/02/13(木) 00:49:35.03 ID:??? (-6,-29,-14)
    userChromeJSで使ってる
    346 : Name_Not - 2014/02/13(木) 02:03:48.06 ID:??? (-1,-29,-29)
    Professional JavaScript for Web developerの日本語版をオライリーは出すのです
    JavaScript第六版じゃまだ足りない
    347 : Name_Not - 2014/02/13(木) 02:27:17.20 ID:??? (+70,+29,-16)
    >>344
    今から4年前は2010年なんだが、
    2010年のころ、まだ使えなかったものが
    もう使えるようになったんだよね。
    4年なんて短いな。
    348 : Name_Not - 2014/02/13(木) 06:09:21.44 ID:??? (+3,-29,-88)
    一応ついさっきV8にパッチが上がったよ
    http://chromiumcodereview.appspot.com/160073006/
    まあコミットされるのにはちょっと時間がかかりそうだけど
    Nodeでは数ヶ月後には--harmonyで使えるようになるんじゃないかな
    Noderにとってはホントありがたい存在になると思う

    Chrome安定版でフラグ無しで使えるのはもう1年はかかるだろうね
    まあIE12はサポートしてくるだろうから、
    IE12がリリースされた日から平気で使えるようになったって言えると思う
    まあES6も部分的にはNumber.isNaNや__proto__みたいにもう十分使えるものもあるんだけどね
    349 : Name_Not - 2014/02/13(木) 12:01:28.58 ID:??? (-1,-29,-61)
    jqueryでtext()を使うとHTMLエスケープできますが
    HTMLエスケープだけしたい時はどうしたらいいですか
    350 : Name_Not - 2014/02/13(木) 14:16:53.85 ID:??? (+3,-30,-57)
    tiny mceで、
    ・クリックしたらそのdivを編集可能にする
    ・フォーカスを外したらそのdivを普通のdivに戻す
    ・URLが記述されたらリンクに変換する
    これらを実現できますか?
    tiny mceに詳しい方お願いします
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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