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

私的良スレ書庫

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

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

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
601 : Name_Not - 2014/04/16(水) 14:50:56.66 ID:??? (+59,+29,-27)
lodashに沢山関数があって勉強するのが大変です
「これはよく使う」というものがあれば教えて下さい
602 : Name_Not - 2014/04/16(水) 14:57:11.85 ID:??? (+57,+29,-9)
他人と意思疎通するって難しいよ
なんとなくできてる気分になりがちだけど
603 : Name_Not - 2014/04/16(水) 23:40:43.57 ID:??? (+57,+29,-9)
ライブラリがミニファイバージョンを提供していない時がありますが
そういう場合、自分でミニファイしますか?
604 : Name_Not - 2014/04/16(水) 23:45:44.25 ID:??? (-1,-29,-13)
ミニファイバージョンを提供し、ファイル名は*.min.js
ファイル名にはバージョン名を必ず含む
といった正規化をライブラリ作者にはお願いしたいものです
605 : Name_Not - 2014/04/17(木) 02:15:52.89 ID:??? (+6,-29,-18)
>>601の件ですが
underscoreの記事で勉強するのがよさそうでした
http://gihyo.jp/dev/serial/01/underscorejs/0001
606 : Name_Not - 2014/04/17(木) 03:39:54.68 ID:??? (+5,-22,-15)
>>600
「javascript 別ウィンドウ」で検索すれば?
window.open で一杯出てくるよ

イヌでもわかるJS
http://www.red.oit-net.jp/tatsuya/java/winopen.htm
607 : Name_Not - 2014/04/17(木) 04:17:36.33 ID:??? (-2,-30,-63)
配列を返す関数に直接配列演算子を付ける書き方はどのブラウザでもOKなのでしょうか?

"hoge-moge".split('-')[1]

など。
chromeでは問題ありませんでした
608 : Name_Not - 2014/04/17(木) 11:32:02.10 ID:??? (+50,+27,-2)
その書き方便利だよね
609 : Name_Not - 2014/04/17(木) 11:43:17.64 ID:??? (+5,-22,-14)
戻り値が確実に配列オブジェクトなら問題ない。
610 : Name_Not - 2014/04/17(木) 12:04:49.47 ID:??? (+28,+5,+1)
ありがとうございました
611 : Name_Not - 2014/04/17(木) 13:31:14.86 ID:??? (+76,+30,-123)
DOMエレメントが重なっていた場合、下に伝播していく、と認識していたのですが
親子関係にない要素同士が見た目上重なっている場合には、
上をクリックしても伝播しないようです
構造上包含関係にあり、見た目上重なっている場合だけイベントは伝播する、
という認識でいいのでしょうか?
612 : Name_Not - 2014/04/17(木) 17:35:43.70 ID:??? (+60,+27,-11)
>>611
行間の省略が多過ぎてわかりにくいぞ
上に?下に?上を?

>>600
target 属性
614 : Name_Not - 2014/04/17(木) 19:05:54.83 ID:??? (-2,-30,-49)
>>613
その記事のソースはさっさと捨てて、ゼロから始めるべき

