元スレ+ JavaScript の質問用スレッド vol.94 +
JavaScript覧 / PC版 /みんなの評価 :
101 = :
\0とnullの違いを教えてください
103 = :
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 = :
dojoについての質問なのですが、こちらのスレで大丈夫でしょうか?汗
dijit.layout.TabContainerにContentPaneをaddChildしたときに、ページ読込後の処理を行いたく、
dojo.connect(tempContentPane, "onDownloadEnd", function(e){
// ここで関数呼び出し
});
としたら、Error: This deferred has already been resolvedというエラーが出てきました。
ただ、エラーが出ても正常に動いているようにしか見えないのです。
ブラウザは、Firefox9.1です。
よろしくお願いします。
105 = :
すいません自己解決しました
var title = document.querySelector("title");
console.log(title.textContent);
で文字列だけ取れました
chromeで確認取れたんですがchromeってtextContentに対応してましたっけ?
firefoxだけがtextContentを使えるものだと思ってたんですがchromeのバージョンが上がってtextContentも使えるようになったんでしょうかね?
106 = :
>>102
質問者は切り替えができるようにしたいらしい
もしそれがリンクをドラックもしたいという意味なら
それにドラッカブルで解決なんだが
107 = :
>>97
レスありがとうございます。
フラグ立ててやってみたんですが、
動作するように書けませんでした…。
それに「消すのは即時、表示はほんの少し遅延」が
何故良いのかさえもわかりません…。
http://jsbin.com/alohak/
どう書けば良いかアドバイス頂けないでしょうか。
109 = :
やろうとしていることがいまいち分からんのだけど、
ドロップダウンメニューのロジックとどう違うんだ。
110 = :
>108
hrefも書き換えたくないくらいだからそれはダメなんじゃないかな
111 = :
特定の条件発生時に音でブザーを発生させたいのですが
方法としては色々とあるのですが
音楽を流すのではなく、何回も呼び出すときはHTML5を使って呼び出すのが一番良いのでしょうか?
112 = :
ブザーなのか音楽なのか
113 = :
画面を左クリックするたびにブッブー!とブザーが鳴るような感じです
連打したらブブッブブブブッブーという感じに
114 = :
何種類あるかによる
115 = :
普通のAudioAPIはそういう場合レスポンス良くないからそれ以外のAPI使いなさい
あとモバイルは常に無音を流してないとスピーカーが切れてレスポンス悪くなるから注意
117 = :
いや、そんなことに関係なく 64 ビット買えしw
118 = :
64bitだと何か不都合あるっていうじゃないですか
119 = :
昔の16bitアプリが動かんのは困るから、当分64bitは買わない
120 = :
何bitだろうとJavaScriptには関係ありません
121 = :
>>119
そもそも普通の環境では全然速くもないしな
122 = :
innerHTMLとDOMどっちが早いですか?
124 = :
+=だとappend
メンドイから超めちゃくちゃなコード書くけど
for(i++ iを100まで){
ほにゃらら.innerHTML += i
}
ってやると
1回目は1、2回目は12、3回目は123って描写「しなおす」
appendだと1回目は1を追加、2回目は2を追加って追加するだけ
125 = :
>>122
プロファイラで計測してみれ
あとreflowやredrawをキーワードに含めて検索かける
126 = :
描写と言ってもDOMを保持してる内部的な文字列が更新されるだけだから
実際コストはかなり少ないよ
127 = :
>>124
ここまで酷く、解り易いコードはじめて見た
128 = :
>>125
今から作業してみます検証用コードを後ではります
chromeのjavascriptコンソールではどうやって計測するのでしょうか?
131 = :
>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 = :
お前グローバル変数ハゲ散らかしてそうだな
133 = :
>>131
えっ
134 = :
>>131
何かコードがスッキリしてなくてキンタマがムズムズする
135 = :
こうやればスッキリするんじゃね?
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 = :
>>131
結果はあまり変わらないけど、biをinnerHTMLに反映するのを忘れてるぞ。
137 = :
// 時間計測
console.time("test");
console.timeEnd("test");
// プロファイラ使用
console.profile("test");
console.profileEnd("test");
"test"はラベル
138 = :
139 = :
>>136忘れてないよ
一万規模の可変のループに比べたら誤差みたいなものだし
2ヶ所コメントつけ外しするの面倒でしょう
同じ理由でdfも反映させてない
140 = :
>>139
あのコードがやってるのはただの文字列連結だよ。それをDOMに渡さないといけない。
結果の差が誤差であることは分かるが、テストする上で絶対に省いてはいけない箇所。
141 = :
createElement
createDocumentFragment
innerHTML
の3つで検証したほうがいい系?
データ数が少ない場合と多い場合の平均を計測したほうがいい系?
142 = :
>140なんのテストだよ
作る方は時間かかるしこのくらいの差や比があるって調べるのには意義があるけど
タグたくさん使ったりしてる時でもないこの場合APPENDのそれを調べても全く意義ないだろ
そこまで細かな調査結果が欲しいんなら自分で調べてブログの記事にでもしろよ
144 = :
ループ中にdocumentにアクセスするようなコードを書く時点で
ドシロウトだとわかる
145 = :
>>141
そもそもそれらは場合によって使い分けるもので
比較したりするものでもないんじゃないかな?
それぞれ向き不向きがあると思うよ
>>142
まあまあ落ち着いて
146 = :
>>131が何と何を比較してるのかよくわからない
シリアライズした文字列をalertするならappendChild出てこないよ
147 = :
>>131は連結した文字列に対して createTextNode するのが自然な発想だと思うが
テキストノードを分割するメリットって何かある?
148 = :
>>144
じゃあどうすればいい?その点に関してはあのコードで問題ないと思うよ。
149 = :
あーわかったわかった
ほら書き直したぞ、まだ不満か?
結果は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 = :
>>148
スコープチェーンが全然違うコードを比較して問題ないと申すか
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.90 + (1001) - [97%] - 2011/11/15 20:32
- + JavaScript の質問用スレッド vol.84 + (1001) - [97%] - 2011/3/30 7:32
- + JavaScript の質問用スレッド vol.74 + (1001) - [97%] - 2009/12/1 6:08 ○
- + JavaScript の質問用スレッド vol.99 + (1001) - [97%] - 2012/5/7 4:32
- + JavaScript の質問用スレッド vol.98 + (1001) - [97%] - 2012/4/9 14:46
- + JavaScript の質問用スレッド vol.97 + (1001) - [97%] - 2012/3/1 3:31
- + JavaScript の質問用スレッド vol.96 + (1001) - [97%] - 2012/1/28 23:01
- + JavaScript の質問用スレッド vol.95 + (1001) - [97%] - 2012/1/17 4:16
- + JavaScript の質問用スレッド vol.93 + (1001) - [97%] - 2012/1/1 4:46
- + JavaScript の質問用スレッド vol.93 + (1001) - [97%] - 2011/12/10 18:31
- + JavaScript の質問用スレッド vol.90 + (1001) - [97%] - 2011/10/26 4:18
- + JavaScript の質問用スレッド vol.114 + (1001) - [95%] - 2014/5/3 10:45
- + JavaScript の質問用スレッド vol.142 + (984) - [95%] - 2020/8/27 19:15
- + JavaScript の質問用スレッド vol.124 + (1001) - [95%] - 2015/7/16 1:30
- + JavaScript の質問用スレッド vol.104 + (1001) - [95%] - 2013/1/28 4:00
- + JavaScript の質問用スレッド vol.141 + (881) - [95%] - 2021/4/19 9:00
- + JavaScript の質問用スレッド vol.142 + (926) - [95%] - 2019/12/23 13:15
トップメニューへ / →のくす牧場書庫について