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

    私的良スレ書庫

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

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

    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 - 2012/01/03(火) 12:03:08.05 ID:??? (+2,-29,-16)
    \0とnullの違いを教えてください
    103 : Name_Not - 2012/01/03(火) 12:37:46.37 ID:??? (+13,-30,-165)
    Feedはどこのでもいいのですがここでは↓を使って質問させていただきます
    http://blog.livedoor.jp/dqnplus/atom.xml

    Feedを提供するサイトのタイトルを取得したいのですが
    var title = document.querySelector("title"); // ほとんどのサイトで1番目にヒットしたtitleがサイトのタイトルだったのでqueryselectorを利用した
    console.log(title); // <title>そのサイトのタイトル</title>が表示される
    console.log(title.innerText.replace('/</?title>/g','')); // ここで文字列のみ取得したいので置換してタグを消したい
    とやると3行目の部分で
    TypeError: Cannot call method 'replace' of undefined
    というエラーが出ます
    どうやってタイトルを取得したらよいでしょうか?
    104 : Name_Not - 2012/01/03(火) 12:50:07.27 ID:??? (+3,-30,-98)
    dojoについての質問なのですが、こちらのスレで大丈夫でしょうか?汗

    dijit.layout.TabContainerにContentPaneをaddChildしたときに、ページ読込後の処理を行いたく、
    dojo.connect(tempContentPane, "onDownloadEnd", function(e){
    // ここで関数呼び出し
    });
    としたら、Error: This deferred has already been resolvedというエラーが出てきました。
    ただ、エラーが出ても正常に動いているようにしか見えないのです。

    ブラウザは、Firefox9.1です。
    よろしくお願いします。
    105 : 103 - 2012/01/03(火) 12:51:34.10 ID:??? (+3,-30,-106)
    すいません自己解決しました
    var title = document.querySelector("title");
    console.log(title.textContent);
    で文字列だけ取れました
    chromeで確認取れたんですがchromeってtextContentに対応してましたっけ?
    firefoxだけがtextContentを使えるものだと思ってたんですがchromeのバージョンが上がってtextContentも使えるようになったんでしょうかね?
    106 : Name_Not - 2012/01/03(火) 13:13:33.88 ID:??? (+17,+29,-17)
    >>102
    質問者は切り替えができるようにしたいらしい
    もしそれがリンクをドラックもしたいという意味なら
    それにドラッカブルで解決なんだが
    107 : 95 - 2012/01/03(火) 13:14:17.50 ID:??? (+75,+29,-46)
    >>97
    レスありがとうございます。
    フラグ立ててやってみたんですが、
    動作するように書けませんでした…。

    それに「消すのは即時、表示はほんの少し遅延」が
    何故良いのかさえもわかりません…。

    http://jsbin.com/alohak/

    どう書けば良いかアドバイス頂けないでしょうか。
    109 : Name_Not - 2012/01/03(火) 14:09:02.29 ID:??? (+91,+29,-8)
    やろうとしていることがいまいち分からんのだけど、
    ドロップダウンメニューのロジックとどう違うんだ。
    110 : Name_Not - 2012/01/03(火) 14:45:11.35 ID:??? (+48,+26,-5)
    >108
    hrefも書き換えたくないくらいだからそれはダメなんじゃないかな
    111 : Name_Not - 2012/01/03(火) 15:29:01.36 ID:??? (+57,+29,-47)
    特定の条件発生時に音でブザーを発生させたいのですが
    方法としては色々とあるのですが
    音楽を流すのではなく、何回も呼び出すときはHTML5を使って呼び出すのが一番良いのでしょうか?
    112 : Name_Not - 2012/01/03(火) 16:01:57.35 ID:??? (+52,+29,-1)
    ブザーなのか音楽なのか
    113 : Name_Not - 2012/01/03(火) 16:15:21.91 ID:??? (+57,+29,-17)
    画面を左クリックするたびにブッブー!とブザーが鳴るような感じです
    連打したらブブッブブブブッブーという感じに
    114 : Name_Not - 2012/01/03(火) 16:26:29.94 ID:??? (+52,+29,+0)
    何種類あるかによる
    115 : Name_Not - 2012/01/03(火) 16:28:38.57 ID:??? (+7,+29,-82)
    普通のAudioAPIはそういう場合レスポンス良くないからそれ以外のAPI使いなさい
    あとモバイルは常に無音を流してないとスピーカーが切れてレスポンス悪くなるから注意
    116 : Name_Not - 2012/01/03(火) 16:34:07.26 ID:??? (-1,-29,-47)
    64bit osだとtime()やDate()で2038年以降の時間を扱えるのですか?
    この理由で次買うPCで32bitか64bitで迷ってます
    117 : Name_Not - 2012/01/03(火) 16:36:39.15 ID:??? (+30,+2,-16)
    いや、そんなことに関係なく 64 ビット買えしw
    118 : Name_Not - 2012/01/03(火) 16:41:03.06 ID:??? (+57,+29,-2)
    64bitだと何か不都合あるっていうじゃないですか
    119 : Name_Not - 2012/01/03(火) 16:56:21.78 ID:??? (+32,-29,-10)
    昔の16bitアプリが動かんのは困るから、当分64bitは買わない
    120 : Name_Not - 2012/01/03(火) 16:57:57.53 ID:??? (+46,+18,+0)
    何bitだろうとJavaScriptには関係ありません
    121 : Name_Not - 2012/01/03(火) 17:11:03.60 ID:??? (+61,+29,-4)
    >>119
    そもそも普通の環境では全然速くもないしな
    122 : Name_Not - 2012/01/03(火) 17:12:44.51 ID:??? (+60,-25,-29)
    innerHTMLとDOMどっちが早いですか?
    123 : Name_Not - 2012/01/03(火) 17:20:43.23 ID:??? (+0,-29,-32)
    >>122
    アルゴリズムによる
    例えば沢山create、appendって関数呼び出してたら
    innerHTMLの方がよっぽど速くなる
    124 : Name_Not - 2012/01/03(火) 17:26:36.75 ID:??? (+153,-30,-66)
    +=だとappend

    メンドイから超めちゃくちゃなコード書くけど
    for(i++ iを100まで){
    ほにゃらら.innerHTML += i
    }
    ってやると
    1回目は1、2回目は12、3回目は123って描写「しなおす」
    appendだと1回目は1を追加、2回目は2を追加って追加するだけ
    125 : Name_Not - 2012/01/03(火) 17:30:27.99 ID:??? (+5,-29,-13)
    >>122
    プロファイラで計測してみれ
    あとreflowやredrawをキーワードに含めて検索かける
    126 : Name_Not - 2012/01/03(火) 17:31:59.39 ID:??? (+57,+29,-30)
    描写と言ってもDOMを保持してる内部的な文字列が更新されるだけだから
    実際コストはかなり少ないよ
    127 : Name_Not - 2012/01/03(火) 17:32:33.46 ID:??? (+62,+29,-2)
    >>124
    ここまで酷く、解り易いコードはじめて見た
    128 : 122 - 2012/01/03(火) 17:36:23.44 ID:??? (+38,-25,-68)
    >>125
    今から作業してみます検証用コードを後ではります
    chromeのjavascriptコンソールではどうやって計測するのでしょうか?
    130 : Name_Not - 2012/01/03(火) 17:42:54.45 ID:??? (-1,-29,-9)
    inputの中身を送るときはnameがいいが
    Javascriptで取得する時はidにしとけ。マジで
    131 : Name_Not - 2012/01/03(火) 17:49:00.70 ID:??? (+166,-30,-142)
    >122,124
    これだとinnerHTMLの方が10倍速い

    var t=+new Date;
    var df=document.createDocumentFragment();
    var bi=document.body.innerHTML;
    for(var i=0;i<10000;i++){
    bi+=i;
    //df.appendChild(document.createTextNode(i));
    }
    t=+new Date-t;
    alert(t/1000+"[s]");
    132 : Name_Not - 2012/01/03(火) 17:49:25.19 ID:??? (+56,+28,-14)
    お前グローバル変数ハゲ散らかしてそうだな
    133 : Name_Not - 2012/01/03(火) 17:51:04.48 ID:??? (+55,+27,+1)
    >>131
    えっ
    134 : Name_Not - 2012/01/03(火) 17:54:04.47 ID:??? (+67,+29,-7)
    >>131
    何かコードがスッキリしてなくてキンタマがムズムズする
    135 : Name_Not - 2012/01/03(火) 17:57:43.33 ID:??? (+3,-30,-124)
    こうやればスッキリするんじゃね?
    var t=+new Date,df=document.createDocumentFragment(),bi=document.body.innerHTML;
    for(var i=0;i<10000;i++){bi+=i;/*df.appendChild(document.createTextNode(i));*/}
    t=+new Date-t;alert(t/1000+"[s]");
    136 : Name_Not - 2012/01/03(火) 17:58:09.66 ID:??? (+105,+29,-32)
    >>131
    結果はあまり変わらないけど、biをinnerHTMLに反映するのを忘れてるぞ。
    137 : Name_Not - 2012/01/03(火) 18:00:10.23 ID:??? (+36,-30,-80)
    // 時間計測
    console.time("test");
    console.timeEnd("test");

    // プロファイラ使用
    console.profile("test");
    console.profileEnd("test");

    "test"はラベル


    138 : Name_Not - 2012/01/03(火) 18:00:43.68 ID:??? (+63,+29,-2)
    あんかつけ忘れた
    >>137>>128
    139 : Name_Not - 2012/01/03(火) 18:02:19.05 ID:??? (+106,+29,-56)
    >>136忘れてないよ
    一万規模の可変のループに比べたら誤差みたいなものだし
    2ヶ所コメントつけ外しするの面倒でしょう
    同じ理由でdfも反映させてない
    140 : Name_Not - 2012/01/03(火) 18:04:52.31 ID:??? (+108,+29,-60)
    >>139
    あのコードがやってるのはただの文字列連結だよ。それをDOMに渡さないといけない。
    結果の差が誤差であることは分かるが、テストする上で絶対に省いてはいけない箇所。
    141 : Name_Not - 2012/01/03(火) 18:14:30.30 ID:??? (+31,-29,-64)
    createElement
    createDocumentFragment
    innerHTML
    の3つで検証したほうがいい系?
    データ数が少ない場合と多い場合の平均を計測したほうがいい系?
    142 : Name_Not - 2012/01/03(火) 18:15:36.73 ID:??? (+112,+30,-48)
    >140なんのテストだよ
    作る方は時間かかるしこのくらいの差や比があるって調べるのには意義があるけど
    タグたくさん使ったりしてる時でもないこの場合APPENDのそれを調べても全く意義ないだろ
    そこまで細かな調査結果が欲しいんなら自分で調べてブログの記事にでもしろよ
    143 : Name_Not - 2012/01/03(火) 18:16:32.15 ID:??? (-1,-29,-39)
    appendChildと純粋な文字列連結を比べて、10倍速い!と言われてもな
    このテストではDOMへの反映まで含めないとダメだろう
    結果は同じだろうけどもう一度書き直しだな┐(´-`)┌
    144 : Name_Not - 2012/01/03(火) 18:18:05.72 ID:??? (+38,-23,-30)
    ループ中にdocumentにアクセスするようなコードを書く時点で
    ドシロウトだとわかる
    145 : Name_Not - 2012/01/03(火) 18:19:30.22 ID:??? (+69,+29,-16)
    >>141
    そもそもそれらは場合によって使い分けるもので
    比較したりするものでもないんじゃないかな?
    それぞれ向き不向きがあると思うよ

    >>142
    まあまあ落ち着いて
    146 : Name_Not - 2012/01/03(火) 18:20:21.49 ID:??? (+12,-29,-38)
    >>131が何と何を比較してるのかよくわからない
    シリアライズした文字列をalertするならappendChild出てこないよ
    147 : Name_Not - 2012/01/03(火) 18:24:06.99 ID:??? (+46,-29,-53)
    >>131は連結した文字列に対して createTextNode するのが自然な発想だと思うが
    テキストノードを分割するメリットって何かある?
    148 : Name_Not - 2012/01/03(火) 18:27:50.48 ID:??? (+96,+29,-6)
    >>144
    じゃあどうすればいい?その点に関してはあのコードで問題ないと思うよ。
    149 : Name_Not - 2012/01/03(火) 18:30:47.15 ID:??? (+42,-30,-172)
    あーわかったわかった
    ほら書き直したぞ、まだ不満か?
    結果は10000回でinnerHTMLの方が16倍速い圧勝でした

    var d=document;
    var t=+new Date;
    //var bi=d.body.innerHTML;
    var df=d.createDocumentFragment();
    for(var i=0;i<10000;i++){
    //bi+=i;
    df.appendChild(d.createTextNode(i));
    }
    //d.body.innerHTML=bi;
    d.body.appendChild(df);
    t=+new Date-t;
    alert(t/1000+"[s]");
    150 : Name_Not - 2012/01/03(火) 18:31:39.25 ID:??? (+106,+29,-32)
    >>148
    スコープチェーンが全然違うコードを比較して問題ないと申すか
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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