スクリプト以前に、中身がリンク1 個
<a href="適当なURL">適当な文</a>
だけのHTML を作って
target="適当な名前" を <a> に追加してみる所から
615 : Name_Not - 2014/04/17(木) 21:41:27.51 ID:??? (+58,+30,+0)
616 : Name_Not - 2014/04/17(木) 21:48:52.51 ID:??? (+7,-29,-1)
>>556
document.body[0]じゃなくていいの?
617 : Name_Not - 2014/04/17(木) 21:55:22.07 ID:??? (+58,+30,-33)
親子関係にない養子同士が見た目上が重なっている
618 : Name_Not - 2014/04/17(木) 22:55:39.97 ID:??? (+62,+29,-83)
イベント伝播は、純粋にノード構造に依存するのですね
子要素を親要素の外側に配置して子要素をクリックしても、
親要素にイベントが伝播しました
考えれば当たり前のことなんですが、ずっと勘違いしていたようです
ありがとうございました
619 : Name_Not - 2014/04/17(木) 23:49:19.36 ID:??? (+57,+29,-4)
>>614
ゼロからやらないとダメですか?
頑張ってみます
620 : Name_Not - 2014/04/18(金) 11:16:21.87 ID:??? (+57,+28,+0)
>>616
試せばわかるんじゃないかな
621 : Name_Not - 2014/04/18(金) 11:44:38.67 ID:??? (+0,-29,-5)
body[0]って何だよ
bodyは配列じゃねーだろ
622 : Name_Not - 2014/04/18(金) 13:02:04.81 ID:??? (+62,+29,-56)
以前、chromeのコンソール出力はログ表示に追従してスクロールしていって欲しいと書きましたが
いつの間にかそうなっていることに気付きました
横スクロールの再改悪には落胆しましたが、進化もしてますね(^O^)
623 : Name_Not - 2014/04/18(金) 14:52:46.78 ID:??? (-2,-29,-12)
>>621
getElementsByTagNameとは違うんですね
624 : Name_Not - 2014/04/18(金) 15:29:08.56 ID:??? (+83,+29,-159)
画面に表示される要素数により、ドラッグ時のスムーズ具合が違うのですが
処理自体は増えないはずなので不思議に思い
console.timeで測ったところ
ドラッグ処理内の処理速度は大差ありませんでした。
しかしドラッグ処理とドラッグ処理の間隔が、要素数が多い時にははっきりと増えていました。
documentのonmousemoveの間隔は、
documentが包含するDOMエレメントが増えるほど遅くなるのでしょうか?
625 : Name_Not - 2014/04/18(金) 16:08:33.60 ID:??? (+62,+29,-198)
http://jsbin.com/tojagaxu/1

mousemoveで四角を動かしてドラッグ状態を再現し、
consoleにmousemoveの間隔を出力するようにしました
左上の四角をクリックするたびにDOMをページに追加します
要素がない時とある時では、
マウスを動かした時の動きや間隔が変わってきます
このことからDOMエレメント数がmousemoveのスムーズさにも影響するといえると思います
しかしそうなると、スムーズさを保つためには
画面から出たエレメントを削除するなどしないといけないということでしょうか
そんな面倒くさいことを他のアプリもしているのでしょうか?
626 : Name_Not - 2014/04/18(金) 17:15:32.09 ID:??? (+62,+29,-44)
どんどんページを伸ばしていけるオートページャがありますが
要素が増えていくから、
そのままだとページがどんどん重くなると思いますが、
見えなくなった要素の削除とかしてるのかなぁ?
だとしたら相当気の利いたA級開発者だと思います
627 : Name_Not - 2014/04/18(金) 17:53:17.82 ID:??? (+50,+22,-47)
http://oshiete.goo.ne.jp/qa/4378546.html
の返信の通りにやると、textareaの最後尾に追記されてしまいます
カーソルの位置に追加するようにするにはどう書き換えたらいいですか?
ご教示いただけたら幸いです
631 : Name_Not - 2014/04/19(土) 01:32:39.72 ID:??? (+73,+29,-81)
>>624-626
イベントをその要素で取得する場合は、stopPropagation で、
イベントのバブリング(伝播)を止めたら?

止めないと、その要素の親、先祖方向へとイベントが伝わる
ただし、そのイベントを親や先祖でも、
使いたいなら止めない方がよい
632 : Name_Not - 2014/04/19(土) 01:38:44.01 ID:??? (+61,+28,-41)
バブリングの問題じゃないのでは・・?
ノードに要素が増えたら、動作が遅くなる
これは絶対的な真理だと思います
ただ削除までせずとも
display:noneにしても速度が回復するということも分かりました
633 : Name_Not - 2014/04/19(土) 02:43:05.34 ID:??? (+22,-29,-82)
>>624-626
ブラウザによって得手不得手はあるだろう
例えば hit-testing のアルゴリズムが float 配置には最適化されていないため
描画の更新領域の計算に時間食ってるとか
(floatが千個もあるようなレイアウトは通常 想定されていない)
636 : Name_Not - 2014/04/19(土) 11:04:08.78 ID:??? (+32,-4,-24)
この2つの関数って日本語文字列でバグや、その他バグがないか
わかりますでしょうか?
http://phpjs.org/functions/basename/
http://phpjs.org/functions/pathinfo/
637 : 630 - 2014/04/19(土) 11:32:14.57 ID:??? (+3,-29,-164)
>>634
addEventListenerを使用すれば関数スコープ内で完結できる
基本、関数スコープで完結するコードにしようとしているようなので、わざわざグローバルスコープを汚す必要はない

