15/05/02 17:48:46.21 .net
>>83
あの・・・それでコードは?
94:Name_Not_Found
15/05/02 17:52:19.74 .net
lastIndexOf()を使う方法は面白いね
覚えておこう
95:Name_Not_Found
15/05/02 18:05:28.42 .net
>>90
カンマが含まれてればバグになるんじゃね?ソース読めないの?
96:Name_Not_Found
15/05/02 18:10:01.57 .net
循環を省くのは
arr = [...new Set(arr)]
でできるよ
わざわざライブラリ使うまででもない
それならまだES6トランスレータ使うほうが有意義
97:Name_Not_Found
15/05/02 18:17:40.25 .net
>>94
JSにSetクラスってあるんですか?
98:Name_Not_Found
15/05/02 18:31:23.05 .net
>>93
すんません。ちゃんと読んだら
バグになるってわかりました。
99:Name_Not_Found
15/05/02 18:31:52.34 .net
>>95
どうせまたライブラリがあるって話だろう。
100:Name_Not_Found
15/05/02 18:32:31.51 .net
>>94
質問をちゃんと読むように。
101:Name_Not_Found
15/05/02 18:39:50.76 .net
>>94
firefoxで動かしたが、動いとらん。
var arr0 = [
["三重", "滋賀", "長野"],
["三重", "長野", "滋賀"],
["滋賀", "三重", "長野"],
["滋賀", "長野", "三重"],
["滋賀", "長野", "東京"],
];
arr0 = [...new Set(arr0)]
[["三重", "滋賀", "長野"], ["三重", "長野", "滋賀"],
["滋賀", "三重", "長野"], ["滋賀", "長野", "三重"], ["滋賀", "長野", "東京"]]
現実的な解ではなく、将来のJavaScriptでは標準で~って言ってる奴はいつもこれだ。
動かないコードを出して自己満足
102:Name_Not_Found
15/05/02 18:48:05.71 .net
>>91
方法を知りたかったのでは?
コード制作依頼はお断り
103:Name_Not_Found
15/05/02 18:53:41.69 .net
こんなの制作ってほどでもないだろ。
たかが3行だ。(Arrow Function使えば1行)
104:Name_Not_Found
15/05/02 18:55:28.43 .net
URLリンク(www.visualstudio.com)
これを使ってJSを書いている
意識の高いプログラマーはここにはいないということですか?
105:Name_Not_Found
15/05/02 18:55:37.87 .net
Setは-0と0以外は厳密比較だから、この場面で使うものではないな。
数列のユニーク化にはかなり使える
106:Name_Not_Found
15/05/02 18:57:03.80 .net
最新技術の知識をつけることばかりに気を取られて
実装力がないんだよな・・・。
107:Name_Not_Found
15/05/02 19:37:27.87 .net
>>103
> 数列のユニーク化にはかなり使える
今回の質問は、数列どころか配列だからな。配列のユニーク化
正確に言えば「配列の順番が異なっても区別しない」列のユニーク化
ドヤ顔でSetを使えば解決とか言ってるが、何も解決していないというw
108:Name_Not_Found
15/05/02 19:38:22.66 .net
>>102
エディタ?
109:Name_Not_Found
15/05/02 20:03:46.26 .net
>>101
Arrow Function
URLリンク(developer.mozilla.org)
これは Harmony(ECMAScript 6) 提案の一部であり、実験段階の技術です。
この技術の仕様は安定していません。ブラウザ互換性の一覧表を確認してください。またこれらの構文や動作は、
仕様変更などにより、新しいバージョンのブラウザでは変更される可能性があるという点に注意してください。
110:81
15/05/02 20:21:22.80 .net
>>107
それもあって>>81では使ってないんだよ。
それにしても毎度のことだが、ライブラリ使うなっていうだけで
何も出来ないやつばかりだよな。どうせ一人だろうが。
こんなの簡単なんだからさっさと動くコード出せばいいのに。
いつまで待っても、自治厨は動くコード書かないし、へぼいコードしか無いから、
俺が代わりにlodash使わないバージョンを書いてあげるよ。
console.table(arr0.filter(function (val) {
var k = JSON.stringify(val.sort());
return ![this[k], this[k] = 1][0];
}), {});
lodashよりも1行増えて可読性も落ちてるし、filter使ってるからIE6, 7では動かないけどな。
こういった使いこなし方は日頃
111:からlodashや他の言語の同等のライブラリを 使っているから思いつけるものさ。知識も大事だが、実装力もつけよう。
112:Name_Not_Found
15/05/02 20:29:44.01 .net
>>105
sort使ってSet使って、文字列化してSetすればいいんじゃね
113:Name_Not_Found
15/05/02 20:38:27.50 .net
>>109
それを実装できないやつに発言力はないよ。
114:Name_Not_Found
15/05/02 20:39:18.12 .net
>>108
{}の位置がずれてるね
あと全部のコードに言えることだけど、sort()は破壊的メソッドだからslice()なりでコピーしておくといいだろうな
console.table(arr0.filter(function (val) {
var k = JSON.stringify(val.slice().sort());
return ![this[k], this[k] = 1][0];
}, {}));
しかしthisArgを使うのは面白い
勉強になった
115:Name_Not_Found
15/05/02 20:40:22.50 .net
そもそも>>94は循環を省く(?)であって誰もSetで重複を除く話はしてない件。
ライブラリ信者が被害妄想の火病で暴れてるだけ。
116:81
15/05/02 20:49:27.57 .net
ちょっとミスってた。質問の仕様は満たしているから
間違いではないんだが、俺が意図していた動作とは違っていた。
JavaScriptのsort()って破壊的だったんだな。
var arr0 = [
["滋賀", "三重", "長野"],
["三重", "滋賀", "長野"],
];
要するにこうあった時、重複分を取り除いた残りの
["滋賀", "三重", "長野"] を、俺はソートされないと
思ったんだが違った。
元の配列を破壊しないバージョンに書き換え。
console.table(_.uniq(arr0, function(n) {
return JSON.stringify(_.sortBy(n));
}));
JavaScript単体だとこうするらしい。
arr0.slice().sort();
これはちょっとスマートではないな。
117:Name_Not_Found
15/05/02 20:50:18.24 .net
>>108
なんで俺のレス番パクって語ってるんだよ
そんな糞コードかかねーし
行数とかステップ数の時代じゃねーから語るなよ
118:81
15/05/02 20:53:14.40 .net
>>111
> {}の位置がずれてるね
すまんw
あと破壊的の件、リロードしていなかったから
>>113を書き込んだあとに>>111を見た。
> しかしthisArgを使うのは面白い
これはreduceを使う時の初期値に近い発想から生まれたもの。
テンポラリ変数作りたくないので。
119:81じゃなくて78
15/05/02 20:54:30.71 .net
>>114
あれ? なんで間違えたんだろw
話の内容からわかると思うけど>>78です。
120:78
15/05/02 20:57:29.79 .net
>>114
> そんな糞コードかかねーし
クソコードってswapを実装する時のコードの話?
有名な書き方だと思うんだけどな。
で>>81を名乗ったのは本当に恥ずかしい。
クソコードを俺が書いたのかと思われてしまうw
あんな長ったらしいコードは俺は書かない。
121:Name_Not_Found
15/05/02 21:00:20.38 .net
ライブラリは禁止
それは変わらない
人の嫌がることやって楽しいのかね
サイコパス乙
122:78
15/05/02 21:02:03.60 .net
ライブラリ禁止っていうだけで
こんな短いコードも書けない奴に言われたくねーよw
いつも回答を書くのは俺じゃねーか。
言う前にまず実力を伴えや。
俺がレスするよりも先に、お前がレスしてれば
良かったんだぞ?
123:Name_Not_Found
15/05/02 21:18:10.76 .net
お前の過去の回答にケチをつけているのではない。
いつまでもお前がした間違いに構うわけないだろ。
うぬぼれ、被害妄想はいい加減にしろ。
現在進行形で暴れまわってるのを辞めろと言っているんだ。
お前はスレのルールに反しているのだから避難されても反論する権利はない。
このレスへの返答も要らないからこれ以上迷惑かけないよう黙って直ちに立ち去れ。
124:Name_Not_Found
15/05/02 21:27:27.69 .net
誰もライブラリを嫌って禁止にしているのではなく
>>78のような者の態度とそれでスレが荒れることにうんざりして
便利なライブラリを勧めるという1つの手段を捨ててることをいい加減分かるべき
まあそれを分かった上で何度も何度も暴れてるんだから精神を正常か疑わざるをえないな
もしくは本当にオツムが弱くてわからないのだろうか
>>78では建設的にライブラリスレに書いた回答のリンクを貼るだけに留め、
それを何度も繰り返してれば皆自然とライブラリとそれを勧める人を認めるのに
本当に質問者を助けようという意図ではなく
自分勝手に自分の考えをばらまいて無理やり自分へ注意を向かせようとする限り
永遠に平和と和解は訪れない
125:Name_Not_Found
15/05/02 21:51:26.31 .net
ライブラリを認めれば荒れないと思いますが?
なぜなら俺にレスしないのだから
荒れようが無いでしょう?
126:Name_Not_Found
15/05/02 22:03:59.25 .net
>>101
簡単なら尚更質問者に考えさせるべきだろう
127:Name_Not_Found
15/05/02 22:07:51.94 .net
上級者にとっては簡単でも
初心者にとっては難しいだろうさ。
そこで上級者のコードを見せることが
初心者の成長につながる。
128:Name_Not_Found
15/05/02 22:08:39.92 .net
テンプレ無視してまでライブラリ回答したいという一人の我が儘につきあう必要はない
129:Name_Not_Found
15/05/02 22:09:49.07 .net
どこかの質問サイトみたいに、
初心者の質問に、初心者が答えて
上級者から見ればだめなものなのに、
それで納得するような事にはなってほしくないよな。
130:Name_Not_Found
15/05/02 22:10:15.63 .net
>>125
付き合わなくていいと思います。
そういうレスは無視するのが一番です。
131:Name_Not_Found
15/05/02 22:12:16.31 .net
>>124
簡単かどうかでなくて考えるか考えないかの違いだと思うね
考えることすら放棄する人は「方法論はどうでもいいからコードください」と結果だけを求める
そういう人はコードを与えたらその場限りの感謝はするけど、質問すれば作ってくれる事を覚えるからまたコードくださいということになる
それはただの甘え
132:Name_Not_Found
15/05/02 22:13:51.05 .net
じゃあ、方法論までちゃんとおしえんといかんな。
コードを書くだけじゃなく、どうしてこのコードで動くかまで
しっかり解説する。
133:Name_Not_Found
15/05/02 22:18:07.45 .net
次のテンプレには、質問しても
直接的な回答はしてはいけません。
って加えたほうがいいだろう。
まあ守らない奴は守らないんだろうけどなw
134:Name_Not_Found
15/05/02 22:19:16.99 .net
>>129
質問者に覚える気がなければコードだけもらってさようならだから、解説分の手間は徒労だけどな
解説だけを与えれば質問者は考えざるを得ない
まあ、覚える気があるなら「コードください」なんていわないわけでこの人に覚える気があるとは思えんが
135:Name_Not_Found
15/05/02 22:20:26.66 .net
なぁ? なんでそんな質問者の成長のことまで考えて
優しい対応をしないといけないんだ?
136:Name_Not_Found
15/05/02 22:23:11.01 .net
そもそも、>>1で禁止されてるじゃないですか
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
137:Name_Not_Found
15/05/02 22:23:35.66 .net
俺は自分が満足すればいいから、
さっさと優れた回答をして終わらせるけどねw
質問者のことなんか知ったことじゃない。
回答する手間が惜しいなら、最初から回答しなければいいだけさ。
レスをする意味もないでしょ?
俺は別にやさしくないんで、自分が回答したいと思った時に
自分がしたい回答をするだけさ。
質問者の為を思って説教してあげるつもりもない。
138:Name_Not_Found
15/05/03 04:07:45.55 .net
だったら自己満足の回答垂らすだけにしとけ
他人攻撃や他回答イビリはこのスレなくとも常識で禁止
マナーというより人間として当然のこと
139:Name_Not_Found
15/05/03 07:50:10.54 .net
どっちもどっちだろ、個人攻撃人格攻撃
スレが荒れる原因はライブラリ使って回答してるやつよりも、それに攻撃だけして何も回答してないやつの方にあるように見えるよ。ライブラリ使ってもちゃんと回答してるレスの方が何万倍も役に立ってる
ライブラリ禁止を歌うなら、ライブラリを使わないで淡々と回答出し続けてればライブラリ厨はいつか消えるのに、文句言う奴らがマトモに回答してる所を見た事がない
というような事書くと、いつものルールやらスレ誘導やら何やらの役に立たない書き込みが出てきて、結局質問に答える書き込みは永遠にしない=できない連中のレスで埋まっていくのがJavascriptスレの現状
140:Name_Not_Found
15/05/03 08:20:13.58 .net
えっ、直後に回答しただろ。無理やり明後日の方向から脈絡なくjQueryで珍答した馬鹿が問題なんだよ。
141:83
15/05/03 09:09:30.40 Ol8EXFBr.net
>>100,123,128は自分で回答もしてる
いちいち、回答してる事を釈明しなきゃ聞き入れてもらえないのか?
そもそも、ライブラリ回答してる奴もいちいち個人攻撃しているように見えるが、回答していれば何を行っても良いのか?
142:Name_Not_Found
15/05/03 11:22:31.98 .net
荒らしに触れるのも荒らしってな
143:Name_Not_Found
15/05/03 17:55:14.19 .net
>>136
誰にでも禁止行為を非難する権利はある。
そもそもライブラリ自体が悪なのではなく、それを盾にして行う行為、
もしくは禁止行為と知ってわざとそれを破るという行為が悪なのであって、
それがたまたまライブラリを使う行為なだけ。
だから本来はそもそも禁止にしたくもないが、
そうするとますます調子に乗るから、結局荒らしを弾弓するほうがマシ。
もうそれはこれまでの経験から明らかなのに、終わりかけた騒動を一々ほじくり回す>>136が一番迷惑。
144:Name_Not_Found
15/05/03 17:58:12.08 .net
> 誰にでも禁止行為を非難する権利はある。
すれ違い
145:Name_Not_Found
15/05/03 17:59:52.33 .net
>>140
荒らしに触れるのも荒らしなんだが、
じゃああんた、荒らしにレスするのを
禁止行為にしないのは何故?
あんた本心では、荒らしにレスすることを
楽しんでるだろ?
146:Name_Not_Found
15/05/03 22:10:23.71 .net
荒らしにレスするやつにレスするのも禁止な
147:Name_Not_Found
15/05/03 22:14:16.46 .net
それテンプレに追加しようよ。
148:Name_Not_Found
15/05/04 01:07:04.48 /xxtaeH9.net
var o = document.createElement('div');
o.id = 'a">a</div><div id="b';
o.appendChild(document.createTextNode('b'));
document.body.appendChild(o);
id設定するときにxss発生するのかなと思いましたが開発ツールで確認すると
<div id="a">a</div><div id="b">b</div>
ってなってるのにブラウザ上に文字aが表示されないしquerySelectoryで#aも#bも見つかりませんでした
どうしてですか?
149:Name_Not_Found
15/05/04 01:53:59.07 .net
>>145
書き込み時には数値文字参照または文字実体参照にするのと同じ結果にエンコードされる。
読み取り時にはヒトが解せる「ふつうの」形式にデコードされて表示される。これはXSLTを書いた事が少しでもあれば誰でも経験的に知っているだろう。
俺の適当な放言よりも、正しくはDOM仕様に説明してあるから、そちらを読めば良い。ただしXML的に実体参照をより具体的に操作する目的での仕様になっているからHTMLに切り出して理解するのは面倒だったりする(事を知っているから読んで咀嚼して説明してやる気力が湧かない)。
>>145 の目的とは全く別の話だが、必ず数値文字参照または文字実体参照を書き込みたい時にはinnerHTMLが簡便だ。どういう時にその必ずな目的が発生するかというと、mailto:にクエリー部分を日本語で加える時。
150:Name_Not_Found
15/05/04 06:54:35.80 .net
> 咀嚼して説明してやる気力が湧かない
というよりも、単に説明が下手なだけだと思うよ。
151:Name_Not_Found
15/05/04 06:55:39.50 .net
あと、どこかの中二病が主人公の
ライトノベルで「咀嚼して説明」とか言ってたから
それ思い出して、ちょっとね(苦笑)
152:Name_Not_Found
15/05/04 07:01:24.57 .net
>>145
例えば、<div>a</div>ってあってJavaScriptから、
id="<>"とかやった時に<>という文字列がそのまま埋め込まれるんじゃなくて、
idの値が<>になるように解釈されてからHTMLが加工されるってだけ。
開発ツールの件は単に勘違いだと思うよ。どこがどういう
区切りになっているかよく観察してみればわかると思う
153:Name_Not_Found
15/05/04 07:06:00.20 .net
>>145
> 開発ツールで確認すると <div id="a">a</div><div id="b">b</div> ってなってるのに
なりませんでした。
確認の仕方が間違っているのでは?
console.log(o.outerHTML); // <div id="a">a</div><div id="b">b</div>
154:Name_Not_Found
15/05/04 07:23:59.73 .net
>>146
ここまで説明が下手なやつもはじめてみたw
賢いつもりになってる馬鹿だな。
155:Name_Not_Found
15/05/04 07:32:44.47 .net
>>141
スレ違いというのもスレ違いか?
156:Name_Not_Found
15/05/04 07:35:40.60 .net
>>145
GC42のバグ(Elementツリーと console.log(o) の挙動がおかしい)
URLリンク(jsfiddle.net)
バグらしき症状に遭遇したときにはブラウザ名とバージョンも明らかにしよう
他のブラウザでも検証してみよう
バグを発見したら報告しよう
URLリンク(code.google.com)
157:Name_Not_Found
15/05/04 07:40:54.39 .net
>>152
単なるスレ違いだと思えば、そういえばいい。
お前が荒らしだと思った時点で、レスするのをやめろってこと。
荒らしだと思ったのに、会話を続けるから荒れるんだよ。
158:Name_Not_Found
15/05/04 08:17:57.32 .net
分かるように回答するのが意外と難しい質問だな。
HTML と DOM の区別が鍵なんだけど。
別に o.id = "~~~"; を代入するときに文字参照に変換されているわけではないぞ
159:Name_Not_Found
15/05/04 08:33:51.91 .net
>>155
誰にいってるんだ?
質問者以外はわかっていると思うが
160:Name_Not_Found
15/05/04 08:43:32.73 .net
そもそも、DOMとHTMLの違いは関係ないんじゃないかね
質問者は開発者ツールで「<div id="a">a</div><div id="b">b</div> 」と表示される理由を知りたいだけなのだから
答えは>>153で出てる
161:Name_Not_Found
15/05/04 09:02:58.38 .net
> id設定するときにxss発生するのかなと思いましたが
って書いてるから、直接そのままidの場所に挿入されるって思ってるんでしょ?
だからそうじゃないって、>>149で説明したんだけど。
162:155
15/05/04 09:46:21.38 .net
本当だ説明あったね、すまんかった
重箱の隅をつつくようで悪いけど、id="<>"はHTMLにもそのまま記述できるから、例としては分かりづらいかもね。
HTMLの"属性値"に書けないのは「"」とヌル文字だけ
163:Name_Not_Found
15/05/04 11:19:52.68 L6UuB4G4.net
逆のパターンで属性に値を設定するときにxssを発生させるパターンは?
164:Name_Not_Found
15/05/04 11:28:19.77 .net
>>160
ないよ。
なお、innerHTMLは属性ではない。
165:Name_Not_Found
15/05/04 11:49:18.97 L6UuB4G4.net
ってことはinnerHTMLを使わない限り文字をエスケープする必要ないってことでいいですか?
166:Name_Not_Found
15/05/04 11:53:52.05 .net
document.writeとかもあるな。
要するにHTMLというテキストを出力するもの以外って話。
167:Name_Not_Found
15/05/04 11:57:00.70 L6UuB4G4.net
ありがとうございます
168:Name_Not_Found
15/05/04 13:05:16.57 .net
insertAdjacentHTML もある
URLリンク(dvcs.w3.org)
(どうでもいいが、フラグメント識別子が異様に長いな…)
169:Name_Not_Found
15/05/04 15:18:12.92 .net
prototypeはメモリを節約できるそうですが
obj.prototype.func = function() {
a.addEventListener('click', function(e){〜}, false);
}
とかいたらイベントリスナの第二引数の無名関数は呼び出されるたびに作られたりしないんですか?
下みたいに書かなくてもいいんですか?
obj.prototype.myfunc1 = function(e) {〜};
obj.prototype.func = function() {
a.addEventListener('click', this.myfunc, false);
}
170:Name_Not_Found
15/05/04 15:27:05.49 .net
>>166
> ...とかいたらイベントリスナの第二引数の無名関数は呼び出されるたびに作られたりしないんですか?
その通り。
なぜそんな疑問を持ったのか知らないが、prototype を使えば何でもメモリを節約できるものじゃない。
仕組みを知らなければ道具は使えない。
171:Name_Not_Found
15/05/04 15:45:28.08 .net
>>prototypeはメモリを節約できるそうですが
メモリなんてがんがん使っても問題ないって思っとけ
君の今の力量では、そこに注力するだけ無駄
172:Name_Not_Found
15/05/04 16:36:09.79 .net
prototype でメモリ節約しているというよりクロージャを使わないからメモリを節約できると説明するほうがしっくりくるな
その為に prototype を使うわけだが
173:Name_Not_Found
15/05/04 16:39:27.65 .net
具体的にどれくらいメモリ節約できるの?
174:Name_Not_Found
15/05/04 17:23:41.60 .net
きちんとクラスっぽく書けばjitのhidden-classが効いて思ったよりもメモリ節約される。
hidden-class有り無しでは数十~百倍違う
175:Name_Not_Found
15/05/04 18:32:30.16 .net
倍率じゃなくて、具体的なメモリ使用量が知りたい。
1KBなのか1MBなのか100MBなのか。
176:Name_Not_Found
15/05/04 18:46:23.18 .net
それは当然インスタンスの量に比例するだろうし
インスタンス個別に関数を設定していけばかなり大きくなりうる
177:Name_Not_Found
15/05/04 19:26:42.72 .net
>>173
それでは>>166の場合だと、
どれくらいの差がでそうですか?
obj.prototype.func = function() {
a.addEventListener('click', function(e){〜}, false);
}
obj.prototype.myfunc1 = function(e) {〜};
obj.prototype.func = function() {
a.addEventListener('click', this.myfunc, false);
}
178:Name_Not_Found
15/05/04 19:38:40.16 .net
そりゃ『~』の内容量によるでしょうよ。
厳密に言うとコード量というよりコンパイル後の関数のサイズが重要だろうね。
179:Name_Not_Found
15/05/04 20:03:11.11 .net
『~』の内容が0だと仮定すると?
180:166
15/05/04 20:27:24.45 .net
>>167-169
今後はなるべく無名関数を書かない方向にします
181:Name_Not_Found
15/05/04 20:39:29.11 .net
>>174
Win7/GC42では1e3回のループで128KBの差が出ました
次の質問どうぞ
182:Name_Not_Found
15/05/04 20:56:24.95 .net
自分で試せばいいじゃんね
まあCanvas使ってのスプライトオブジェクトみたいに
比較的クラスが大きく数万個になるようなものでないなら
そこまでは気にしなくていいんじゃない
ってか問題になってから気にすればいいんじゃない
183:Name_Not_Found
15/05/04 20:57:16.63 .net
1e3というのは1000回ですね。
10000回で1MBですか。
なるほど分かりました。
184:Name_Not_Found
15/05/04 21:02:45.86 .net
こういう自分で試すのが面倒で他人に聞く自分勝手な質問は辟易するな
185:Name_Not_Found
15/05/04 22:19:45.05 .net
速度/メモリ使用量の質問が頻出するので、質問者が自分で調べる事を促せるように下記URLを>>3のテンプレに入れて欲しい
URLリンク(support.google.com)
URLリンク(developer.chrome.com)
186:Name_Not_Found
15/05/04 22:24:33.35 .net
ぶっちゃけブラウザやその時の状況で大きく変わるだろうから
一般的に言おうってのは無理がある
187:Name_Not_Found
15/05/05 11:22:37.42 .net
俗に言う匿名掲示板の代表例がこのツーチャンネルで、
実際の表示は馬鹿や痴呆でも分かるように名無しさんと書かれている。
訳せば間違いなく匿名関数だが、馬鹿どもは必ずこれを無名関数と呼んでいる。
逆にこれが簡易的な馬鹿発見器になっている。
188:Name_Not_Found
15/05/05 16:06:43.33 .net
いや「名無し」は偽名なんだが?
189:Name_Not_Found
15/05/05 17:08:57.95 .net
馬鹿だの痴呆だの言ってるレスはほっとけ
190:Name_Not_Found
15/05/06 01:10:41.13 .net
このスレで聞くのもどうかと思うのですが
どこで聞けばいいのか分からないので質問します
USBが充電される条件ってどういうものでしょう?
たとえばノートPCのUSBポートにUSB機器を繋げば充電されますが
これにUSBハブを繋いだら、どうでしょう?
電力が分配されていくので、怪しいと思います
バスパワー式のUSBハブなら、充電されそうです
ようするに
充電される/されない
の判断基準が分からないのです
よろしくお願いいたします
191:Name_Not_Found
15/05/06 01:55:35.15 .net
自作板のくだ質スレ辺りで聞くとええ
192:Name_Not_Found
15/05/06 22:50:16.87 .net
if (A) {
if (B) {break;}
console.log(1);
}
if (B)のところで親のブロックから抜けたいんですがエラにーなりました
こういうのって無理なんでしょうか?
193:Name_Not_Found
15/05/06 23:36:33.54 .net
L: if (A) {
if (B) {break L;}
console.log(1);
}
194:Name_Not_Found
15/05/07 03:38:18.14 .net
ラベルって使わないな。
195:Name_Not_Found
15/05/07 04:07:15.64 .net
element.querySelectorAllで自分自身の直下の物だけ取りたいのですが、
「自分自身」はどう書けばよろしいのでしょうか。例えば、
element.querySelectorAll(' > div')
等を行いたいのですが、当然エラーになります。
元のelementはdocument.getElementsByXXX後のコレクションの一部です。
196:Name_Not_Found
15/05/07 04:26:27.68 .net
へぇ、jQueryならこれでできるのにね。
$(element).find('> div');
いいこと聞いた。これもjQuery使うべきっていう
理由の一つにしよう。
197:193
15/05/07 04:29:42.64 .net
:scope > div でできるみたいだが実験的機能で
対応していないブラウザはどうするか?って話が残るね。
URLリンク(developer.mozilla.org)
198:Name_Not_Found
15/05/07 06:33:09.05 .net
jQueryを使う理由にはならない
ポリフィルを使うべし
199:Name_Not_Found
15/05/07 07:51:00.44 .net
>>192
element が確定しているならわざわざ遅い querySelectorAll を使わなくても element.elements を Array#filter するだけでいいような
どうしてもそういう事をしたいなら XPath で /div を指定するかな
200:Name_Not_Found
15/05/07 08:18:37.87 .net
>>192
出先だから検証不可能だが、:root で実現できないか?
URLリンク(www.hcn.zaq.ne.jp)
201:Name_Not_Found
15/05/07 08:22:35.68 .net
:rootは常にdocumentのルート要素だぜよ
202:Name_Not_Found
15/05/07 08:28:42.22 .net
:scopeって答え出てんのに間違った答書く奴なんなの?
喧嘩売ってんの?
203:Name_Not_Found
15/05/07 08:40:24.37 .net
>>198
そうか、それはすまなかった
204:Name_Not_Found
15/05/07 16:53:57.95 .net
すまん、教えてくれ。どうやってもできない;;
■html
<div class="hoge">
<iframe src="URLリンク(example.com"><)
<iframe src="URLリンク(example.com"><)
</div>
■js
$(document).ready(function() {
$(".hoge").children("iframe").load(function(){
var $iframe = $(".hoge").children("iframe")
var ifrmDoc = $iframe[0].contentWindow.document;
var $body = $('body', ifrmDoc);
$body.click(function() {
// クリック時のイベント
});
});
});
こんなかんじでインラインフレームに表示したbody要素をクリックすると、
なんらかの処理をするってのを実装したいんだけど、
AdSenseやFacebookのiframe要素がページ内の別の場所に入ったりすると
なぜか実行できなくなる。
あと、クリックイベントも何回も更新したりするとたまに反応しない時がある。
ちゃんとiframeがloadした後に実行するようにしてんのに、なして;;
なにか考え方が間違ってる?
205:Name_Not_Found
15/05/07 17:48:35.09 .net
>>196
おお.elements便利だなすげー
と思ったらこれform要素しか持ってないじゃねーか!
206:Name_Not_Found
15/05/07 18:03:15.57 .net
変数名にelementとeventを使う奴はほぼ例外無く馬鹿。レガシーやベンダー差違を敢えて利用しているような小賢しい奴はまあ居ない。
207:Name_Not_Found
15/05/07 19:16:35.58 .net
>>202
ごめん、children といいたかった
208:Name_Not_Found
15/05/07 19:45:30.46 .net
>>201
ライブラリ質問はライブラリスレへどうぞ
209:Name_Not_Found
15/05/07 20:28:55.37 .net
>>203
理由を書かない意見は、問答無用で無視することにしている。
210:Name_Not_Found
15/05/07 20:35:45.50 .net
別に直接ライブラリの質問ではないと思う
宣伝・勧誘・布教・洗脳が伴ってなければある程度は許すよ
とはいえこの手の質問はどこのスレで聞こうが
「しらねーよ」で終わるオチ
211:Name_Not_Found
15/05/07 20:39:41.29 .net
ライブラリ質問でないなら $ を使わないコードを書けばいいのにね
212:Name_Not_Found
15/05/07 20:50:50.95 .net
>>201
document.cookieは知っているよね?
親ウインドウがP、iframeで読み込む子ウインドウがCとしよう。
もし、PからC(Facebook等)のdocument.cookieを取得できたら
セッションハイジャックなどのセキュリティ攻撃が可能になるよね?
だから原則として、PとCが別ドメインである場合は、PからC(またはその逆)はアクセス出来ない。
この制約をSOP(Same Origin Policy、同一生成元ポリシー)という
URLリンク(developer.mozilla.org)
ドメインが違っていても、自分がコントロールできるサイトであれば
HTTP access control (CORS) によってアクセス可能にすることは出来る。
URLリンク(developer.mozilla.org)
ただし赤の他人のサイトならば無理。
> ちゃんとiframeがloadした後に実行するようにしてんのに、なして;;
このコードではloadイベントをキャプチャする前にiframeのページが
読み込まれてしまっていたらloadイベントは発生しない。
これはキャッシュされていたり、iframeのページサイズが小さい場合に発生する。
なので、
1. loadイベントをキャプチャする
2. iframeのページが読み込み済みか確認する
3. 読み込まれていたらloadイベントを自分で発生させる。
という手順を取らないといけない。
iframeのページが読み込み済みかどうかは、document.readyStateとiframeのsrcの確認の併用してできたはず。
だいたいのブラウザはreadyStateで判断できるが、一部できないブラウザがあって
そのブラウザではsrcが空かabout:blankでチェックできたはず。詳しくは覚えていない。
213:209
15/05/07 20:52:34.83 .net
>>207
> 別に直接ライブラリの質問ではないと思う
俺もそう思う。何も考えずにレスするのはやめて欲しい。
> 「しらねーよ」で終わるオチ
解答したよ。またいつもの俺だけどなw
214:Name_Not_Found
15/05/07 20:56:19.05 .net
>>201
> AdSenseやFacebookのiframe要素がページ内の別の場所に入ったりすると
>なぜか実行できなくなる。
あれ? 少し勘違いした?
P と C は自分のページで、 Cの中の一部にAdSenseやFacebookが入るってこと?
AdSenseやFacebook部分は>>209に書いた理由でクリックイベントを捉えることはできない。
でもそれ以外なら捉えられるはずだから、>>209に書いた後半の理由かな?
215:Name_Not_Found
15/05/07 21:07:49.81 .net
>>209
おぉ!丁寧にありがとう。助かります。
前半のクロスサイトの問題はクリアしています。
後半はちょっと何言ってるか理解できないので
document.readyStateあたりをぐぐって色々テストしてみます。
ありがとう。
あとすれ違いスマソ
216:Name_Not_Found
15/05/07 21:10:27.76 .net
>>211
あ、PとCは自分のサイトで、
Pの別の場所にAdSenseやFacebookが入ると捕らえられなくなるということです。
217:209
15/05/07 21:11:52.71 .net
> 後半はちょっと何言ってるか理解できないので
(´・ω・`)
1. HTMLページ表示
2. 平行してiframe内ページ表示
3. 平行してiframe内ページ表示完了(iframeのloadイベント発生)
4. jQueryのready発動(DomContentLoaded発動)
5. iframeのloadを見張る
6. だがloadイベントは3ですでに発動済み
ということ。
218:Name_Not_Found
15/05/07 22:01:20.40 .net
>>214
ありがとう、ありがとう、iframeのload消したらできたよ。
そんな順序になってるとはつゆ知らず。
なんとなく順序が関係してるんだろうなと以下の記述しても治らず…。
$(window).load(function(){
$(document).ready(function() {
$().ready(function() {
できたと思ってアップしては本番では動作せずを繰り返すこと丸1日。
助かりました;;
219:Name_Not_Found
15/05/07 22:21:19.16 .net
もう低レベルな自演はいいです。
時間がなくて下手くそな自演しかできないのなら無理にやらなくていいよ。
220:192
15/05/08 00:42:05.69 .net
:scope でいけそうです。回答者の皆様、ありがとうございました。
だいぶググッたのですが出てこなかったので助かりました。(再確認すると見落としているのも事実ですが)
221: マイナーなのは埋もれてしまうのでMDNやw3を見るべきでした。(解説は有名どころから始まるから) querySelectorAllを使うのは、関数を纏めるためです。キーワードを与えるだけで良いので、汎用化できます。 Array.prototype.filterは遅延評価向きではないので今回は使いません。 Xpathはイテレータを返すしオブジェクトプールにもデフォで対応、すごく速そうに見えますが、実際は遅いようです。 今回に関しては、見た目一番美しいquerySelectorAllを使うか、速さを求めてchildNodesで書くか、ということになります。
222:Name_Not_Found
15/05/08 00:55:11.71 .net
でも、Androidじゃ動かないんじゃね?
223:Name_Not_Found
15/05/08 07:56:20.37 .net
scope を使っている時点で IE を切り捨てているから、汎用化といいつつも対象ブラウザを限定してるんじゃないかな
未対応ブラウザは childNodes, children を使う方法もあるけど、コードを分岐すると美しいコードではなくなるからやはり対象ブラウザを限定しているっぽい
224:Name_Not_Found
15/05/08 08:35:47.74 .net
>>217
:scope は Working Draft だから実験的に使うならともかく、一般公開するサイトには使うべきではないよ
勧告するまでに仕様変更されたり、削除される度にコードを書き換える自信があるなら止めないけど
querySelectorAll の代替としては evaluate がいいと思う
XPath は遅いと言うけど、速さよりも美しさを求めてるわけだからこの場合は無視していいんじゃないかな
evaluate の返り値はイテレータ限定ではなく、第4引数で返り値のタイプを指定することが出来る
NodeList を返すのは無理だけど、 XPathResult.ORDERED_NODE_SNAPSHOT_TYPE が比較的扱いやすい
evaluate は Polyfill があるからクロスブラウザの観点からもお勧め
225:Name_Not_Found
15/05/08 12:53:02.36 .net
ていうか、CSSセレクターだけなんとなく書けるていどの手頃な馬鹿だから、jQueryに囲い込まれてんだよ。そいつらはXPathなんて略記すらちんぷんかんぷんだから無理させんなって。
226:Name_Not_Found
15/05/08 16:12:08.81 .net
今RPGを作っていてクリア者リストを作成したいと思っています。
ゲーム本体はフラッシュなどではなくアプリケーションとして配布します。
そしてクリアをしたらサーバーにIDとクリア日時、名前を送信しそのIDでまだ登録されていなければHTMLを編集させたいです。
FC2HPなのでPHPなどは使えませんがjsで出来ますか?
227:Name_Not_Found
15/05/08 16:25:40.45 .net
JSを使って受信したデータに応じてHTMLを出力するのはNode.jsで出来る
でもFC2HPがそれを動かせるかどうかはまた別問題
228:Name_Not_Found
15/05/08 17:06:58.77 .net
phpを使えないサーバーなら無理だと思っていい
229:Name_Not_Found
15/05/08 17:54:27.74 .net
そっか。。ゲーム本体にFTP内
230:臓させる方法もあるかもしれないけどさすがにこれは抵抗がある。 解析されてHTMLグチャグチャにされたら困るし。
231:Name_Not_Found
15/05/08 19:24:14.64 .net
PHP使えるサーバなんて月100円で借りられるよ。
232:Name_Not_Found
15/05/08 20:15:12.18 .net
>>222
固定IP環境なら事前に自ブラウザのポート明け特性を調べておいて
適切なSDPを試すコードをページに埋め込んでおくことで、
WebRTCを使って建てたサーバーページと接続させて集計させることができる
そこまでするなら普通にNodeでも建ててWebSocketとかで通信すればいいとも思うが
どうしてもサーバを立てたくなければこれくらいしかない。
233:Name_Not_Found
15/05/09 00:08:18.47 .net
>>220
確かに、XPathもリテラルで整理できるので、見た目は問題ありません。
見たところ、XPathの方はだいぶ古くて完全に固まった仕様のようですね。
この場合、問題なければ確かにこちらを使用するべきでしょう。
> NodeList を返すのは無理だけど、 XPathResult.ORDERED_NODE_SNAPSHOT_TYPE が比較的扱いやすい
これについては取り出せば良いだけなので問題はありません。
iterateNextしかないのが痛いですね。iteratePreviousがあれば断然これでした。
更新部分のみのチェックならショートカットできますので。
XHTMLだとタグを閉じなければならないので、後方からの検索も出来るはずですが、惜しいですね。
配列が1から始まるのもどうかと思いますが、これも今更変えられないのでしょう。
見たところ、遅くていいのなら積極的に使うべきかもしれませんが、それにしても遅すぎます。
機能が多いので仕方ないとして、単品で61倍はきついです。
querySelectorは17倍なのでまだマシです。
もっとも、:scope>を使うような状況でどうなのかは分かりませんが。
URLリンク(javascripter.hatenablog.com)
URLリンク(satussy.blogspot.jp)
234:Name_Not_Found
15/05/09 00:29:35.12 .net
XPathってブラウザ間の互換性に問題がなかったっけ?
235:Name_Not_Found
15/05/09 01:12:21.64 .net
そこでRubyですよ
236:Name_Not_Found
15/05/09 01:22:54.42 .net
>>228
> XHTMLだとタグを閉じなければならないので、後方からの検索も出来るはずですが、惜しいですね。
> 配列が1から始まるのもどうかと思いますが、これも今更変えられないのでしょう。
snapshotの添え字は 0 から始まるし、後方検索も可能だけど、どういう意味でいってる?
URLリンク(jsfiddle.net)
> 機能が多いので仕方ないとして、単品で61倍はきついです。
どうして 2008-05-16 の記事が現在も通用する情報だと思うかな
速度というのは環境に依存するものだよ
「2008年のブラウザ、PC」と「2015年のブラウザ、PC」では環境が全く違う
ブラウザの最適化も進んでいるはずだし、PCのスペックも上がった
そもそも、直属の子のdiv要素の走査で速度比較する必要があるのだからその記事では参考にならない
ブログ記事を探す時間を自分で検証する時間に回した方が有意義だと思うよ
そして、Working Draft の不安定な仕様を使う理由は通常はない
これは速度以前の問題だよ
それとも実験的な運用だから使っているのかな?
237:Name_Not_Found
15/05/09 02:25:37.75 .net
>>231
> snapshotの添え字は 0 から始まるし、後方検索も可能だけど、どういう意味でいってる?
>>229
> /bookstore/book[1] Selects the first book element that is the child of the bookstore element.
> Note: In IE 5,6,7,8,9 first node is[0], but according to W3C, it is [1]. To solve this problem in IE, set the SelectionLanguage to XPath:
> URLリンク(www.w3schools.com)
JavaScript上の '0' は検索キーでは '1' 、バグを誘発するだけです。
速度は基本的に機能がない方が速いんですよ。だから、どう最適化しても
childNodes >>> querySelector > XPath はひっくり返りません。
ただ、リスト連結をやり出すと話は違ってきます。
これらの場合は最初からクエリに組み込まれていた方が圧倒的に無駄がないからです。
URLリンク(javascripter.hatenablog.com)
ブログの記事は間違いが多いのも事実、特にJavaScriptに関しては本当に間違いだらけで驚きます。
ただ、もちろん日付も確認しているし、読めば妥当かどうかも分かるんですよ。
実験主義なのは構わないと思いますが、それはご自分でどうぞ。
238:Name_Not_Found
15/05/09 02:36:05.72 .net
>>231
> 後方検索も可能だけど、どういう意味でいってる?
lastChildからitaretePrevious()させろということです。
出来るようには見えませんが、こちらの勘違いでしたら御指摘よろしくお願いします。
239:Name_Not_Found
15/05/09 08:01:16.74 .net
>>233
> lastChildからitaretePrevious()させろということです。
>>231で snapshotItem を使って実現出来てるじゃない
snapshotItem で iteratePrevious を使いたいとか意味不明すぎる
240:Name_Not_Found
15/05/09 08:28:29.47 .net
var str =ppkipkpkkiiikpiii
var r=new RegExp('p|k|i','g');
str.replace(r,'★');
でp,k,iって最初に現れた各1回(★p★★pkpkkiiikpiii)だけreplaceさせたいんですが
全てのpとkとiにヒットしちゃいます
p(1回)|,k(1回)とかできないんでしょうか?
241:Name_Not_Found
15/05/09 08:40:43.53 .net
>>232
> childNodes >>> querySelector > XPath はひっくり返りません。
そんなことは皆わかっている。
それでも速度よりもコーディングの美しさを求めており、それが有意な差に結びつかないと思われるから紹介されているだけだろう。
>>228
> 機能が多いので仕方ないとして、単品で61倍はきついです。
> querySelectorは17倍なのでまだマシです。
Q1. あなたの中では2008年にあったブラウザと2015年現在のブラウザが少しも変わらず、61倍の差を維持していることが確定しているのか?
Q2. Q1が確定した場合、あなたが運用するコードで17倍では有意な差が生まれず、61倍で有意な差が生まれることを本当に確認しているのか?感覚だけでものをいってないか?
(10000回DOM走査して「20ms vs 1230ms」の差が生まれているなら理解できるが、それならアルゴリズムを変更した方がマシ)
Q3. javascripterの記事ではブラウザ名とバージョンが開示されてなく、特定のブラウザとバージョンでのみ速度比較している可能性が否定できない。他のブラウザでは別の結果になる可能性は考慮に入れないのか?当然、同じブラウザでも現行版では改善されている可能性もある。
javascripterの記事を鵜呑みにするには未確定情報が多すぎる。
242:Name_Not_Found
15/05/09 09:31:33.02 .net
>>235
否定先読みと後方参照で何とかなりそうでならないなぁ
global外してreplace(...).replaceと重ねるか正規表現スレで聞いてくれ
243:Name_Not_Found
15/05/09 10:44:47.86 HK2xHVEq.net
firefoxの開発ツールでlocalStorage確認したいんですけど
どこをみたらいいんでしょうか?
244:Name_Not_Found
15/05/09 10:53:03.54 .net
Shift+Ctrl+Kでコンソール出してlocalStorage
あるいは歯車マークから設定出してストレージにチェックを入れてタブを増やす
245:Name_Not_Found
15/05/09 10:56:15.00 HK2xHVEq.net
確認できました
246:Name_Not_Found
15/05/09 10:59:32.16 HK2xHVEq.net
確認できたんですが開発ツール上から編集も削除もできないんですね
これはちょっと厳しいですね
247:Name_Not_Found
15/05/09 11:41:00.88 .net
>>234
あなたは「遅延評価」を理解できていません。ググるといいでしょう。
>>236
A1, A3. 確定はしていませんが、なぜ改善していると一方的に考えるのですか。差が開いていることもあり得ます。
A2. 総合的に見て、:scope が持っている問題に比べて、 XPath が持っている問題が大きい、それだけの話です。
実験したければどうぞ。
こちらは今回は :scope で行くか、これまで通り chindNodesで記述するかの選択になります。
ちなみに、Q3を主張するのなら、自己矛盾してますよ。
いくらあなたが実験しても、それはあなたの環境での話であって、全ての環境での説明には成り得ません。
その実験結果で何を得たとしても、参考にはなりませんから、実験するだけ時間の無駄です。
誰かの環境で出た値を参考にして良いのなら、ググルと分かりますが、
妥当だと思える値がそこだけではないブログに大量に出ており、当然同じ方向を向いています。
よって、追試する意味はありません。やったところで同じ結果です。
それは仕様による速度差なのですから、埋まりません。
248:Name_Not_Found
15/05/09 11:44:29.93 .net
>>241
つFirebug
249:243
15/05/09 12:08:15.18 .net
>>241
ちなみに手打ちでよければ、コンソールを表示して、以下で出来る。
これならFirebugを導入する必要はない。
localStorage['test'] = 0;
localStorage['test']
もちろん、setItem/getItem等の他表記も動作する。
250:Name_Not_Found
15/05/09 12:11:02.23 .net
遅延評価で無限を表せるっていうのは知っていたが、
>>217
> Array.prototype.filterは遅延評価向きではないので今回は使いません。
無限とは直接関係ないはずの話で遅延評価が出てきたので
他にも何かあるのかと思ってググってみたらこういうのを見つけた。
Lazy.js を紹介してみる
URLリンク(ayato.hateblo.jp)
> var result = _.chain(array).map(square).map(inc).filter(isEven).take(5).value();
> この場合 underscore.js だと遅いんですね。
> それを解決するのが Lazy.js というわけです。
> var result = Lazy(array).map(square).map(inc).filter(isEven).take(5);
あまり良くわからなかったが、以下の文章でピンときた。
> 大事なこととして each を呼ぶまで Lazy.js は繰り返し処理をしないし、
> 配列を何度も作るようなことはしないということかな。 Lazy.js は全てのクエリを
> シーケンスの中で結合して振る舞いを手続き的なコードと同じようにしている*1。
つまりメソッドチェーンの話か。メソッドチェーンを使った時、mapしてmapしてmapとかやると
配列から新しい配列を作って、その配列からまた新しい配列を作る・・・となってムダな処理をしてしまう。
そういう単純な動きではなく、map(f)してmap(g)してmap(h)するっていうメソッドチェーンを書くと、
map(f+g+h)という形のメソッドが作られて、一回のループで処理するわけか。
値を取得するメソッドを呼ばない限り、メソッドをくっつけるだけで処理自体は行わない。だから遅延評価
その遅延評価がlodash 3.0に入ったね。互換性の話があるから遅延評価されるのは_.chainを使って
メソッドチェーンを始める場合だけみたいだけど、頭の片隅に入れておこう。
251:Name_Not_Found
15/05/09 12:11:30.87 .net
>>241
すれ違い。JavaScriptの話ではない。
252:Name_Not_Found
15/05/09 12:20:12.75 HK2xHVEq.net
>>243
ツールを分けないと行けないのは不便に感じました
15インチのディスプレイで開発ツールとfirebugを2つ出すのは厳しいです
>>244
これもひとつの選択肢になりますがプロジェクトごとにデバックするときに大変な気がしました
Chromeだとdevtoolsだけで削除できますが追加ができないんですよね
データに関するツールってどれも一長一短ある感じでオールマイティなものってないですよね
javascriptでコード書いた
253:りデバッグもやりやすいなあと思いました
254:Name_Not_Found
15/05/09 12:24:27.64 .net
>>247
だからスレ違い。>>1を読め
255:Name_Not_Found
15/05/09 12:44:30.00 .net
JavaScriptに関する質問だから問題ない。
256:Name_Not_Found
15/05/09 12:46:52.29 .net
最近自治厨うざいよな。
JavaScript関係なんだから問題ないだろ。
257:Name_Not_Found
15/05/09 12:58:03.56 .net
ブラウザでのJSデバッグもここの範疇だったし問題ないでしょ
そもそもDevTools扱ってFirefox蹴っちゃおかしいし
258:Name_Not_Found
15/05/09 12:59:23.46 .net
JavaScriptの質問じゃない。
ブラウザがOKなら○○のプラグインありませんか?
みたいな話までOKになってしまう。
けじめはしっかりつけないといかんよ。
259:Name_Not_Found
15/05/09 13:06:31.30 .net
>>237
やっぱ後方参照ぐらいしかないですか
先に進めそうでありがとうございます
260:Name_Not_Found
15/05/09 13:09:14.04 .net
正規表現ばかりに頼ってはいけない
URLリンク(blog.anatoo.jp)
文字列のパースをする必要がある時、どんな文字列にでも
何でもかんでも正規表現で処理しようとするエンジニアをたまに見かける。
正規表現は確かに文字列を扱うための強力な手段だが、万能ではない。
正規表現の性質上、そもそもパースできない文法があるからだ。
従ってそういうケースの時には正規表現ではなく別の方法を使ったほうが良い。
正規表現を無理やり使っても、バグを埋め込んだり、メンテナンスが難しかったり、
正しく文字列をパース出来なかったりで良いことはあまりない。
261:Name_Not_Found
15/05/09 13:09:40.13 .net
なんとなく低レベルな人がここで自治してこれ禁止あれ禁止って言っている印象がある
262:243
15/05/09 13:15:17.68 .net
>>247
> Chromeだとdevtoolsだけで削除できますが追加ができないんですよね
出来るよ。Key/value欄で右クリック。
空欄の中で一番上だけしか反応しないから、若干罠だけど。
ちなみに、この程度の事で揉める方が面倒だと思うのだが、、、
逆に、この質問を「こんなプラグインはありませんか?」のスレでやる方が迷惑だ。
263:Name_Not_Found
15/05/09 13:18:57.57 .net
>>242
確認していないのだから不定だろう?
むしろ、n倍遅いと決めつけるあなたがおかしい
あなたのために実験してあげる気は毛頭ないし、それを押しつけられても困る
264:Name_Not_Found
15/05/09 13:27:24.72 .net
>>255
ルールなのだから禁止。ルールを守れない奴は失格
265:Name_Not_Found
15/05/09 13:29:36.43 .net
JavaScriptを書くということはこういうツールを使うのは常識なわけで禁止にする意味がわからん
266:Name_Not_Found
15/05/09 13:30:57.22 .net
それを言ったら、テキストエディタの話題まで含まれるだろ。
JavaScriptとは関係ない話は禁止だ。
267:Name_Not_Found
15/05/09 13:32:19.13 .net
>>259
お前の常識ってだけだろ。使うのが当たり前だろうが、
使わなくても出来るなら、使わなくていい。
使わずに出来るなら、それはこのスレの対象外
268:Name_Not_Found
15/05/09 13:37:32.60 .net
>>257
> むしろ、n倍遅いと決めつけるあなたがおかしい
ベンチマークをn倍で話したらだよ。
ブラウザメーカー(に限らないが)がよくやるのは
今までよりもn倍になりましたって宣伝。
だけど実際に使ってみたら、それだけの速度向上には見えない。
なぜなら、全体の0.1%がn倍になっただけだから。
n=10だとして、100%の0.1%が10倍になっても、101%になるだけ。
体感速度が変わるわけじゃない。
だからベンチマークで重要なのは実時間。
1マイクロ秒でも10マイクロ秒でも体感速度は変わらない。
1回の実行で10ミリ秒の差があったとしても、一回しか
実行されないような処理なら体感速度に影響はない。
ベンチマークはn倍だけではなく実時間と実行回数も調べるように
269:243
15/05/09 13:57:57.81 .net
>>245
まだ若干勘違いがあるようだけど、こちらの目的は確かにそのページ冒頭に書いてあるとおり。
_.chainが遅延評価ラッパになるのなら、それは便利だとは思う。俺は使わないけど。
遅延評価の利�
270:_は、必要な物が揃ったところで break 出来る点にある。 だから、結果的に「無限」を表せるのであって、「無限」を表すための方法ではない。 全部に対して処理するのなら、snapshotItem も iteratePrevious() も iterateNext() も filter も大した差はない。 ごくごく一部だけのチェックで済むなら、遅延評価はダントツで速くなる。 俺の場合は更新部分のチェックだから、iteratePrevious()が必要。 iteraterをfor文の別記法と思っているのならただの馬鹿。
271:Name_Not_Found
15/05/09 14:17:00.17 .net
> 遅延評価の利点は、必要な物が揃ったところで break 出来る点にある。
それ遅延評価関係ないし
そもそもお前が話してるのは遅延評価の話じゃなくて
ノードリストがliveかstaticかの話だろ。
用語を全くわかってない。
272:Name_Not_Found
15/05/09 14:39:25.22 .net
遅延評価は、物が必要になった所で、評価するから"遅延"評価なんだろ。
物が揃った所でbreakするだけなら、普通にreturnすればいい。
それはforでもforEachでもできること。
273:Name_Not_Found
15/05/09 16:46:36.60 .net
ここ、質問スレだよ
274:Name_Not_Found
15/05/09 16:49:19.79 .net
>>266
質問していいですよ。どうぞ。
275:Name_Not_Found
15/05/09 18:19:02.03 .net
遅延評価とはいかなるものかを言い争っても仕方ないだろ
それがなんという名前のものだろうがやろうとしてることができればいいんだよ
276:Name_Not_Found
15/05/09 19:43:42.25 .net
>>242
後方検索と遅延評価に関連性はない
条件後出しが多すぎるね
277:Name_Not_Found
15/05/09 21:00:03.83 .net
黙って会話を見ていたが、俺以外の回答はどれも
頓珍漢なものばかりだなw
278:Name_Not_Found
15/05/09 21:17:32.33 .net
他の人も多分同じこと思ってるよ
279:Name_Not_Found
15/05/09 21:20:11.68 .net
全ては回答の質できまる。
280:Name_Not_Found
15/05/09 22:08:00.41 .net
>192の質問者もうざい
どれだけ上から目線なんだ
281:Name_Not_Found
15/05/09 22:10:23.34 .net
> どれだけ上から目線なんだ
3メートルぐらい上から目線だよ。
282:243
15/05/09 22:40:18.31 .net
>>245
相変わらずおかしな流れにしかならないから、これで終了にする。
もっと確認したければ、以下を見るといい。
URLリンク(itchyny.hatenablog.com)
ここのEvaluate内で if (v.evaluated) でキャッシュされているところを、
XPathとiterateNext()に置き換えれば、
外部からの制御なしに、無駄な検索/操作を全く行うことがなくなることを理解できるだろう。
これが遅延評価の利点だ。
querySelecter後のfor文中でのbreakではノード探索を中断することは出来ない。
XPathのiterateNext()での中断なら、これができる。
ただし、今回の俺の用途は後方からの探索であり、必要なのはiteratePrevious()だから、惜しかった。
俺の質問は >>192, ベストな回答は >>194,
>>196 から別推薦があったからそれを採用しない理由を >>217 に回答した。
さらに >>220 から物言いが付いたから >>228 で回答、マトモなのはここら辺まで。
>>245 には勘違いがあるけども、彼は自分自身で前に進もうとしているのだから、
質問に回答してもらっている礼として、学習用の情報をこのレスで提供した。
遅延評価とメソッドチェーンは関係ない。
ただ、遅延評価をわざわざ行うのは、Haskellみたいな思想的なものでなければ、
配列的な物のショートカットにしか使えないと思う。
なお、getterに関数を突っ込めばプロパティも全部遅延評価に出来るが、
評価されるのは実際にそれが使われる時だから、
通常のjavascript=記述した時点での評価のノリで書いているとバグる。
ただ、XPathのイテレータはDOMの変更がないことを要求しているので、
おそらくXPath/iterateNextのコンビについては、機械的に置き換えることも可能だと思われる。
283:Name_Not_Found
15/05/09 23:24:06.09 .net
この人は相変わらず、Working Draft な仕様を平然と使うんだな
284:Name_Not_Found
15/05/09 23:37:28.14 .net
速度の話題になるとあやふやな発現が多いね
>>228
285:Name_Not_Found
15/05/09 23:44:51.20 .net
>>275
> 相変わらずおかしな流れにしかならないから
いつもそうなるなら、お前が原因なんじゃね?
286:Name_Not_Found
15/05/10 00:08:26.91 .net
結局、質問者が考えるXpathの総合的な問題(>>242のA2.)とは何だ?
・後方からの遅延評価ができない(>>228) ← querySelectorAll も同じ
・配列が1から始まる(>>228) ← セレクタの nth-child() も同じ
・In IE 5,6,7,8,9 first node is[0](>>232) ← xml.setProperty("SelectionLanguage","XPath"); だけで解決。あるいは Polyfill(>>220)
・速度が遅い(>>228) ← 一回しか実行されないような処理なら体感速度に影響はない(>>262)
それよりかは明らかに:scopeの問題の方が多いと思うが
・Working Draft である(>>220)
・IE, Opera, 古いFF で未サポート(>>194)
287:Name_Not_Found
15/05/10 00:15:02.10 .net
まーた、遅延評価って間違った言葉使ってる。
こいつ、自分の間違いを素直に認めれんのなw
288:Name_Not_Found
15/05/10 00:19:48.74 .net
>>279
XPathも:scopeも両方問題があるように見えるが?
289:Name_Not_Found
15/05/10 04:26:23.46 .net
最近はセレクタにもキャッシュとJITが効くし、
結論としては毎度同じく、実際問題になってから対処すればいいだけ
しかし、原理的に遅いだろうという考え方は危険
この前のhasOwnPropertyの件で分かるように、
よく使われるものほど特別に最適化されるようになっていく
290:Name_Not_Found
15/05/10 08:22:02.86 .net
>>280
こういうヤツJavascriptスレに多いよな、ガキ臭いヤツら
たくさんのブログで大体同じ傾向だから自分で性能評価する必要は無いとかもうね、声出して笑っちゃったwwwww
291:Name_Not_Found
15/05/10 09:48:04.47 .net
IE7またはそれより古いIEは既にどうでもいいが、特にIE5まで遡っているから今更敢えて言うが、おまえらの殆どはブラウザのHTMLでsetPropertyなんてできないだろ。
俺は15年前からできているというか、たぶん地球で最初にやり始めたのが俺だと思うが、IE5だとセキュリティ設定が邪魔してくれる場合は多々ある。5.5からは余裕。というか、5.5みたいなジューシーなブラウザを忘れるわけがないから、おまえらは本当にニワカだよな。
292:Name_Not_Found
15/05/10 09:58:30.56 .net
今時比較検討要項が実行速度なのかね?馬鹿なのか?
なぜfilter/map/reduceを使うのか、誰彼が言わずとも知っているよな?
293:Name_Not_Found
15/05/10 12:18:27.28 .net
実行速度を問題視してるのに、それを比較検討するのはバカなのかwwwww
294:Name_Not_Found
15/05/10 17:24:00.00 .net
ここはお悩み相談所じゃないから。
実際に問題になってから質問してください。
295:Name_Not_Found
15/05/10 17:29:12.64 .net
>見たところ、遅くていいのなら積極的に使うべきかもしれませんが、それにしても遅すぎます。
>機能が多いので仕方ないとして、単品で61倍はきついです。
>querySelectorは17倍なのでまだマシです。
質問者は速度を思い切り問題にしてるんですが…
296:Name_Not_Found
15/05/10 17:34:06.40 .net
本当に速度を気にしているのなら、
速くする意味があるか無いかをちゃんと考えてるよ。
何も考えてない奴は、とりあえず速くしようとする。
297:Name_Not_Found
15/05/10 17:41:14.91 .net
だったら速度の話なんて出さなければいいのでは?質問者が速度の事書いてるから答えてるだけだし
298:Name_Not_Found
15/05/10 17:47:45.87 .net
文字列の変数aの中に、文字列bが何回登場するかをカウントするスクリプトを組みたいのですが、うまくいきません。
var a = 短い単語とか
var b = 長めのテキストとか
var match = b.match(new RegExp(a,"g"));
alert(match.length);
例えばa="あいう";b="あいうあいうお"でしたら、2になります。
しかし、aにある文字(*とか)を入れると、バグることが分かりました。
a="***";b="******"だと2になりません。
調べてみると、new RegExp()は文字列じゃなくてパターン?なので、ちょっと違うようです。
どうすれば*とかの文字もちゃんとカウントできるようになりますか?
299:Name_Not_Found
15/05/10 17:52:08.44 .net
回答はたまには俺以外の奴に任せよう。
300:Name_Not_Found
15/05/10 18:30:28.70 .net
今回は俺も任せようかな
301:Name_Not_Found
15/05/10 20:08:36.70 .net
>>291ですが、良さそうな他のスレを見つけたのでそこで質問し直します
ありがとうございました
302:Name_Not_Found
15/05/11 04:03:52.31 .net
最新ブラウザではセレクタはキャッシュやJITが効くようになってきてるから速度なんて一概に言えん。
無駄に拘ると文字列結合を配列に入れてjoinするみたいにすぐバッドノウハウになるだけ。
本当に代替手段を使わないとどうしようもない自体になってから真剣に検討すべき。
303:Name_Not_Found
15/05/11 05:50:53.09 .net
只今個人でウェブサイトを作っていて複数の画像を回転させようとしているのですが
ひとつづつに動作を記述すのがめんどいので同じ所は関数を作ってまとめようと思い
自分なりに考えてやってみたのですがうまくいきません汗
よかったらどうすればいいのか教えてください
一応個別で一つづつ書いた場合は回転しました。
サンプル
html---------------------
<html>
<head>
<script src="jQueryRotate.js" type="text/javascript"></script>
<script src="rolling.js" type="text/javascript"></script>
</head>
<body>
<img id="imge001">
<img id="imge002">
</body>
</html>
rolling.js-----------------------
$(function(){
function rollin(nam1,nam2){
$(function(){
var angle = 0;
setInterval(function(){
angle+= nam1;
$("nam2").rotate(angle);
},10);//
rollin(5,image001);
rollin(2,image002);
});
304:Name_Not_Found
15/05/11 06:28:30.13 .net
>>295
言ってる事には完全に同意なんだけどさ、今回は質問者がその状態で、選んだ手段がDraftの機能だからこんだけ言われてるんだと思うよ。
305:Name_Not_Found
15/05/11 06:53:25.03 .net
>>296
> (9) ライブラリ関連の話題は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
>>1を読んでから該当スレへ
306:Name_Not_Found
15/05/11 07:27:03.81 .net
>>298
これもライブラリ関連の話になるんですか、、、
関数定義のやり方と使い方だからてっきり本家のjavascriptスレで問題ないと思ってしまいました。
教えてくださり有難う御座います
該当スレで質問しなおさせて頂きます。
307:Name_Not_Found
15/05/11 13:08:53.72 .net
というか使う必要があるコードだろうか
308:Name_Not_Found
15/05/11 16:53:45.79 .net
もうほんとしつこいな。
ライブラリ使ってたら絶対ダメってことじゃねえけど、
明らかに自作自演で荒らすことを目的とした適当なコード挙げんのはやめろ。
もし万が一わざとじゃないとしたらスレの流れくらいは読め。
309:Name_Not_Found
15/05/11 17:07:14.62 .net
>>296
括弧の数があってないじゃないかあ!
function rollin(step,item){
var angle = 0;
return setInterval(function(){
angle = (angle + step) % 360;
item.rotate(angle);
},10);
}
$(function(){
var tid1 = rollin(5,$('#image001'));
var tid2 = rollin(2,$('#image002'));
});
と思ったらもういないのか…
310:Name_Not_Found
15/05/11 17:07:21.72 .net
ちゃんと荒らしが立てた方じゃないとこで質問し直してるし別人でしょ
テンプレをきちんと読んだ上で区切りがわからずにここで聞いたっぽいけど
彼に色々端折ってjQueryだけ断片的に教えた人は何考えてんのか
311:Name_Not_Found
15/05/11 17:35:58.90 .net
関数型プログラミングに目覚めた! IQ145の女子高校生の先輩から受けた特訓5日間
URLリンク(www.amazon.co.jp)
312:Name_Not_Found
15/05/11 17:50:13.42 .net
JKとかババア乙
JSが至高
313:Name_Not_Found
15/05/11 18:06:06.47 .net
>>303
きちんと読めば何やっても許されるわけじゃないし、
間違いなく故意だね
314:Name_Not_Found
15/05/11 20:22:38.91 .net
まーたやってんのかw
俺が回答しなくても、結局荒れるんだな。
荒らしにレス(荒らし)するぐらいなら
無視するということを覚えようぜ?
315:Name_Not_Found
15/05/11 20:42:30.99 .net
無視することを覚えていない人に言われたくないね
316:Name_Not_Found
15/05/11 22:06:57.48 .net
今回は回答ではなく質問できたね偉いね
317:Name_Not_Found
15/05/12 15:08:03.57 .net
ボタン押下でポップアップ画面開くんだけど
閉じずにもう一回ボタン押下したとき
新規ウィンドウ開かないで、1回目のウィンドウを上書きするのってどうやるの?
318:Name_Not_Found
15/05/12 22:03:29.10 .net
自己解決しました
319:Name_Not_Found
15/05/12 23:32:16.35 .net
for(){//A
for(){//B
break;
}
}
ってbreakしてもBのしか終了できないんですけど
BのforでAも一気にbreakさせる方法ってありますか?
320:Name_Not_Found
15/05/13 00:09:15.17 .net
自己解決しました
321:Name_Not_Found
15/05/13 08:50:58.23 .net
してないです
322:Name_Not_Found
15/05/13 09:33:16.87 .net
ちょっと上で答えが出てるだろ
過去スレ検索どころかこのスレも見ないで質問するのは流石に失礼
323:310
15/05/13 15:26:48.67 .net
自己解決してないです( ; ; )
324:Name_Not_Found
15/05/13 16:03:55.31 .net
Aをくくってreturn;
325:Name_Not_Found
15/05/13 16:37:07.36 .net
これでいいだろ
try{
for(){//A
for(){//B
broke
}
}
}catch(e){}
326:Name_Not_Found
15/05/13 16:39:41.57 .net
>>310
window.open("URL", "何でもいいから文字を入れる")
厳密に言えば、既にあるウィンドウ名に被らず、"_"で始まらない文字。
分からないなら"hoge"でも"piyo"でも適当に。
>>312
label: for(){//A
for(){//B
break label; // Aまで抜ける
break; // Bだけ抜ける
}
}
327:Name_Not_Found
15/05/13 19:47:11.43 .net
>>319
ありがとう
ここでのlabelは他の文字でもいいの?
328:Name_Not_Found
15/05/13 19:51:56.00 .net
いいよ
329:Name_Not_Found
15/05/13 20:07:41.48 .net
つーか自分で調べられない奴は
質問するなよ。レベル低すぎ。
330:Name_Not_Found
15/05/13 20:22:26.02 .net
まあアレだけ人を追い出していれば
レベルも低くなるさ。
331:Name_Not_Found
15/05/13 21:18:40.42 .net
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
332:Name_Not_Found
15/05/13 22:03:15.44 .net
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
333:Name_Not_Found
15/05/13 22:14:14.39 .net
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
334:Name_Not_Found
15/05/13 22:22:47.96 .net
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
335:Name_Not_Found
15/05/13 23:09:40.83 .net
結局仕様書読めばほとんどのことが分かるだろう
IntlAPIみたいに仕様が未熟で実際の挙動がこうあるべきなのかどうか
ベテランの皆さんの意見を聞かせてくださいみたいな質問以外はいらない
336:Name_Not_Found
15/05/13 23:31:34.86 .net
初心者に仕様書嫁とか無茶すぎる
337:Name_Not_Found
15/05/14 00:30:00.57 .net
>>329
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
338:Name_Not_Found
15/05/14 00:33:13.75 .net
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
339:Name_Not_Found
15/05/14 00:38:50.46 .net
>>319
ありがとうございます助かりました!
自分は>>312だけです
340:Name_Not_Found
15/05/14 00:56:22.66 .net
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
341:Name_Not_Found
15/05/14 04:39:21.53 .net
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
342:Name_Not_Found
15/05/14 06:22:27.73 .net
>>332
トリップ付けろって過去スレで散々言われただろ
後から出てきてそれじゃ済まねーよ
343:Name_Not_Found
15/05/14 07:31:35.28 .net
>>335
>>329
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
344:Name_Not_Found
15/05/14 08:17:17.85 .net
>>336
2chの公序良俗は十分守れてる
あんたのようなテンプレコピペ魔神の方が迷惑だということを自覚しなさい
345:Name_Not_Found
15/05/14 08:52:12.81 .net
さすがにやりすぎだとは思うが、公序良俗が守れているとは言い難いな
346:Name_Not_Found
15/05/14 09:02:15.90 .net
>>337
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
347:Name_Not_Found
15/05/14 09:10:33.62 .net
>>335
トリップ?
んなもんしらねーよ
348:Name_Not_Found
15/05/14 17:43:24.58 .net
コピペ荒らしくんかわいい
ちゅーしてあげたい
349:Name_Not_Found
15/05/14 18:04:15.09 .net
CHU!
350:Name_Not_Found
15/05/14 21:51:36.41 .net
今日も質問なしか。本当に廃れてしまったな。
351:Name_Not_Found
15/05/14 22:30:29.77 .net
もうここ5年以上いると思うけどレス頻度は数年前からこんなもんだよ
まあ確かに質問が減って無駄話の割合は増えたね
352:Name_Not_Found
15/05/14 22:45:37.31 .net
困っている人がいないことはいいことだ
353:Name_Not_Found
15/05/15 08:18:52.12 .net
数少ない質問の9割方が同じ人の質問で気に入らない回答に煽りを帰すだけになってしまっている感はある
354:Name_Not_Found
15/05/15 08:34:38.09 .net
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
355:Name_Not_Found
15/05/15 08:47:49.76 .net
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
356:Name_Not_Found
15/05/15 15:46:18.92 pPJkHPnS.net
XmlHttpRequestのresponsTypeってMDNでは標準のAPIではないって説明書いてあるけど
whatwgみるとちゃんと載ってました
ってことは標準のAPIってことですか?
357:Name_Not_Found
15/05/15 17:07:02.06 .net
XmlHttpRequestとはXMLHttpRequestか?
responsTypeとはresponseTypeか?
こんだけテキトーかませるということはナメた態度の馬鹿だよな?
358:Name_Not_Found
15/05/15 17:18:16.86 .net
>>350は俺の弟の戯言なので許してくれ
responseTypeは標準。これは真実。
英語版では非標準なんてマークはついていない。
非標準マークは、恐らくミスか、註に書いてある"moz-json"のことを指してるのだと思われる。
359:Name_Not_Found
15/05/15 20:11:42.42 .net
今日ここのスレのノリでtempみたいなのをver sex とかvar mankoとか書いたまま出したら上司にスッゲー怒られた
お前らも気をつけろよ
360:Name_Not_Found
15/05/15 21:03:20.33 .net
テスト出力でoppaiとかよくやるよな
361:Name_Not_Found
15/05/15 23:31:03.65 .net
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
362:Name_Not_Found
15/05/16 04:34:36.83 .net
俺も10年位前厨房の時こういったスレをテンプレコピペで荒らしたわ
すまんな
363:Name_Not_Found
15/05/16 08:36:43.73 .net
ええんやで
364:Name_Not_Found
15/05/17 01:31:34.10 .net
callとapplyがひとつのファイルに入りまじるようなことってありますか?
どっちかに統一して使ったほうがいいですか?
365:Name_Not_Found
15/05/17 01:36:46.76 .net
>>357
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
366:Name_Not_Found
15/05/17 01:37:20.31 .net
>>357
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
367:Name_Not_Found
15/05/17 01:38:33.04 .net
>>357
そもそもcallもapplyも使わないほうがいいと思います。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
368:Name_Not_Found
15/05/17 01:44:26.59 .net
使われてないスレに書いたのでもう一度書きます
普段はbootcampでwinを使っているのですが
winがおかしくなったのでosxで作業してます
chromeの場合は同じアプリがosxでも使えるのでありがたいですが
tweetdeckが、winと比べるとクッソ重いことに気づきました
jsの実行速度はOSによってかなり違うのでしょうか?
369:Name_Not_Found
15/05/17 02:43:46.94 .net
jsの実行速度は変わらないだろう。
問題があるとすればtweetdeckだろうな。
370:Name_Not_Found
15/05/17 03:28:10.54 .net
(9) ライブラリ関連の話題は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
371:Name_Not_Found
15/05/17 04:47:25.22 .net
ライブラリ質問スレではなくプログラム板のJavaScriptスレで聞いてください
372:Name_Not_Found
15/05/17 06:42:13.07 .net
>>357
call, apply は混在することがありますし、一方に統一すべき理由もありません。
その質問は「String#match, RegExp#test をどちらかに統一すべきか」と質問しているようなものです。
用途によって使い分けます。
373:Name_Not_Found
15/05/17 17:09:37.99 .net
レスを分けないでください。
無駄にスレを表皮しないでください。
伝えたいことをまとめてから書くようにしましょう。
374:Name_Not_Found
15/05/17 19:27:53.89 .net
そういうお前がまず自分のレスをきちんと遂行精査してから書き込め
375:Name_Not_Found
15/05/17 19:36:31.31 .net
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
376:Name_Not_Found
15/05/17 19:51:10.59 .net
>>368
好き好き!!ちゅーっ!
377:Name_Not_Found
15/05/18 20:22:56.86 .net
windowsが起動しなくなり、
幸いbootcampだったので、データだけ救出しました
制作中のサイトの、
chromeのlocalstorageのデータを他のマシンに移したいのですが
単純に、Local Storageフォルダの、該当URLの
.localstorage
.localstorage-journal
両ファイルをコピーするだけで可能でしょうか?
378:Name_Not_Found
15/05/18 22:57:05.88 .net
>>370
やってみたら見事復活しました!
379:Name_Not_Found
15/05/18 23:05:25.71 .net
>>1のテンプレを読んだけど、
別にスレ違いの質問をしたらだめとは書いてないな。
なら問題ないか。
380:Name_Not_Found
15/05/19 05:00:34.59 .net
スレより上位のレイヤーで常識で禁止されてること
まずURLリンク(peace.2ch.net)を読もう
381:Name_Not_Found
15/05/19 06:56:05.80 .net
ここは自治スレです
自治厨の理不尽なレスを楽しむ自治厨のための社交場なので質問者が来る場所ではありません。
382:Name_Not_Found
15/05/19 09:41:35.17 .net
荒らしが大手を振って歩いているが、質問が来るまでまったり待とう
383:Name_Not_Found
15/05/19 09:50:21.61 .net
>>358
こういう質問ってググって分かるもんなの?
384:Name_Not_Found
15/05/19 16:38:01.03 .net
>>376
call, apply の仕様を読んで機能を理解すれば各々の用途がわかりますよ。
下記は ES3 ですが、英語を読めるなら ES5.1 が望ましいですね。
URLリンク(www2u.biglobe.ne.jp)
URLリンク(www2u.biglobe.ne.jp)
仕様書を読むほうが確実ですが、あえてぐぐるなら Function.prototype.call, Function.prototype.apply でしょうか。
385:Name_Not_Found
15/05/19 16:58:42.25 .net
そもそも~した方がいいですかとは言うけど
どうしてそうした方がいいのか悩んだわけ?
明らかな間違いでない場合それを聞かないと答えようがない
386:Name_Not_Found
15/05/20 13:28:21.02 .net
この質問者がどうかは知らないが、「特定の状況ではないが、今後の為に~した方がいい」という判断材料を得たいと考えて質問する人は過去にいた
その人にとっては各関数の機能や背景はどうでもよくて「~した方がいい」という回答を得ることが重要となる
本質的には状況によっては答えが異なる内容であっても「全てにおいて~した方がいい」と考えたがる
そもそも、その辺りの基礎知識がない(基礎勉強するのが面倒くさい)からシンプルな解である「全てにおいて~した方がいい」を求めるのだろう
「ケースバイケース」という考えがないんだな
387:Name_Not_Found
15/05/20 18:27:21.17 .net
俺なら今後のためというのならよっぽどのことでない限りダメとは言わない。
何故なら幅広い機能や書き方を沢山試し、自分で善悪を判断することが、
自分でケースバイケースに対応できるようになるために重要な過程だと思うから。
よって一般的に言うと、一般的にどうですかという質問に対しては、
もっと具体例を示すか自分で試して判断しろと結局言うことになる。
388:Name_Not_Found
15/05/20 19:12:50.70 .net
最終的に自分で自分仕様のライブラリを作って普及させるのがよい
389:Name_Not_Found
15/05/20 20:56:37.97 .net
Extensible Web Manifestoですね分かります(違う)
390:Name_Not_Found
15/05/21 15:54:11.59 JG4SIWns.net
すみません、初心者で上手く行かず困っています。
htmlソースの中の#fffffを#cccccに変更するjavascriptを考えているのですが
簡単そうでなかなかうまく行きません・・・
cssでやればいいのですが
ASPで提供されているためソースを無理やり変更させるしか方法がありません。
391:Name_Not_Found
15/05/21 16:11:47.17 .net
質問が大雑把すぎるからもっと具体的に
HTML文書内の文字列#ffffffを単純に置き換えたい訳ではないよね
既に適用されたCSSの値を後から変更したいってこと?
392:Name_Not_Found
15/05/21 16:40:15.27 .net
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は URLリンク(validator.w3.org) で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
393:Name_Not_Found
15/05/21 16:56:23.72 .net
>>383
とりあえず変更したい要素が取得できるかだけでも教えてくれ
394:Name_Not_Found
15/05/21 19:14:42.89 .net
>>383
- document.styleSheets を書き換える
- 新たなstyle要素を生成して既存のスタイルを上書きする
395:383
15/05/21 22:42:38.68 JG4SIWns.net
お返事遅れました。
>>384
そういうことになります。
スタイルシートで!importantとかではどうにも出来ないのです。
>>386
要素、id、classともにありません。
table border="1" bordercolor="#333333" みたいになってます。
>>387
スタイルシートではどうすることも出来なくて・・・。
実は楽○市場でして、ソースを見ると不要なタグなどあり
またスタイルシートでどうすることも出来ないものがあるので
jsで何とかしようかとしているのですがなかなかうまく行かずです。
396:Name_Not_Found
15/05/21 23:11:33.49 .net
○天市場って、スタイルはダメなのにjs使えるの?
セキュリティ大丈夫か
それはともかく、要素はgetElementsByTagName("table")[n]なりquerySelector("table[border=1]")なり前後の要素から攻めるなり、
いくらでも取得する方法はある。
HTMLを見ないとどの方法が使えるのかは
397:ズバリ言えないが、取得できないことはあり得ない。 ただしiframeのクロスドメインは例外。 あと>>387は確かにスタイルシートだが、JS経由での操作なので、JS利用可ならまず使える。 まあ、ソース見せてくれないことにはヒントしか言えない。 とりあえずソースを見せてくれ
398:Name_Not_Found
15/05/22 07:21:12.92 .net
楽天市場でCSS使えそうだけどね。
URLリンク(sumahoya.blog.fc2.com)
「!importantとかではどうにも出来ない」ってCSS指定間違ってるようにしか見えない。
399:Name_Not_Found
15/05/24 17:14:34.26 .net
URLリンク(mechaag.tumblr.com)
ここは6の段階を通り越して「そして誰もいなくなった」に近いな
400:Name_Not_Found
15/05/24 18:44:23.08 .net
住民である回答者は常に十分にいる
5年位前か、追えないくらい進行が速かった時は全く無視される質問も多かった
今はどんなくだらない質問も少なからず相手にされてる
新参者である質問者が来ないだけ
401:Name_Not_Found
15/05/24 19:16:30.32 .net
Android標準ブラウザでJavaScriptのデバッグをする方法を知りたいです。
ググったところ、url欄に「about:debug」と入力するとデバッグモードを設定できるらしいのですが、
上手く行きませんでした。
上記情報は2013年とかのもので、今は状況が変わっているのかも?と思っています。
これについて知っている方がいたら、ご教示お願いしますm(_ _)m
402:Name_Not_Found
15/05/24 19:46:50.57 .net
>>393
Remote Debugging on Android with Chrome
URLリンク(developer.chrome.com)
403:Name_Not_Found
15/05/24 19:50:03.26 .net
>>394
ありがとうございます!
リモートなんですね…
404:Name_Not_Found
15/05/24 20:22:44.69 .net
べつに昔ながらのtry-catch-alertもしくはonerror-alertでもええのよ
405:Name_Not_Found
15/05/24 20:31:31.02 .net
>>396
FW使ってるので、特定環境のみとなるとそっちも疑わなくちゃいけなくて
追うの大変そうで…。
というか>>394ものすごい簡単でした
端末の設定をデバッグモードにしたら、後はPC上のchromeのコンソールに全部出てくれる感じで
しかしデバッグモードにした途端再現しなくなったという…
ともあれありがとうございました
406:Name_Not_Found
15/05/25 13:16:02.37 .net
みんなサイ本買って勉強してるの?
勧められて買ってみたけど、くっそ厚くてつらい。
やっぱり先頭から全部読んで、さらに必要になったら読み返して…
って感じで勉強するのがいいのかな?
407:Name_Not_Found
15/05/25 14:21:14.62 xIaomuQs.net
教えてください。スライドショーでカウンターを設置してますが
説明用画像の最初の数ページだけ総ページに入れずにまた、カウンターも出ないようにする方法ありますか?
例えば実際は22枚リストされているが、1枚目のカウンター:0/20、2枚目:0/20、3枚目:1/20、4枚目:2/20、...
この場合どのように記述すれば良いでしょうか?
ちなみに現在のカウンターはこちらです。
(opts.currSlide + 1) + ' / ' + opts.slideCount
408:Name_Not_Found
15/05/25 17:26:59.55 .net
>>399
var skipCount = 2; // カウントしない枚数
Math.max(opts.currSlide - skipCount + 1, 0) + ' / ' + (opts.slideCount - skipCount)
でどうじゃろ
409:Name_Not_Found
15/05/25 17:47:57.66 .net
>>398
勧める奴の殆どは読んでない。
いい本だってわかってるだけ。
410:399
15/05/25 18:30:49.91 xIaomuQs.net
>>400
素晴らしいです。。有り難うございます。
ちなみ・・「x/20」とか「_/20」のように文字を入れることは可能でしょうか?
「 skipCount + 1, 0」この0を'-'や'x'とするとNaNとなったりスライドショー自体がうまく動作しなくて・・。
411:Name_Not_Found
15/05/25 18:38:22.18 .net
>>398
サイ本が読むにあたっていい本かどうかは知らないが、
JSer中級になるために抑えておかないといけない内容が網羅されてるのは確か、
また、仕様書ベースなのでよくある筆者のクセや間違いに極めて近い記述が少ないのもオススメされるポイント。
でも結局は仕様書読めるんならそっちのほうがいい。
仕様書は読めないけど、仕様を抑えたい人、まさに中級者向け。
412:Name_Not_Found
15/05/25 20:07:08.65 .net
DOMNodesがリークするのですが、対処方法はありますか?
とりあえず対症療法的でも構いません。
或いは、リークする条件が明確に分かればいいです。
A:生成コード
var body = document.getElementsByTagName('body')[0];
for (var i=0;i<10000;i++) {
var elem = document.createElement('input'); // ------(α)
elem.setAttribute('type','checkbox'); // ------(β)
body.appendChild(elem);
}
B:削除コード
var body = document.getElementsByTagName('body')[0];
for (var i=0;i<10000;i++) body.removeChild(body.lastChild);
環境:
Chrome最新版+DeveloperTool
再現方法:
1. どこでもいいので、DevToolを起動します。(Chrome新規タブデフォのgoogle検索窓でいい)
2. TimelineタブでMemoryにチェックを付け、Record(●)-CollectGarbage(ゴミバケツ)-Stop(○)を行います。
3. MEMORY 欄にグラフが表示されます。JSHeapが落ちているところがGCで、その後のところにマウスを持っていくと、
JS Heap Size:xxxx, Documents: xxxx, Nodes:XXXX, Listeners:xxxx と表示されます。
このXXXXを記録しておきます。
4. 生成コード(A)を実行し3と同様に確認します。なぜかNodesが20,000(1万ではなく2万)ほど増えます。
5. 削除コード(B)を実行し3と同様に確認します。Nodesは減りません。(リーク)
6. タスクマネージャで見たメモリは、(A)で増加し、(B)で減少するものの、A以前と同様のレベルまでは戻りません。
413:404
15/05/25 20:07:45.82 .net
なお、色々試した結果は以下です。
①(α)が'div'で(β)無し=完全に戻る。(リーク無し)
②(α)が'input'で、(β)無しまたは'text'=完全に戻る。(リーク無し)
③(α)(β)そのままで、(B)で一旦別ノードの子として集めてinnerHTML=''で消す=リークしたまま。
④(α)(β)そのままで、(B)でremoveAttributeしてからremoveChild=リークしたまま。
⑤(α)(β)そのままで、(B)でsetAttribute('type','text')してからremoveChild=リークしたまま。
上記①では増加するNode数は10,000です。そしてリークしません。
上記②では増加するNode数は30,000です。そしてリークしません。
そのままだと増加するNode数は20,000です。そしてリークします。
414:Name_Not_Found
15/05/25 20:19:53.57 .net
>>402
カウンターの文字を変数rに代入するとして
var skipCount = 2; // カウントしない枚数
var skipChar = 'x'; // 代わりの文字
if(opts.currSlide - skipCount + 1 <= 0) r = skipChar + ' / ' + (opts.slideCount - skipCount);
else r = (opts.currSlide - skipCount + 1) + ' / ' + (opts.slideCount - skipCount);
ここらへんは基本中の基本なので頑張れ
415:Name_Not_Found
15/05/25 22:12:03.00 JoOwykG5.net
>>406
勉強になります。本当に有難うございました。
416:Name_Not_Found
15/05/26 01:00:06.43 .net
>>405
ノード減ってる。何かのプラグインが原因では?
417:Name_Not_Found
15/05/26 01:26:19.32 .net
>>408
試行ありがとうございます。
こっちは減らないんですよね。
設定は、プラグインは全部Off、設定のプライバシーは全部チェックを外して、
ついでにデベロッパーモードも止めてみましたが駄目です。
ただまあ、この記述なら「減るはず」というのが確認できただけでも助かります。
ありがとうございました。
418:Name_Not_Found
15/05/26 09:50:42.58 .net
>>403
なるほど、結局中級者になるには読まないといけないなら、
はじめからこれで勉強したほうがいいか…。
しかし成り立ちとか、実装がグラグラしてるとことか
最初に読むと無性にやる気がなくなるw
もっとこう、イコールでビシッと決まってると理解しやすいんだけど、
この場合はこうなるが、この場合はならない。
これはブラウザによって解釈が異なり、バージョンによってもとか言われると、
覚えていいのか迷うわw
419:Name_Not_Found
15/05/26 13:46:11.70 .net
原書で5版まで買い続けた。
5版は新品同然だが4版までは手垢にまみれている。
なぜなら、いつでもどこでも高速回線を利用できるようになったのが丁度4版と5版の間の時期で、その頃から紙の実用書を開かなくなったから。
例えばDOMならW3CにあるIDLをコメントとしてコピペして見ながらスクリプトを書けば捗っているような気がする。
サイ本を活躍させたいなら、例えば383に真面目に回答してみたらよい。階層構造になっている物をフラット化してフィルターして。サイ本のDOM-Style/CSSの項目を通り一遍以上は読む事になるだろう。
420:Name_Not_Found
15/05/26 16:09:20.28 .net
>>410
まあ結局一番初級者と中級者を分けている部分である、
new演算子の振る舞いと継承の仕組みや成り立ちについて理解することが一番大事。
その次にJSの沢山の細かな点を知ることが大事だと思う。
そのどちらもがよくまとまっているのがサイ本だけど、別にそれが唯一の方法ってわけじゃない。
それとJSコア部分自体にブラウザの差異は無いと考えていいよ。
大昔はIEがJScript仕様だったりしたけど、ES5の時代からは準拠してると考えていい。
DOM周りに関してはそういうもの。
日々最適解が変化し新しく学び続けていかないといけないもの。
421:Name_Not_Found
15/05/26 20:49:29.43 .net
>>410
JavaScriptとDOM APIをしっかり区別した方がいいよ。
ECMAScriptと読んだときはもっとはっきりしていて、
ここにはDOM APIはでてこない。
JavaScript(ECMAScript)の部分はブラウザ間の差は
無いと考えていいよ。
分かりやすく言うならば、ブラウザに関係するものは
DOM API。こっちは正確に言えばJavaScriptじゃない。
実装がグラグラしている大部分はDOM API部分。
DOM APIとはブラウザだから、昔のIEは~って話がでてくるわけ。
なおこのスレはスレタイから言えば、JavaScriptのスレなので
DOMは対象外であるべき。だけど>>1にはDOMをごっちゃにしていて
なんだかぁって思ってる。こういうのが初心者を混乱させる元になる。
422:Name_Not_Found
15/05/26 21:20:05.31 .net
JavaScript は正式には Netscape (現在では Firefox) で実装されたスクリプトエンジンの名前。
当時は IE が JScript だった為、両者は区別されていたが、ECMA が ECMAScript として標準化し、多くのブラウザで採用されるようになって広義ではブラウザに実装されているスクリプトエンジンを JavaScript と呼称するようになった。
だから、今では IE, Safari, Opera, Google Chrome が実装するスクリプトエンジンも JavaScript と呼ばれる。
よって ECMAScript === JavaScript ではない。
Web制作板に純粋JavaScriptスレとかいう ECMAScript だけのスレが立っているが、純粋な JavaScript は Firefox が実装しているそれであり、ECMAScript ではない。
JavaScript は ECMAScript だけでなく、様々な API を実装されており、W3C, WHATWG で多くが規定されている。
DOM はその代表だが、Selectors API, XMLHttpRequest 等、他にも重要な API が多く存在する。
URLリンク(www.w3.org)
URLリンク(whatwg.org)
ここではWeb制作における JavaScript が主題なので DOM もここで扱って問題はない。
ECMAScript だけに特化して語りたければ、プログラム板に行くと良いだろう。
423:414
15/05/26 21:33:41.55 9fjMVnLy.net
失礼。スクリプトエンジンは「Google V8 JavaScript Engine」のようなものだから「スクリプトエンジン === JavaScript」ではないな。
「多くのブラウザで実装するスクリプト言語名が JavaScriptと呼ばれる」に訂正する。
>>410
私は ECMAScript 仕様書を読んだ後に『JavaScript 第5版』を読んだが、良い復習になったように思う。
クロスブラウザを気にするのであれば、ECMAScript, DOM, DOM Events 等のよく使う仕様書は読んだ方が良い。
そして、現在見ているコードが実装依存なのか標準仕様なのか意識すれば、実装がグラグラしているポイントもわかるようになるだろう。
『JavaScript 第5版』を読んで、読んだ箇所に該当する仕様の本文を読み直すと良い勉強になる。
JavaScript の勉強で面倒なのは仕様書のURLが分散していることだ。
PHP と違って「PHPマニュアル一つだけ読めば問題ない」というわけにはいかない。
>>414で紹介したURLや>>4のリンク先をブックマークしておいて該当仕様をすぐに引けるようにしておくと良いだろう。
424:Name_Not_Found
15/05/26 22:20:48.33 .net
初心者が仕様書読むのは難易度高すぎじゃないか?
ドキュメントやマニュアルとはわけが違う
MDNあたりがまだマシだと思うよ
425:Name_Not_Found
15/05/26 22:28:52.38 .net
そもそもプログラミング初心者がマスターできる言語でもない
426:Name_Not_Found
15/05/26 22:30:13.36 .net
>>414
× JavaScript は ECMAScript だけでなく、様々な API を実装されており、W3C, WHATWG で多くが規定されている。
DOM はその代表だが、Selectors API, XMLHttpRequest 等、他にも重要な API が多く存在する。
○ HTML5 は 様々な API を実装されており、W3C, WHATWG で多くが規定されている。
DOM はその代表だが、Selectors API, XMLHttpRequest 等、他にも重要な API が多く存在する。
ほんと、勘違いしている人が多くて困るw
427:Name_Not_Found
15/05/26 22:57:41.27 .net
JavaScript、javaサープレット、PHP、CGI、フラッシュの長所、短所、使い分けを教えて下さい。
428:Name_Not_Found
15/05/26 23:07:33.32 .net
JavaScriptはw3cが標準化してるわけじゃないんだよね。
URLリンク(developer.mozilla.org)
ECMAScript は JavaScript の基礎を成すスクリプト言語です。
ECMAScript は標準化団体 Ecma International によって
ECMA-262 specification として標準化されています。
次のような ECMAScript 標準が承認されています。