のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,476,471人
昨日: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,-166)
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,-107)
すいません自己解決しました
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:??? (+59,-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:??? (+37,-26,-69)
>>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,-15)
お前グローバル変数ハゲ散らかしてそうだな
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,-125)
こうやればスッキリするんじゃね?
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,-173)
あーわかったわかった
ほら書き直したぞ、まだ不満か?
結果は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 スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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