>>635
> <DIV id=result> にtableが入ってるのか?
#result内にtable要素がある事は>>629から推察できる
最も、>>629>>628と同一人物であることが明示されてないので文脈から判断したが
名前にレス番を入れない質問者が多くて困るな
こういう誤解を減らすためにもそうするべきだと思うのだが
638 : Name_Not - 2014/04/19(土) 11:38:39.66 ID:??? (+70,+29,-7)
>>636
自分で試せる事は試せるだけ試してから質問してくれ
639 : Name_Not - 2014/04/19(土) 12:35:22.27 ID:??? (+66,+29,-146)
>>633
再現コードのため分かりやすく書いただけで、
現に遅くなっている実際のコードではfloatは使ってません
というか、ブラウザの得手不得手は本質じゃないでしょう
どんなブラウザであっても、floatを使ってあってもなくても、
画面にDOM要素が増えるほどイベントは遅くなると思いますが。
このケースはむしろ単純なDOMなので、数千個加えないと遅くならなかったのです
内部に複数のDOMを含む複雑なDOMの場合はもっと少ない段階で遅くなります
640 : Name_Not - 2014/04/19(土) 12:36:58.72 ID:??? (+32,+4,-46)
>>629のコードを添削したくてしょうがないなw

まず、見た目(HTML)とコードは分離するべきだ。
つまりtableはHTMLでそのまま書いて、
コードからtableを生成しないようにする。
641 : Name_Not - 2014/04/19(土) 12:38:35.11 ID:??? (+57,+29,-22)
と思ったら、マス目は可変なのか。
それもtableで書こうと思えばかけるが
ちょっと厄介だな。
642 : Name_Not - 2014/04/19(土) 12:48:20.64 ID:??? (+57,+25,+1)
>>638
はい
643 : 640 - 2014/04/19(土) 13:08:44.79 ID:??? (-8,-30,-138)
あきた。

>>629
・タグの要素としてのonclick=は使わない。DOMに直接イベントを割り当てる。
・tdに対してイベントを割り当てるのではなく、table(もしくはその上の要素)にイベントハンドラを割り当てる。だからidも不要。
・文字連結はrepeatメソッドを使う。ループは不要になると共に一行で終わっちゃうのでmakefield関数にしなくて良い。
・全角スペースはやめて、スタイルシートで書く。

まあ指摘点はこのぐらいだな。
644 : Name_Not - 2014/04/19(土) 13:32:32.08 ID:??? (-1,-29,-23)
applyでthisを指定したくない時は何を渡したらいいんですか?
null?undefined?
645 : Name_Not - 2014/04/19(土) 13:57:03.22 ID:??? (+0,-29,-68)
lodashで配列同士の同一性をチェックしたいのですが
_.differenceの返り値のlengthが0か調べる以外の方法はありますか?
いまいちスマートじゃない気がします
646 : Name_Not - 2014/04/19(土) 17:35:57.24 ID:??? (-2,-29,-2)
>>645の件ですが_.isEqualが使えました
647 : Name_Not - 2014/04/19(土) 18:42:31.86 ID:??? (-1,-29,+0)
>>645
あぁ、それならisEqualが使えるよ。
648 : Name_Not - 2014/04/19(土) 19:33:05.71 ID:??? (+28,+5,+1)
ありがとうございました
649 : Name_Not - 2014/04/19(土) 20:16:03.99 ID:??? (+58,+21,-44)
jqueryでonscrollをdocumentにデリゲートしたのですが、イベントが発生しません
デリゲートせずに要素に直接ハンドラを付けたらイベントが発生しました
何故ですか?
650 : Name_Not - 2014/04/19(土) 21:40:18.94 ID:??? (+65,+29,-4)
>>649
うむ、それはようそがいだな。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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