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

    私的良スレ書庫

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

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

    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 - 2017/08/24(木) 20:39:42.06 ID:VqVyYokKM.net (+1,+11,-9)
    🐒
    102 : Name_Not - 2017/08/24(木) 21:27:00.81 ID:???.net (+40,-29,-9)
    >>99
    Firebaseはどう?
    PouchDBは?
    103 : Name_Not - 2017/08/24(木) 23:32:45.21 ID:D0oxmKt+.net (+41,+29,-165)
    >>99
    > サーバは差分情報をクライアントに返し、
    > クライアントは差分を自分に適応する、

    という部分の実装がどれだけ面倒かによるかな。クライアント側の1レコードの編集に掛かる手間がどれだけか、というのも考慮したい。
    サーバのデータ(レコード)に最終更新日時を持たせて、それをバージョン情報として利用できる。
    DBの更新条件に最終更新日時を付けてUPDATEして、更新されたレコード数を確認。もし0件だったら、最終更新日時が変更されていたことになる。

    > あとこういうアプリのサンプルが載ってる本とかあれば教えてください

    本とかは知らない。
    104 : Name_Not - 2017/08/24(木) 23:40:00.38 ID:???.net (+69,+29,-26)
    >>98
    おおおりがとう
    >>100
    これ実はフライングで買ってしまったんだけど解説に次々に知らんjsライブラリぶっこんで来るからソースコードの理解進まないから止めたわ、、
    105 : Name_Not - 2017/08/25(金) 01:05:03.27 ID:???.net (+63,+29,-11)
    >>102-103
    firebaseっていうの知らなかったんですが、
    面倒な部分をgoogleに全部丸投げできるのめちゃくちゃ魅力的ですね
    調べてみます
    ありがとうございました
    106 : Name_Not - 2017/08/27(日) 14:12:55.79 ID:???.net (+57,+29,-8)
    数秒ごとに細かく同期して、ずれたら単純に破棄するのが一番見易いよ
    107 : Name_Not - 2017/08/28(月) 21:34:43.38 ID:???.net (+63,-29,-84)
    setIntervalとかsetTimeoutって結構誤差出ませんか?
    プチフリするようなしょぼい環境だったり
    秒数カウントする(何回も呼ぶ)ものとかだと特にそんな感じがします
    1/1000秒単位で正確なタイマーが欲しい場合って
    別のタイマー使ってで数秒起きにズレ修正したりするのでしょうか?
    108 : Name_Not - 2017/08/28(月) 22:40:10.36 ID:???.net (+91,+29,-21)
    なんか高精度のタイマーあったろ?
    Web APIマニアさんに後は任せた
    109 : Name_Not - 2017/08/29(火) 02:02:57.18 ID:???.net (+11,-30,-50)
    >>107
    http://developer.mozilla.org/ja/docs/Web/API/WindowTimers/setTimeout#Reasons_for_delays_longer_than_specified
    ここに理由も書かれてるし、代替案のリンクも張られてるな。英語だけどwindow.postMessage()使うみたい。
    110 : 107 - 2017/08/29(火) 13:34:03.22 ID:???.net (+5,-28,-104)
    >>109
    ありがとうございます
    4msから指定可能であって(1ms指定しても4msになる)
    1秒に設定したら1004msになるというわけではないですよね?
    描画処理入れたら描画が終わってからタイマーが再びセットされる感じで
    描画処理の分ずれていってるのかもしれないですね
    ちょっとコード見なおして検証してみます
    111 : Name_Not - 2017/08/29(火) 14:04:17.34 ID:???.net (+9,-29,-107)
    >>107
    > setIntervalとかsetTimeoutって結構誤差出ませんか?
    誤差以前に、その2つは等価じゃないのになぜ同列として扱う?

    ・setInterval はコールバック関数の処理時間を待機せずにインターバルをおく
    ・setTimeoutの再帰呼び出しではコールバック関数の処理完了後にインターバルをおく
    112 : Name_Not - 2017/08/29(火) 14:20:33.09 ID:???.net (+70,+29,-11)
    >>108
    「なんか高精度のタイマー」とは具体的に何ですか?
    113 : Name_Not - 2017/08/29(火) 14:40:56.28 ID:???.net (+88,+26,-22)
    Node.js にも、何種類か、タイマーがあったかも

    高性能タイマーとは、ベンチマークで速いもの
    114 : Name_Not - 2017/08/29(火) 16:25:28.45 ID:???.net (+70,+29,-36)
    >>113
    > Node.js にも、何種類か、タイマーがあったかも
    >107の要件を満たせそうなタイマーは何?

    > 高性能タイマーとは、ベンチマークで速いもの
    タイマー処理で何がどう速くなるの?
    115 : Name_Not - 2017/08/29(火) 22:02:29.05 ID:???.net (+50,-29,-75)
    >>111
    違いはそこじゃねーよw

    setIntervalは登録したコールバックを定期的に何度も呼び出す
    setTimeoutは登録したコールバックを一回だけ呼び出す
    116 : Name_Not - 2017/08/29(火) 22:10:00.75 ID:E3IgUCub.net (+28,+29,-39)
    >>115
    いや、それは誰でも知ってるだろ
    同列に扱っているから、定期的に関数を呼び出す処理を前提に質問していると思ったんだよ
    それぐらい読み取ってくれ
    117 : Name_Not - 2017/08/29(火) 22:19:46.46 ID:???.net (+8,-29,-68)
    >>116
    同列に扱ってなんかいないだろ

    setIntervalが誤差でずれていく
    setTimeoutが誤差でタイムアウトする時間がずれている

    違う話だろ
    118 : Name_Not - 2017/08/29(火) 22:30:09.12 ID:???.net (+4,-29,-152)
    >>117
    質問者の下記一文は読んだか?

    > 秒数カウントする(何回も呼ぶ)ものとかだと特にそんな感じがします
    これを実装する為には setTimeout を再帰呼び出して setInterval と似た振舞いにしなければならない
    ここで、setTimeout と setInterval ではインターバルの取り方が違うだろ
    要件次第でどちらを選択するかが決まる
    目的に合う実装は一つしかないはずなのに、setTimeout と setInterval を一緒くたに問題視するのは違うだろ
    119 : Name_Not - 2017/08/30(水) 05:25:33.41 ID:???.net (+89,+27,-28)
    下記一文ってそれだけが全てじゃないだろうに
    120 : Name_Not - 2017/08/30(水) 09:09:12.57 ID:???.net (+36,-29,-18)
    だな、setTimeout と setInterval の特性ぐらい勉強してね
    121 : Name_Not - 2017/08/30(水) 09:38:26.11 ID:???.net (+57,+29,-20)
    特性の違いは理解してるように読めるけどな
    読解力の問題か
    122 : Name_Not - 2017/08/30(水) 12:19:11.35 ID:???.net (+52,+29,-2)
    こんな過疎板で自演するなや見苦しい
    123 : Name_Not - 2017/08/30(水) 15:57:27.84 ID:???.net (+55,+29,-6)
    情報が正しいのなら、自演云々はどうでもいい
    煽りは害悪
    124 : Name_Not - 2017/08/30(水) 16:03:40.21 ID:???.net (+68,+29,-22)
    >>119
    では、>>115の回答が全てなのか?違うだろ?
    回答で全てを語っているなんて誰も言ってない

    >>120
    知ってる
    125 : Name_Not - 2017/08/30(水) 17:08:41.75 ID:???.net (+63,+30,-55)
    もう不毛な議論な気がする
    回答にイチャモンをつけるのが正義みたいな風潮は何とかならんのかな
    否定するなら、さらに良い回答で塗りつぶすぐらいの気概がある方が健全だと思う
    彼は言葉は悪いけど、回答しているだけ非難だけしている人より数段マシだよ
    127 : Name_Not - 2017/08/30(水) 23:32:05.92 ID:???.net (+2,-30,-43)
    console.log("NumLockキーは"+event.getModifierState("NumLock")?"ON":"OFF");
    128 : Name_Not - 2017/08/30(水) 23:43:14.48 ID:???.net (-2,-30,-37)
    eventはkeydownとかのKeyboardEventじゃないとgetModifierState()生えてないからリロードの時とかは無理だな
    129 : Name_Not - 2017/08/31(木) 00:17:09.34 ID:???.net (+3,-30,-94)
    あ、MouseEventにも生えてんのか。
    じゃvar fresh = true;とかしといてbodyのmousemoveとかmouseoverとかのハンドラのなかにif(fresh){さっきのconsole文;fresh=false;}すればどうか。
    スマホだから確認できんけど
    130 : 126 - 2017/08/31(木) 18:08:57.85 ID:???.net (-1,-30,-34)
    >>127-129
    レスありがとうございます。 event.getModifierState("NumLock") で色々細工してみます
    131 : Name_Not - 2017/09/03(日) 00:26:56.14 ID:???.net (+39,-4,-16)
    すみません
    javascriptの曖昧な型定義や柔軟性による複雑さは
    jsDocコメントを書く事で回避できますでしょうか?
    132 : Name_Not - 2017/09/03(日) 01:05:40.28 ID:???.net (+77,+29,-12)
    複雑な理由はお前のコードの問題だから
    JsDocどころか例え型定義があったり柔軟性がなくても
    何も回避できないよ。
    133 : Name_Not - 2017/09/03(日) 01:42:32.01 ID:???.net (+30,-29,-80)
    >>131
    jsdocて単なるJavadocのポーティングでしょ?ちゃんと書いたらそれにしたがったドキュメントを自動生成してくれるにすぎない。
    flow(flowtype)やtypescriptなら型検査してくれるよ。
    お手軽に始めるならflowがいいんじゃない?typescriptはちょっと(週末潰すくらい)気合い要る。
    134 : 131 - 2017/09/03(日) 02:28:16.27 ID:mSmyCXiG.net (+38,+29,-36)
    ありがとうございます。

    >>132
    そうですね。
    その場凌ぎのプロパティ追加やコールバックの嵐等、気を付けます。
    >>133
    そうですね。flowやtypescriptを使って安心するの良いかもです。

    しかしjavascriptはアセンブラ言語みたいな扱いをされているのが
    何とも面白いですね。
    135 : Name_Not - 2017/09/03(日) 05:36:32.07 ID:???.net (+55,+27,-18)
    それはES2015が出る前の考え方だよ
    今はWASMもあるし今更そういうこと言うやつは居ない
    137 : Name_Not - 2017/09/03(日) 21:51:40.73 ID:???.net (+57,+29,-36)
    idってのはhtml中に1個しか出てきちゃいけないもんだぞ
    pタグであるかどうかなんて関係なく#hahahaだけでいい
    まぁ別にp #hahahaとかでもいいけど
    138 : Name_Not - 2017/09/03(日) 23:04:10.21 ID:???.net (-1,-29,-18)
    document.getelementbyidで取得とかは?
    139 : Name_Not - 2017/09/03(日) 23:26:50.18 ID:???.net (-2,-30,-48)
    普通に
    document.querySelector('#hahaha');
    でいいんじゃね
    速度が問題になるほどかどうかだけど
    140 : Name_Not - 2017/09/03(日) 23:40:07.88 ID:???.net (+125,+29,-39)
    idひとつしかつけちゃいけないって言っても、つけたから何かエラーが起きるわけでもないし普通に2つ以上についてることもある
    querySelectorでp#hahahaでいいんじゃない
    142 : Name_Not - 2017/09/04(月) 00:22:22.40 ID:???.net (+12,-30,-49)
    >>141
    そのコードの場合、fCheckに関数以外が入っている(つまりバグ)の場合に
    スルーされてしまうので良くない。

    if (fCheck) {
    fCheck();
    }
    の方が良い

    さらにいうなら
    fCheck && fCheck();
    でもよい

    また予め fCheck = fCheck || function() {} などとしておけば、

    fCheck(); とするだけでよくなる
    143 : Name_Not - 2017/09/04(月) 00:40:24.38 ID:???.net (+108,+29,-7)
    >>140
    それはhtmlをまず直せって話だな
    javascriptってあたりよそのhtmlいじるわけじゃないんでしょうし
    144 : Name_Not - 2017/09/04(月) 00:46:58.27 ID:G+KHmFrZ.net (+29,+29,-1)
    >142
    なんと・・・
    勉強してきます、ありがとうございました
    145 : Name_Not - 2017/09/04(月) 03:06:18.93 ID:???.net (+108,+29,-20)
    >>140

    idは一意の値であるべき。
    重複してたらバグと考え、エラーにならないなら重複しても良いのではという浅い考えは捨て去るべし。
    idとclassの存在意義を理解しろ。
    146 : Name_Not - 2017/09/04(月) 06:30:16.46 ID:???.net (+85,+29,-26)
    >>145>>143
    いやもうすでに重複して使ってるサイトは山ほどあるんだから
    そんなこと言ったってどうしようもないじゃないか
    147 : Name_Not - 2017/09/04(月) 08:00:15.59 ID:???.net (-1,-29,-24)
    id重複は DOM 的には最初の id 以外は無視され、 CSS 的には詳細度の高い class みたいなもの

    自動的に validator を通すようにしとけば id重複は自然となくなる
    148 : Name_Not - 2017/09/04(月) 08:26:10.50 ID:???.net (+50,+27,-3)
    構文を扱う資格なし
    149 : Name_Not - 2017/09/04(月) 09:51:22.30 ID:???.net (+1,-26,-7)
    フォームはnameで区別するのだから
    idは基本的に使う必要はない。
    150 : Name_Not - 2017/09/04(月) 10:21:56.73 ID:???.net (+3,-30,-252)
    >>136,146
    他サイトで重複idがあることは、自サイトで重複idを使うことの理由にはならない
    「重複して使ってるサイトは山ほどある」(採用例が多い)も観測範囲によって変わってくる主観的なものだし、仮に信頼できる統計で採用例が多かったとしても、「使ってよい」かの判断は別
    文法違反なんだから
    http://momdo.github.io/html/dom.html#global-attributes

    自分の管轄外のサイトにJavaScriptを適用するのであればどうしようもないが、そういう前提条件があるのなら質問の冒頭に付け加えるべきだし、<p id="hahaha">, <div id="hahaha"> のどちらが先に存在するのかによって変わってくる
    <p id="hahaha"> が初めに来ることが保証されているのなら、getElementById
    id="hahaha" が出現する順番がランダム or <p id="hahaha"> が2番目以降に出現し、<p id="hahaha"> を特定したいのならば、document.querySelectorAll('p[id="hahaha"]').forEach()
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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