元スレ+ JavaScript & jQuery 質問用スレッド vol.5 +
JavaScript覧 / PC版 /みんなの評価 :
551 = :
jQuery 使ってんのに速い遅いなんかいちいち気にすんなよ
553 = :
>>540
使いまわしてもいいけど、ほとんど効果はないと思ったほうがいいよ。
変数が増えて管理がめんどくさくなるデメリットのほうが上回る。
通常はメソッドチェーンでやればいいから、同一関数内で変数に入れる必要はない。
関数がわかれた場合は、それはイベントの違いだろうから、
そのイベント関連の(内部の)コードでボトルネックになるだろうからやっても体感できない。
ということでお薦めしない。やるならベンチマークしてから
どれだけ効果があるかを調べてからにすること。
この時○倍速くなったか?ではなくて○秒速くなったかを考えること。
10倍速くなっても、実際には1ms速くなるだけだったらやる価値ないでしょう?
554 = :
60FPS出すには一回の描画を18msに抑える必要がある
そんな中での1msは馬鹿に出来ないと思うが?
価値なんて一律に決めれるわけ無いだろ
555 = :
>>554
めんどくせーやつだな。
60FPSが必要なゲームならそもそもDOMは使わねーよ。
そもそも1msは例えばの話だ。
実際の話をしたいなら、実際にはどれだけ時間がかかるか
調べてからにしろ。
jsPerf死んでるんだな。なんか適当なサイトがあったから貼り付け
http://jsrun.it/kyo_ago/oTns
> $('div#hoge') * 1000 = 16ms
> $('#hoge') * 1000 = 3ms
> $('div.hoge') * 1000 = 11ms
> $('.hoge') * 1000 = 10ms
この結果を持って訂正するわ
10倍速くなっても、実際には3マイクロ秒、速くなるだけだったらやる価値ないでしょう?
557 = :
計算じゃないだろ常識的に考えて
559 = :
ソース見りゃわかるだろ
560 = :
JSも一応、型の考え方あるしな
561 = :
function func(){
func();
}
のように再帰的に実行すると何か問題有りますか?
562 = :
問題の出る内容でなければない
563 = :
>>561
それを実行したら問題があることに気づくと思うよ
564 = :
>>561
無限ループな件w
スタックオーバーフローwwwwwwwwwww
565 = :
ネタにマジレスか、、、
566 = :
スタックって100回くらいの再帰なら大丈夫?
567 = :
もっと回しても大丈夫だよ
568 = :
Promiseで
p1()
.then(p2)
.then(p3);
だと三つ実行して終わりますが、これを
p3が終わったら再びp1に行くような記述は可能ですか?
ようするにグルグルとループしたいんです。
やり方を教えて下さい。
569 = :
>>568
それは無理だろ
570 = :
>>560
> JSも一応、型の考え方あるしな
どんな言語でもオブジェクト(値)自体に型はあるよ。
型があるか無いかって話は、変数自体(中身ではなく)に
型情報があるかどうかって話。
JavaScriptは変数自体には型がない。
571 = :
>>568
while{ p1(); }
単純に、p1を無限ループすれば?
p1を呼べば、p2, p3も呼ばれるのでしょ?
573 = :
>>570
型がないという型がある。
574 = :
>>573
JavaScriotには無い。
575 = :
>>571
それだと
p2やp3を実行中に二回目のp1を実行してしまうんじゃない?
576 = :
全体を関数でくるんで、.then(p3)の次に.then(それ)って呼べばどう?
578 = :
>>576でいいじゃん
579 = :
>>578
その場合、その全体をくるんだ関数はどうやってresolveやrejectを返せばいいの?
580 = :
function p1loop(){
var result;
while(result = p1()){
p2();
p3();
}
return result;
}
用途が不明すぎる上にそんな変な組み方なんて誰もしないだろうから、別の手段ありそうなんだよなぁ
581 = :
>>579
普通の関数の場合は、その時点で実行されるんやで
http://jsfiddle.net/y4xzp24L/
jQueryのDeferred/Promiseでも同じはず(未確認)
582 = :
>>581
これが問題なく動く。
p(1)
.then(r)
.then(f)
.then(function(i) { return i + 1})
.then(i => i+1) // ES6の書き方
.then(p);
function p(i) {
return new Promise(function(resolve) {
console.log(i);
resolve(i+1);
});
}
function r(i) {
console.log(i);
return Promise.resolve(i+1);
}
function f(i) {
console.log(i);
return i+1;
}
これがPromiseの設計の素晴らしさで、r()またはf()が、Promiseを返すかどうかに関係なく
つまり内部の実装に関係なくthenでつなげていけるんだよ。
これによって、開発中はダミーで値を返すけど、最終的にはAjaxでデータを取り行く。
なんてことも、スムーズに書き換えることが出来る。
583 = :
5回のリトライ処理。もう少しシンプルに書ける?
process();
function process(i = 0) {
if (i < 5) {
console.log('retry ' + i);
p().then(() => i+1).then(process);
}
}
function p() {
return new Promise(function(resolve) {
setTimeout(function() {
resolve();
}, 1000);
});
}
584 = :
条件としては、p()関数の中は
一切手を入れないこと。
591 = :
ていうか js で何したいの
592 = :
jsで何かをしているサイトなら
いくらでもあるだろう。
それらをやるためにjsが必要なだけ。
593 = :
scrollY = $(window).scrollTop();
$("body").css({position:"fixed",top:-scrollY});
$("'.modal-graylayer").fadeIn();
iPhoneのサファリで要素をタッチした時に
ページのスクロールを固定してモーダルを表示したいのですが
2行目の固定の処理の時にスクロールの位置が0の時以外
fixedで固定表示されている別の要素が一瞬消えて背景が見えてちらつきのようになります
動作は問題ないですが見苦しいので消えないようにしたいのですが
対応の仕方がわかる人いませんでしょうか?
スクロール位置が0で完全に一番上にいる時はfixed表示されている要素もちらつきません
594 = :
button内にあるtextを変更したいのですが、変更されません。
removeClassやaddClass、ajax処理などはきちんと動作しているのですが、
どうしてもtextだけは変更されないのです。
ヒントっぽいのが、atomではremoveClassやaddClassが白色文字なのに対して、
textがオレンジ色文字になっていることです。
○部分抜粋↓
$('#request-form').submit(function(event) {
var $form = $(this);
var $button = $form.find('button');
//ajax処理...
$button.removeClass('btn-success');
$button.addClass('btn-primary');
$button.text('テキスト変更');
.....
<form class="form" id="request-form" method="POST" action="hoge">
<div class="form-group">
<button type="submit" class="btn btn-primary">
<span class="glyphicon glyphicon-user" aria-hidden="true"></span>申請する
</button>
</div>
</form>
595 = :
>>594
デベロッパーツールを使えばわかる
596 = :
セレクターで ".hoge .piyo" と ".hoge > .piyo" の使い分けがよくわからない
親子と子孫って何が違うんだろう
597 = :
>>596
<foo class="hoge" id="a">
<foo class="piyo" id="b">
<foo class="piyo" id="c">
<foo class="piyo" id="d">
<foo class="piyo" id="f">
</foo>
</foo>
</foo>
</foo>
<foo id="g">
</foo>
</foo>
前者ならhogeの子孫だから、bcdfgを取得する
後者はhogeの子だけだからbgだけを取得する
後者ならhogeの子だけだからb
598 = :
親子と子孫は違うだろ、、、
599 :
日本マイクロソフト人事本部シニアマネージャー(名ばかり管理職)の西川昌邦(さいかわまさくに)は犯罪者にして殺人犯だ!!
「あなたのような従業員は会社のパフォーマンスにとってマイナスなので早く死んでください」
などと自殺教唆を公然と行った!! その結果人が死んだ!!
丁寧に言えば何を言ってもいいというものではない!!これはヤクザや借金取りが脅迫をする時に
「いついつまでに金一億円をお振り込みください。命が惜しければ間違った判断をなされないことを期待します」
と発言するのと同じレベルだ!!
しかもそれを注意してやったら、「世間はわれわれの味方だ。文句があるなら訴えてきたらよろしい。メールを電番を公開したければ
どうぞご自由に。世論はわれわれを賛辞するするメールを送付するだろう」
などとイカ様気取りも大概にしろという発言を行った!!
抗議先 日本マイクロソフト人事本部 西川昌邦
メール:masaikaw●microsoft.com
(●を@に置き換えて)
電話:09025411718
600 = :
<ul>
<li class="a">1</li>
<li class="a">2</li>
<li class="a">3</li>
<li class="b">4</li>
<li class="b">5</li>
<li class="b">6</li>
</ul>
を
<ul>
<li class="b">4</li>
<li class="b">5</li>
<li class="b">6</li>
<li class="a">1</li>
<li class="a">2</li>
<li class="a">3</li>
</ul>
のように.aと.bの位置を入れ替えたいのですが
$('.a').insertAfter($('li').last());
だと<ul>~</ul>が複数あると処理が延々続いてしまいます。
複数の<ul>それぞれの中で、それぞれ.aと.bを
入れ替えるにはどうしたらいいでしょうか?
・<li>の数は各<ul>で様々です。
・各<ul>で、.aと.bの数は同じです。.aが4行なら.bも4行です。
・全<ul>で、クラスは.aと.bだけです。
よろしくお願いします。
類似してるかもしれないスレッド
- + JavaScript & jQuery 質問用スレッド vol.8 + (1001) - [98%] - 2019/2/9 14:00
- + JavaScript & jQuery 質問用スレッド vol.7 + (701) - [98%] - 2022/12/19 17:15
- + JavaScript & jQuery 質問用スレッド vol.7 + (993) - [98%] - 2017/11/10 8:15
- + JavaScript & jQuery 質問用スレッド vol.6 + (980) - [98%] - 2016/11/20 14:31
- + JavaScript の質問用スレッド vol.95 + (1001) - [72%] - 2012/1/17 4:16
- + JavaScript の質問用スレッド vol.75 + (1001) - [72%] - 2010/1/23 1:07 ○
- + JavaScript の質問用スレッド vol.85 + (1001) - [72%] - 2011/4/25 21:32
- + JavaScript の質問用スレッド vol.135 + (1002) - [70%] - 2018/11/23 10:30
- + JavaScript の質問用スレッド vol.105 + (1001) - [70%] - 2013/5/20 4:45
- + JavaScript の質問用スレッド vol.125 + (1001) - [70%] - 2015/10/7 17:45
- + JavaScript の質問用スレッド vol.115 + (1001) - [70%] - 2014/5/29 16:16
- + JavaScript の質問用スレッド vol.93 + (1001) - [70%] - 2011/12/10 18:31
トップメニューへ / →のくす牧場書庫について