1 名前:デフォルトの名無しさん [2016/03/09(水) 00:58:36.45 ID:S0itb4sM.net] JavaScript を自ら学ぶ人のための質問スレッドです。 >>2-5 のテンプレを読んだ上で質問してください。 ■質問を書く上で (1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。 (2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。 (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など) (3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。 (4) 常に自発的に調べる心構えを持ってください。 具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。 わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。 (5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。 (6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。 ※必ず「問題の事象が再現されること」を確認してください。 必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。 (7) サンプルコードに HTML が含まれる場合は validator.w3.org/ で [Check] してみてください。 (8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2 の質問テンプレートを活用してみてください。 (9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。 (10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
2 名前:デフォルトの名無しさん mailto:sage [2016/03/09(水) 01:00:06.15 ID:S0itb4sM.net] ■質問テンプレート 【環境】OS, 実行環境をバージョンと共に記入してください。 【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。 【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用) 【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。 【サンプルコード】現象を再現可能な最小限のコードを書いてください。 1レスに収まらないならコード投稿サイトを利用してください。 jsdo.it/ jsbin.com/ jsfiddle.net/ ideone.com/ ■前スレ + JavaScript の質問用スレッド vol.118 + [転載禁止](c)2ch.net echo.2ch.net/test/read.cgi/tech/1429634108/ ■過去スレ全集(Web制作) www2.atpages.jp/mirror/2ch/javascript/ usamimi.info/~mirrorhenkan/2ch/javascript/ (閲覧のみ) ■テンプレ案(Web制作) fiddle.jshell.net/fH4cC/167/show/light/ ■関連スレ ECMAScript デス 4 peace.2ch.net/test/read.cgi/tech/1325448978/ JavaScript ライブラリ総合質問所 vol.4 peace.2ch.net/test/read.cgi/hp/1400834117/ CSS初心者スレッド=13th=(c)2ch.net peace.2ch.net/test/read.cgi/hp/1423959729/ Canvasについて語ろう peace.2ch.net/test/read.cgi/hp/1305093769/
3 名前:デフォルトの名無しさん mailto:sage [2016/03/09(水) 01:00:44.46 ID:S0itb4sM.net] ■FAQ fiddle.jshell.net/vSqKr/43/show/ ■開発者ツール(Developer Tools)の基本的な使い方 (全部は fiddle.jshell.net/vSqKr/43/show/#Browser-Developer-Tools ) ◆諸注意 - 本説明では Google Chrome の開発者ツールの名称に従います。他ブラウザで使う場合は適宜読み替えて下さい。 - IE9- でコンソールを使うには予め開発者ツールを起動しておく必要があります(開発者ツールを起動しないと console.log() が機能しません) - Safari はデフォルトで開発者ツールが無効な為、有効に設定する必要があります。 https://developer.apple.com/library/safari/documentation/AppleApplications/Conceptual/Safari_Developer_Guide/GettingStarted/GettingStarted.html ◆要素を検証 1. ページ上で右クリックして [要素を検証] 2. [Elements] パネルが開き、対象のDOMノードが選択される(選択対象が目的の要素でなければ [Elements] パネル上で選択し直す) 3. 右側のサイドバーから知りたいステータス名のタブを選択する - [Styles] タブ … CSSプロパティの指定値を表示 (※カスケードによって上書きされたプロパティは取り消し線で表示される) - [Computed] タブ … CSSプロパティの算出値を表示("font-size: 1em" を指定していても算出後の "*px" で表示される) - [Properties] タブ … 選択したDOMノードのプロパティを表示 ◆コンソール 1. JavaScript コード上で console.log('Hello, World!'); と入力 2. [Ctrl] + [Shift] + [I] キー(IE は [F12])で開発者ツールを開き、[Console] パネルを開く 3. [Console] パネルに "Hello, World!" と表示される (※window.alert() は String 型に変換されますが、console.log() は Object 型の中身をそのまま表示してくれます。)
4 名前:デフォルトの名無しさん mailto:sage [2016/03/09(水) 01:01:12.81 ID:S0itb4sM.net] ■各種仕様 ( fiddle.jshell.net/vSqKr/43/show/#Link も参照 ) ◆ Standard ECMA-262 bclary.com/2004/11/07/ (ECMAScript 3 HTML版) https://web.archive.org/web/20140715002617/www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (ECMAScript 3 和訳) www.ecma-international.org/ecma-262/5.1/ (ECMAScript 5.1 HTML版) tsofthome.appspot.com/ecmascript.html (ECMAScript 5.1 和訳) people.mozilla.org/~jorendorff/es6-draft.html (ECMAScript 6 有志HTML版) kangax.github.io/es5-compat-table/ (ECMAScript 5 compatibility table) kangax.github.io/es5-compat-table/es6/ (ECMAScript 6 compatibility table) ◆ HTML Standard (HTML5) www.whatwg.org/specs/web-apps/current-work/multipage/ momdo.s35.xrea.com/web-html-test/spec/WD-html51-20130528/Overview.html (HTML5.1 部分訳) www.hcn.zaq.ne.jp/___/WEB/WebStorage-ja.html (Web Storage 和訳) ◆ Document Object Model (DOM) / CSS Object Model (CSSOM) www.hcn.zaq.ne.jp/___/WEB/DOM4-ja.html (DOM Standard (DOM4) 和訳) www.w3.org/TR/DOM-Level-3-Events/ (DOM3 Events) www.w3.org/TR/uievents/ (UI Events) www.hcn.zaq.ne.jp/___/WEB/cssom-ja.html (CSSOM 和訳) www.hcn.zaq.ne.jp/___/WEB/cssom-view-ja.html (CSSOM View Module 和訳) ◆ その他のWeb関連仕様 domparsing.spec.whatwg.org/ (DOM Parsing and Serialization - innerHTML等) www.hcn.zaq.ne.jp/___/WEB/XHR-ja.html (XMLHttpRequest 和訳) www.hcn.zaq.ne.jp/___/WEB/File_API-ja.html (File API 和訳) www.whatwg.org/specs/ (WHATWGの仕様一覧) ◆ MDN (Netscape/Mozilla) https://developer.mozilla.org/ja/docs ◆ MSDN Library https://msdn.microsoft.com/en-us/library/ie/hh828809 (Internet Explorer API) msdn.microsoft.com/ja-jp/library/yek4tbz0.aspx (JavaScript) msdn.microsoft.com/ja-jp/library/cc427807.aspx (JScript) msdn.microsoft.com/ja-jp/library/cc409712.aspx (DHTML)
5 名前:デフォルトの名無しさん mailto:sage [2016/03/09(水) 01:01:55.31 ID:S0itb4sM.net] ■各種仕様 (続き) ◆ JavaScript Garden (ja) bonsaiden.github.com/JavaScript-Garden/ja/ ◆ JSON (JavaScript Object Notation) www.json.org/json-ja.html ■諸注意 vol.115でlodashを不必要に推奨して啓蒙する行為が多く確認されており、ライブラリ系の質問はvol.116から禁止されました。 vol.115,116ではライブラリ禁止する発言が見られた直後にライブラリを許可する意図で次スレを立てる行為が確認されています。 本スレッドでライブラリ許可を求める発言が確認された場合は不要な争いを避ける為、スルーすることを推奨します。 ライブラリの質問はライブラリスレへ誘導し、誘導行為への反論はスルーしてください。
6 名前:デフォルトの名無しさん [2016/03/09(水) 03:00:01.13 ID:6uZQGjqP.net] hayabusa6.2ch.net/test/read.cgi/pc2nanmin/1439353617/216 ↑ ↑ ↑ ↑ ↑ ↑
7 名前:デフォルトの名無しさん [2016/03/14(月) 08:46:07.23 ID:RZ1GsRz+.net] 誰かいませんか?
8 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 10:15:53.45 ID:h0SaP8VW.net] いますよ。ずっと。あなたの後ろに。
9 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 10:50:06.69 ID:t/84a/RD.net] いま来ました
10 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 11:03:34.88 ID:h0SaP8VW.net] 宇宙からのメッセージです
11 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 11:20:27.58 ID:JjlziuNG.net] 前スレが消化されてから人も増えるかと
12 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 19:33:23.36 ID:0939kaIS.net] JQueryみたいなライブラリを使わずに非同期APIを同期的に実行する良い方法は有りませんか?
13 名前:デフォルトの名無しさん mailto:sage [2016/03/20(日) 20:03:50.21 ID:evsTqtHC.net] Promiseでラップするのが無難
14 名前:デフォルトの名無しさん mailto:sage [2016/03/21(月) 04:13:33.83 ID:lwkXzPK7.net] >>12 Promiseに対応していない古いブラウザでやるなら bluebirdというライブラリを使うといい。 標準のPromise機能に加え便利メソッドが増えている。
15 名前:デフォルトの名無しさん [2016/03/21(月) 07:35:25.86 ID:fN+PxOXs.net] javascriptでクローラは作れますか? 具体的には画像のダウンローダーを作りたいです。 下位階層まで根こそぎ取ってくるようなものです。 node.jsで作れるとあったのですが
16 名前:デフォルトの名無しさん mailto:sage [2016/03/21(月) 07:36:57.38 ID:lwkXzPK7.net] 初心者がよく言うセリフ ○○言語で△△は作れますか? 作れない言語なんてまず無いよ。
17 名前:デフォルトの名無しさん mailto:sage [2016/03/21(月) 08:47:44.94 .net] >>15 まんま本出てるから大丈夫よ
18 名前:デフォルトの名無しさん mailto:sage [2016/03/21(月) 09:22:30.77 ID:Xz9aFOH3.net] >>14 ライブラリを使わずにって書いてあるのが読めない人ですか?
19 名前:デフォルトの名無しさん mailto:sage [2016/03/21(月) 09:35:52.01 ID:lwkXzPK7.net] >>18 読めないんじゃなくて、読まない。
20 名前:デフォルトの名無しさん mailto:sage [2016/03/21(月) 09:51:19.79 ID:Xz9aFOH3.net] >>19 つまり、ヴァカってことですね。
21 名前:デフォルトの名無しさん mailto:sage [2016/03/21(月) 09:52:34.56 ID:lwkXzPK7.net] >>20 それは論理的じゃないな。 なぜ読まない=馬鹿なのか?
22 名前:デフォルトの名無しさん mailto:sage [2016/03/21(月) 10:11:23.87 ID:Xz9aFOH3.net] >>21 馬鹿は口を閉じてるといいよw
23 名前:デフォルトの名無しさん mailto:sage [2016/03/21(月) 10:21:00.80 .net] jQueryの話しようぜ
24 名前:デフォルトの名無しさん mailto:sage [2016/03/21(月) 10:25:47.94 ID:lwkXzPK7.net] >>23 了解
25 名前:デフォルトの名無しさん mailto:sage [2016/03/21(月) 10:42:07.02 ID:Xz9aFOH3.net] >>24 馬鹿は口を閉じてるといいよ
26 名前:デフォルトの名無しさん mailto:sage [2016/03/21(月) 11:57:05.09 ID:Q2tTgw28.net] では聞こう。JQueryの定義とはなんだ?
27 名前:デフォルトの名無しさん mailto:sage [2016/03/21(月) 15:29:23.97 ID:lwkXzPK7.net] JQueryじゃなくてjQueryな
28 名前:デフォルトの名無しさん mailto:sage [2016/03/21(月) 22:05:08.28 ID:iER/zWdn.net] >>23 なんでIDないの?
29 名前:デフォルトの名無しさん mailto:sage [2016/03/21(月) 22:51:19.14 ID:gUE5p+TD.net] Idが出ないと死ぬっていう都市伝説
30 名前:デフォルトの名無しさん mailto:sage [2016/03/21(月) 22:57:43.40 ID:hs33rQ/Z.net] >>15 クローラーは、Rubyだろ。 paiza.IO で、それっぽいコードをよく見るけど まあ、Electron(Node.js + Chromium)でやりたいなら、やれば?
31 名前:デフォルトの名無しさん [2016/03/21(月) 23:22:13.08 ID:isb2gyBM.net] ページにテキストフォーム、セレクトメニュー、チェックボックスが多数ありまして 保存ボタンを押すとcookieを保存して、読み込みボタンを押すとcookieが読み込まれる というページを作りたいです。 javascriptでnameを一つ一つ指定して保存するような感じでなら出来たのですが、 今後要素が増えるたびにcookieの方も調整するのが面倒だと思いました。 ページ全体の状態をまるごとcookieに保存するのに簡単なコードの書き方などありますでしょうか? jQueryでも何か簡単な方法はないかと探しているんですが初心者なのでいまいちわからないです よろしくお願い致します。
32 名前:デフォルトの名無しさん mailto:sage [2016/03/21(月) 23:31:41.43 ID:hs33rQ/Z.net] cookieには、そんなに大きいデータは入れられない。 せいぜい、1KB以下まで HTML5のWeb Storage でオフライン環境に、キャッシュを保存する
33 名前:デフォルトの名無しさん mailto:sage [2016/03/22(火) 01:14:15.87 ID:UN51cu0Y.net] では問おう。状態とは何か?
34 名前:デフォルトの名無しさん [2016/03/22(火) 01:20:20.54 ID:rdrmg4XV.net] ドラゴンブックを読んで状態数の削減を実装する。
35 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 00:38:34.81 ID:YyzBD89/.net] promiseを返す関数a b cがあるとして aのpromiseが終わったらbを実行 bのpromiseが終わったらcを実行 cのpromiseが終わるまでaの呼び出し元で待機 みたいな処理をネスト控えめに書けますか?
36 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 00:50:23.16 ID:QUxdzUzn.net] >>35 それが出来るのがプロミスだろうが!
37 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 01:10:42.04 ID:Dc6NU6wk.net] 呼び出し元で待機、の解釈によるけど返ってきたインスタンスを指すなら可能 そのコード位置からの同期処理の再開を指すならasync/await使わないと無理
38 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 02:23:12.67 ID:vscoeD/v.net] async/awaitはPromiseを使った処理をもっと簡潔に書けるように JavaScript構文を改良したものなんだから、 async/awaitでできるならばPromiseでもできるんだよ。
39 名前:デフォルトの名無しさん [2016/03/24(木) 14:33:45.16 ID:yOLyGMcJ.net] javascriptでi osとアンドロイド両方のスマホアプリは作れます? 作れるとしたらデメリットは有りますか? 遅いですとか
40 名前:デフォルトの名無しさん [2016/03/24(木) 14:49:26.54 ID:v9bzQn8L.net] 質問 let ar = []; let br = ar; ar.unshift(0); とか ar.push(0); とかしても br は ar と常に同じ配列を参照してる事は保障されてる?
41 名前:デフォルトの名無しさん [2016/03/24(木) 15:17:29.36 ID:yOLyGMcJ.net] 後もう一つ質問なんですが、node jsで画像のダウンローダーっぽいものは作れますか?
42 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 22:40:22.01 ID:sBlWvTvY.net] JavaScriptのスレッドモデルがよくわからんのだけど JavaScriptのコードとして書いた部分はUIスレッドで実行されるって保証されてるの? C#で言うとBeginInvokeした時のよう考えていいのだろうか p = 非同期API(); q = 非同期API(); p.done(A); q.done(X); p.done(B); と書いた場合に別スレッドで実行されるのはあくまで非同期APIだけで AとBとCはPromise使おうがsetTimeoutしようが単に後回しにされるだけで結局全部UIスレッドで実行されるから絶対に衝突しないって事でいいの?
43 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 01:13:56.64 ID:Y9GDVUzX.net] >>39 作れる デメリットは変換に使うプラットフォームの仕様やバグに付き合う必要があること >>40 されてる その場合brが参照しているのはarじゃなくて配列自身 >>41 作れる >>42 だいたい最終行の理解で合ってる シングルスレッドでレンダリングとキューの消化を交互に繰り返してる感じ
44 名前:デフォルトの名無しさん [2016/03/25(金) 11:11:25.08 ID:eOfUcnNe.net] HTMLでラインみたいなチャット画面作ってるのですが、フッターに設置したテキストボックスをタップするとキーボードでテキストボックスが隠れてしまいます どうすればよいでしょうか? ちなみにコントローラはjsです
45 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 21:00:38.71 ID:N0KH+ld0.net] 隠れないように、または隠れても見える位置までスクロール出来るように余裕を取る
46 名前:デフォルトの名無しさん mailto:sage [2016/03/26(土) 13:53:31.01 ID:GwvfWp/j.net] >>44 Android 5.1.1 Google Chrome で再現できない https://jsfiddle.net/nL82196v/ 現象を再現可能なコード、対象ブラウザ名及びバージョンは?
47 名前:デフォルトの名無しさん [2016/03/26(土) 15:24:40.02 ID:KP7AUrYI.net] nodejsってnodejs側のプロンプトを使うんですか? win側のプロンプトを使うんですか?
48 名前:デフォルトの名無しさん mailto:sage [2016/03/26(土) 16:39:24.78 ID:hZGT0ViJ.net] >>47 というと?
49 名前:デフォルトの名無しさん mailto:sage [2016/03/26(土) 19:19:26.98 ID:2IjmMYr5.net] ページの全状態を保存したい 閉じて再び開いたときに元の状態に戻したい なんとかなりませんかねこれ
50 名前:デフォルトの名無しさん mailto:sage [2016/03/26(土) 21:28:37.50 ID:AMZqaLeO.net] >>49 DOMの内部状態は再現できないのでどうにもならない 最初からなんとかするように作れ
51 名前:デフォルトの名無しさん mailto:sage [2016/03/26(土) 22:31:52.28 ID:5qdFWVjA.net] amazonのこれから開催予定のセールのページで 商品一覧で商品のタイトルにspan id="dealTitle" がそれぞれ使われてるんですけど、idって重複していいんですか?
52 名前:デフォルトの名無しさん mailto:sage [2016/03/26(土) 23:56:34.06 ID:nOSHwcxN.net] >>49-50 RoR, CakePHP などのフレームワークでは、 フォーム送信のvalidateで、入力エラーがあると、 フォームに入力した内容も、消されずにそのままになっているけど、 これはサーバーサイドだからな クライアント側で、前の画面を保存するには、 入力内容をファイルで保存するしかない
53 名前:デフォルトの名無しさん mailto:sage [2016/03/27(日) 03:48:09.52 ID:HhHg2DAX.net] >>52 だから最初からそう言ってんだよ出しゃばり
54 名前:デフォルトの名無しさん mailto:sage [2016/03/27(日) 07:23:56.73 ID:60dasars.net] localStorage使えばええんちゃうの
55 名前:デフォルトの名無しさん mailto:sage [2016/03/27(日) 09:50:21.72 ID:MdJCnp0Y.net] Viewはシリアル化不可能だからModelをシリアル化可能にするしかないのかな そしてViewの状態をModelから関数的に復元できるように設計にしなければならないと
56 名前:デフォルトの名無しさん mailto:sage [2016/03/27(日) 10:03:52.53 ID:HhHg2DAX.net] データ変更イベントで全部制御すればよし 開始時は全てが変更とみなす これでDOMイベントもwebsocketもstorageイベントも全てに対応だ
57 名前:デフォルトの名無しさん mailto:sage [2016/03/27(日) 10:25:36.38 ID:/vjbvHhC.net] var org ="全100件・・・_全120件..._全45件_'''" var ret =org.replace( /(全)(\d+)(件)/g, "$1" +"/"+ ("$2"-0+1)+"/"+"$3" ) ret の値 期待→ 全/101/件・・・_全/121/件..._全/46/件_''' 実際→ 全/NaN/件・・・_全/NaN/件..._全/NaN/件_''' 正規表現の置換ですが "$2”を 数値に変換して値を1増やすことができません。 parseInt、Numberを使ってもおなじでした。 解決方法ご存知の方がいましたら教えていただければ幸いです。
58 名前:デフォルトの名無しさん mailto:sage [2016/03/27(日) 12:19:54.26 ID:x3ePCErE.net] >>49 そういうのはブラウザ側に任せるべき領分(セッションの復元)だと思うのだけど。 どうしてもやりたいなら、 - focusの記録(localStorage) -スクロール位置の記憶(localStorage) - JavaScript機能の状態をhashに記録(pushState) - ログイン状態の記録(Cookie、サーバサイド処理)
59 名前:デフォルトの名無しさん mailto:sage [2016/03/27(日) 12:24:40.83 ID:UR7Ecaqc.net] replaceの第二引数が "$1/NaN/$3" になっててそもそも$2が消えてるな 文字列じゃなくて関数突っ込んでその第三引数を変更するのがいいと思うよ
60 名前:デフォルトの名無しさん mailto:sage [2016/03/27(日) 12:25:14.33 ID:x3ePCErE.net] >>57 replaceのコールバック関数で受け取るか、while, execでキャブチャした変数から作り直すか
61 名前:57 mailto:sage [2016/03/27(日) 14:39:03.13 ID:/vjbvHhC.net] >>59 ,60 こんな感じでしょうか? var org ="全100件・・・_全120件..._全45件_'''" var ret =org.replace( /(全)(\d+)(件)/g, function( matchText, ref1, ref2, ref3, position, self) { return ref1+((ref2-0)+1)+ref3; } ひとまず、期待通りの動きができています。 アドバイスありがとうございました。
62 名前:デフォルトの名無しさん [2016/03/27(日) 16:17:42.83 ID:wSRwnaYP.net] node jsでリクエストモジュール(最初から入ってますよね?)を使って画像取ってきたいのですが、 var my = require('絶対パズ/request'); console.log(my); としてもモジュールにアクセス出来ないというエラーが出るんですが、なぜでしょうか? 他の問題でしょうか? あと、requestモジュールは、インストールはされている状態なのでしょうか?
63 名前:デフォルトの名無しさん mailto:sage [2016/03/27(日) 18:10:03.43 ID:s1WEC1Fp.net] >>61 無駄な変数が多いな。 var org = "全100件・・・_全120件..._全45件_'''" var ret = org.replace( /(?<=全)(\d+)(?=件)/g, function(num) { return parseInt(num)+1; }); ES6を使うのならば更に短くなるけど var ret = org.replace( /(?<=全)(\d+)(?=件)/g, num => parseInt(num)+1)
64 名前:デフォルトの名無しさん mailto:sage [2016/03/27(日) 18:54:15.04 ID:UR7Ecaqc.net] >>62 まずバンドルされてるのはhttpね 次にパズじゃなくてパス(Path) そんでglobalのモジュールは名前だけでrequireできる nodeスレのテンプレに初心者向けのリンクがあるから目を通すといいよ
65 名前:デフォルトの名無しさん mailto:sage [2016/03/27(日) 19:49:01.73 ID:bXTz64zw.net] この言語ってイベントはdomにしかないのか
66 名前:デフォルトの名無しさん [2016/03/27(日) 20:32:51.88 ID:+zvcgvl1.net] そもそもタスクキューが言語レベルで定義されたのがES2015からだからね Promiseで使われてる
67 名前:デフォルトの名無しさん mailto:sage [2016/03/27(日) 20:42:59.04 ID:HhHg2DAX.net] >>65 どうしたらそんな馬鹿な結論に
68 名前:デフォルトの名無しさん mailto:sage [2016/03/27(日) 21:44:33.38 ID:bXTz64zw.net] >>67 自作クラスにイベント定義しようとして方法をググったらdocument.createEvent使えって書いてあったからそういうもんなのかなと .NETみたいな汎用的なマルチキャストデリゲートはないのかな
69 名前:デフォルトの名無しさん [2016/03/27(日) 21:59:43.14 ID:mBj9pM3F.net] 現状ESの範囲でやるならPromiseを利用するしかない。 因みにdocument.createEventは古過ぎて非推奨なやり方。 今はEventコンストラクタを使う。
70 名前:デフォルトの名無しさん mailto:sage [2016/03/27(日) 23:43:22.80 ID:HhHg2DAX.net] >>68 jsは元からdelegate的にthis付けて関数渡せるからいらん と言うかそう言う意味のイベントなんて わざわざ言語に入れてる方が珍しい スレッディングが問題ならsetTimeout
71 名前:デフォルトの名無しさん mailto:sage [2016/03/27(日) 23:59:58.48 ID:HhHg2DAX.net] なぜPromiseが出てくるんだ?
72 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 00:15:44.30 ID:2h3yopdG.net] node.addEventListener("xxx", function (e) {xxx();}); node.addEventListener(... とか書くの超だるいじゃん node.onxxx += (e) => xxx(); node.onxxx += ... って書ければいいじゃん つかDOM要素以外はaddEventListenerが定義されてないからそこから書かなきゃだしもうやだ
73 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 00:33:41.97 ID:qkrUQjq7.net] >>72 node.addEventListener("xxx", xxx);
74 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 00:43:14.68 ID:jP0nw9w8.net] >>68 nodeならEventEmitterを使えばいいよ。 EventEmitter2とかならブラウザでも動くらしいけど このスレに居るやつはブラウザで動くJavaScriptのことしか 知らないから、よく現実的ではない回答がでてくるので注意。
75 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 00:45:19.83 ID:jP0nw9w8.net] >>65 > この言語ってイベントはdomにしかないのか DOMは言語じゃない。 ブラウザが用意しているライブラリにすぎない。
76 名前:デフォルトの名無しさん [2016/03/28(月) 02:04:57.93 ID:NypY0af3.net] XMLHttpRequestについて勉強しています。 var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4) { if (xmlhttp.status == 200) { /*この内容を関数外から参照したい*/ var data = JSON.parse(xmlhttp.responseText); } } } xmlhttp.open("GET", "test.json"); xmlhttp.send(); alert(data); /* こんな感じで表示したい */ これでJSONファイルから値を取得できるのですが、 function()外からdataの値を参照するにはどうすればいいのでしょうか? 上記のalertに値が入る方法を教えて下さい。
77 名前:デフォルトの名無しさん [2016/03/28(月) 04:22:27.57 ID:+hSVfs2f.net] >>71 setTimeoutもD(B)OM APIだから。 JobキューによるイベントループがES言語レベルで定義されたのはES2015からで、 それにアクセスできるのはPromiseしかない。 他は全部外様な物。 >>76 コールバックを勉強
78 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 07:34:18.85 ID:Kq+xA51M.net] >>74 ブラウザについてだけ言ってるレスってどれ?
79 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 07:38:22.67 ID:Kq+xA51M.net] >>77 タスクキューはイベントとは別 そもそもそれ自体は簡単に実装できるし
80 名前:デフォルトの名無しさん [2016/03/28(月) 14:08:14.84 ID:bQjH0a26.net] >>64 どうもありがとうございます。 そっちのスレも見てみます
81 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 14:12:43.07 ID:AqyD+FoJ.net] >>76 グロバル変数
82 名前:76 mailto:sage [2016/03/28(月) 15:21:37.64 ID:NypY0af3.net] >>77 コールバックってreturnで返すやつですよね? >>76 のソースで言う var data = JSON.parse(xmlhttp.responseText); の後に、 return data; を書いても受け取り方が分かりません。 xmlhttp.onreadystatechange = function () としているわけですし・・。 >>81 グローバル変数って関数外で変数宣言しますよね? var json_data; var xmlhttp = new XMLHttpRequest(); 〜中略〜 var data = JSON.parse(xmlhttp.responseText); json_data; = data; としてjson_dataに代入されません。 XMLHttpRequestを使ったやり方では違うんですかね? マニュアルを何度も見たのですが、この辺がよくわかりません・・・
83 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 15:29:23.31 ID:8nd4zd+D.net] var dataって変数消しな
84 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 15:35:31.52 ID:UwAduPwe.net] 分岐するので非同期通信では無理 同期通信にしないと返り値はとれないよ
85 名前:デフォルトの名無しさん [2016/03/28(月) 16:19:51.96 ID:3hfk1W8A.net] >>79 そりゃ同期的なものなら幾らでもできるが、 DOMイベントとか一般的な非同期なイベントはESの範囲では表現できない。 ただしPromiseを活用することでできる。
86 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 17:12:03.19 ID:5Y2MOZMB.net] >>82 代入するまで処理を停止させるんですから、まさに同期通信の挙動ですよね 他の方もいってますが、同期通信にしては?
87 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 17:18:33.22 ID:To6NOCCD.net] >>82 素朴な疑問なんだが、dataに代入してるその部分でalert(もしくはalertにあたる処理)しちゃいかん理由があるのだろうか?
88 名前:76 mailto:sage [2016/03/28(月) 17:31:19.89 ID:NypY0af3.net] >>86-87 クラスや関数の中でJSONのデータを取得して、それを関数外から参照したいのです。 なんか根本的に間違ってるんですかね・・。 JSONファイルの内容って非同期通信以外でも取得できるのかも・・。 とにかく、>>76 のコードではどうやっても無理という結論で良いのでしょうか?
89 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 17:44:30.66 ID:szf/wSg3.net] >>88 流れを良く追ってないが、 > xmlhttp.send(); は非同期通信なので、呼び出し後データを受信する前に処理はすぐに下に遷移する。 > alert(data); /* こんな感じで表示したい */ なので、この行ではまだデータは受信していない。 Ajaxの受信完了時に > var data = JSON.parse(xmlhttp.responseText); が実行されるが、そもそも>>76 のコードが一つの関数なら、もうその関数の 実行は終わってるわけでreturnなどはできない。 ではどうするかというと、>>76 がfunc()の中だとして、 ・var data = ...の行の下に処理を書く ・global_data = としてグローバル変数に入れる(もちろん、受信前は空) ・funcにcallback関数を引数で渡す var my_callback = function(data) { //dataを参照する処理 }; があったとして、 func = function(callback_func) { ... var data = JSON.parse(xmlhttp.responseText); callback_func(data); ... } func(my_callback); で呼び出す。
90 名前:デフォルトの名無しさん [2016/03/28(月) 17:45:50.00 ID:3hfk1W8A.net] 同期XHRはWorker以外では極めて非推奨だから非同期を使うしかない 非同期を使うとそのようには書けない ただジェネレータやasync/awaitを使って同期的に書くことは出来る おまけで言うなら onreadystatechangeではなくonloadを使い、 JSON.parseではなくresponseType='json'を使うのが今流 そしてさらにモダンなのがfetch どのみち非同期的な書き方に慣れたほうがいい
91 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 18:09:19.03 ID:UwAduPwe.net] 生産性と利便性を考慮するなら jQuery ajaxを使った方がいいと思う 学習目的なら流してね
92 名前:76 mailto:sage [2016/03/28(月) 18:19:55.16 ID:NypY0af3.net] >>89 かなり詳しくありがとうございます。以下の様なコードに変更しました。 var my_callback = function(data) { alert(data);/* dataの中身が表示される*/ return data;/*これでは無理*/ }; func = function(callback_func) { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4) { if (xmlhttp.status == 200) { var data = JSON.parse(xmlhttp.responseText); callback_func(data); } } } xmlhttp.open("GET", "test.json"); xmlhttp.send(); } /*コールバックが実行される*/ func(my_callback); /*my_callbackをreturnにした場合*/ var hoge = func(my_callback); alert(hoge);/*何も表示されない*/ コメントにも記述していますが、my_callback内でalertをすればアラートが表示されます。 しかし、my_callbackの内容を受け取りたいとしてreturnをした場合は表示されません。 関数外から参照するのは無理なのでしょうか?
93 名前:76 mailto:sage [2016/03/28(月) 18:22:49.16 ID:NypY0af3.net] >>90-91 フリーのプラグインなど、jQuery使っていないものがありまして、 そういうプラグインをカスタマイズして、JSONファイルの内容を参照し、 そのプラグインに組み込みたい、というのが最終目的です。 ですので、非同期通信やJavascriptの基礎から勉強しているのですが、 理解が乏しく、皆さんのアドバイスを正確に受け取れていない状態です・・・
94 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 18:31:35.81 ID:szf/wSg3.net] >>92 > 関数外から参照するのは無理なのでしょうか? my_callback()もfunc()の外側なんだが・・・。 つまるところ、自分が参照したい全ての所から参照できる変数global_dataを作って、 > var data = JSON.parse(xmlhttp.responseText); のかわりに > global_data = JSON.parse(xmlhttp.responseText); とやればいいだけの話。 ただし問題は、いつglobal_dataにデータが設定されるかわからない所。
95 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 19:45:04.22 ID:UwAduPwe.net] >>93 var getJson = function() { var x; var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { x = JSON.parse(xmlhttp.responseText); } } xhr.open('GET', 'test.json', false); xhr.responseType = 'JSON'; xhr.send(null); return x; }; var data = getJson(); jQuery ajaxを使った方がいいと思うけど
96 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 19:48:00.76 ID:UwAduPwe.net] 訂正 誤:x = JSON.parse(xmlhttp.responseText); 正:x = JSON.parse(xhr.responseText);
97 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 20:51:31.44 ID:To6NOCCD.net] >>92 手続き型っぽい書き方あきらめたらどうだ? returnする目的って、要はその下でなんか呼びたいんでしょ? フリーのプラグインとやらを、そこで初期化したらどうなの?scriptタグ書くとかして。あんまり勧めないけど。 プラグインって何なの?
98 名前:デフォルトの名無しさん [2016/03/28(月) 21:12:37.35 ID:surT/WgL.net] 1つ間違いなく言えることは今新しくjQuery ajaxを使うより fetchのポリフィルを使ったほうがベター。
99 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 21:13:11.47 ID:Kq+xA51M.net] >>85 いや実装できるよ何をおっしゃてるのか…
100 名前:デフォルトの名無しさん [2016/03/28(月) 21:43:03.94 ID:surT/WgL.net] >>99 何をどう使えば実装できると言うの? 簡単でいいから教えて。
101 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 22:07:15.35 ID:To6NOCCD.net] >>100 jQueryのasync:falseとか言われるよ。
102 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 22:36:17.91 ID:5Y2MOZMB.net] >>92 あなたのやりたいことは同期通信だからopenの第三引数をfalseに設定する https://developer.mozilla.org/ja/docs/Web/API/XMLHttpRequest#open() 通信が終わるまでスクリプトの実行を停止するからUI的に美しくないけどね
103 名前:デフォルトの名無しさん [2016/03/28(月) 23:31:36.73 ID:+LUEdcB2.net] 美しくないだけならいいが、"must not"で禁止されてるからね。 後方互換性のために今はまだコンソールへの警告だけで利用できるが、 いつ例外を吐くようになっても文句は言えない。 https://xhr.spec.whatwg.org/#sync-warning
104 名前:76 mailto:sage [2016/03/28(月) 23:45:17.88 ID:NypY0af3.net] >>95 この方法で出来ました!!まさに求めていたとおりです! 全体を関数に入れた変数にしてreturnすればよかったんですね。 コードの良し悪しはあるかと思いますが、 自分としては目的の動作が出来たので前に進めました。 皆さん、親身になってアドバイスして頂き、本当にありがとうございます。 今後も精進していきます。
105 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 00:04:17.83 ID:QYd4S8TL.net] >>102 それ非推奨。 chromeなんかだと、そのうち例外出して落とすからって言ってる。
106 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 00:22:53.72 ID:CiYiwfo2.net] つーか ID:5Y2MOZMB みたいなアホは黙れよ 同期を教えて助けたつもりになっているアホも だからお前らはゆとりのままなんだよ
107 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 00:34:20.46 ID:K66wvvFn.net] プラグインを改造したいっていうことなんだし、まあいいんじゃね?
108 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 02:00:12.73 ID:YkBe3d8C.net] どうやってもコード汚くなるんだがどうすればいいの ジャヴァスクに親和性高いパターンとかあるのか
109 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 02:28:56.54 ID:oBN7G4CB.net] Effective Ruby、2015 バグが起きにくい、安全で効率的なコーディングと、 間違いやすいポイントを解説 この本は、Scott Meyers の本より、わかりやすい
110 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 04:22:40.86 ID:40DENoq9.net] XMLHttpRequestでPromiseとかいい出すと jQueryを使った方が楽って結論になるんだよな。 クロスブラウザのAjax通信+Promiseになってるから
111 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 04:24:33.66 ID:UIi8OIde.net] >>100 アホかいな 配列と定期的なループで実装できるだろ 実際タスクキューなんて大半がそうなっとるわ
112 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 04:26:21.27 ID:UIi8OIde.net] もしかしてjsは非同期だけどシングルスレッド、という基本的な事すら理解してない?
113 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 06:04:51.79 ID:coyYjSQU.net] webworker使えば非同期じゃん
114 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 09:53:30.62 ID:yarEvdgl.net] エンジニア(技術者)とは理論を現実化すること ここを見ていると能書きばっかりでガックリ
115 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 10:12:35.49 ID:ISdoAk/Z.net] >>66 ,77は>>65 を納得させるコードを書けばいいと思う
116 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 10:29:19.12 ID:NT5SVIu7.net] >>114 能書き以下の文句のみ書く奴もわからんけどね。 理論を現実化するって何なんだ?
117 名前:コールバックするものを同期的にどうしても値を返したい、ってそれか? [] [ここ壊れてます]
118 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 10:46:38.03 ID:z/ezpeX2.net] >>103 なるほど。将来的に廃止予定だから警告や例外を発しても良い仕様なのね。勉強になった。
119 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 10:46:56.26 ID:yarEvdgl.net] 御立腹のようで 失礼、能書きじゃなくて薀蓄かな 覗いてみた個人的感想として流してくれたらいいんだけど 質問に対して>>95 のように回答してから薀蓄を並べる方が良いのでは? ってことですよ
120 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 12:09:31.03 ID:NT5SVIu7.net] >>118 俺書いたけどね。 コードじゃなくて考え方だけど。 理解できないコードよりも余程為になるように書いてるつもり。 var getJson=function(cb){ var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState ==4 && xmlhttp.status == 200) return cb(JSON.parse(xmlhttp.responseText)); }; xmlhttp.open("GET", "test.json"); xmlhttp.send(); } getJson(function(ret){ //alertなり、 //document.write("<script src='プラグインのjs'></script>");なり、 //data=ret;なり、 }) すれば?って話。 どーしてもdataが入るまで処理を止めたいなら、 yieldとか使うしかねーんじゃないの?
121 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 13:24:26.66 ID:ZJ5WWFRI.net] >>119 それは非同期通信でJSONデータを取得しての分岐処理だよね 質問の主旨は変数に通信でJSONデータを格納することだよ
122 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 13:34:39.47 ID:kWaaro/J.net] ちょっともうコールバックの概念と、Javascriptにおけるスコープの概念を知らない奴は黙ってて欲しい
123 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 13:35:38.58 ID:NGEgZfA0.net] コールバック内で受け取った値をその外で使おうとする所が破綻してる それは途中どういう手段を用いようが同期処理という (UIを止める処理だけを同期処理と言う訳じゃない) コールバック内で受け取った値はコールバック内で処理すべし
124 名前:デフォルトの名無しさん [2016/03/29(火) 14:01:50.79 ID:kZZssD4f.net] >>111 その「定期的」なループがESの範囲では実現できないでしょ。 精々ビジーループしかできない。 それだと例えばDOMの変更をポーリングしてそれをイベントとすることはできない。 イベントとして実際重要なのは刹那の間処理を外部に受け渡して待つこと。 これができないとDOMイベント同じ使い勝手と効果のものは実装できない。 その刹那の間待つ定期的なループをESの範囲で実現しようとすればPromiseを使うしかないという話。
125 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 14:03:11.20 ID:0EsoxiRu.net] >コールバック内で受け取った値をその外で使おうとする所が破綻してる まったく石頭だわ Storageに保存して外で使うことできるけどな
126 名前:デフォルトの名無しさん [2016/03/29(火) 14:15:07.45 ID:z/ezpeX2.net] >>123 Promise で DOM Events 相当の機能を実現できる気が全くしないのだけど、 例えば、MutationObserver 相当の事を Promise で実装するにはどのようなコードを書く?
127 名前:デフォルトの名無しさん [2016/03/29(火) 14:17:53.64 ID:kZZssD4f.net] >>125 Promiseを活用すればsetImmediateやnextTick相当の機能を実装できるから それでポーリングすればいい。
128 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 14:23:21.29 ID:NGEgZfA0.net] >>124 いつStorageに保存されたかをどうやって知るんだよ 結局何らかの同期処理をすんだろ
129 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 14:32:13.22 ID:zwegJ/gg.net] おめぇら馬鹿だな。 イベントはPromiseの代わりになるが Promiseはイベントの代わりになるとは限らない。 例えばダウンロードの進捗具合のように 定期的に発生するイベントはPromiseでは実現できない。 Promiseは状態が遷移したらそれ以降動かないからだ。 onreadystatechangeもStateが変わるたびに呼び出されるから Promiseでは全てを実現できない。 まずこれが基本だから、これを理解してから喋れ
130 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 14:38:06.76 ID:NGEgZfA0.net] requestAnimationFrameを使え この中で状態をポーリングしてUIを更新すればちらつかずに更新できるし スクロールにもきちんと追従できる
131 名前:デフォルトの名無しさん [2016/03/29(火) 14:50:41.80 ID:yLeRa/O1.net] >>127-129 元の流れが >>65-68 のような無茶な流れなので、実用上の話と思うと当然無茶がある それと、基本的にイベントに当たるものを作る時の話だからね 簡単な例えではsetTimeout的な機能も作れない 勿論全てのタスクを登録してビジーループで回したり、 事ある度にタスク管理に処理を戻せばある程度は可能だが、 Promiseを使えば既存のsetTImeoutやcreateEventとほぼ同じ使い勝手・効果のものを エミュレートすることができる
132 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 15:02:49.41 ID:0EsoxiRu.net] >>127 当たり前だろ、毎回非同期通信しないために 同期通信で格納することを前提で言ってるんだよ キミの言うようなことを言ってたらグローバル変数も使えないよ
133 名前:デフォルトの名無しさん [2016/03/29(火) 15:09:45.93 ID:z/ezpeX2.net] >>126 よくわからないんだけど、それで MutationObserver 相当の事が出来るのね 具体的なコードが欲しいんだけど
134 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 15:10:48.04 ID:NGEgZfA0.net] >>131 同期処理するんだったら何もStorageを出さなくてもいいよ 普通にグローバル変数を使えばいいんだから なんでStorageを出した?
135 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 15:16:11.37 ID:0EsoxiRu.net] >>133 論点をずらしてるんじゃないよ 石頭だって言ってるんだよ 日本語OK?
136 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 15:21:23.12 ID:NT5SVIu7.net] >>120 変数に格納してんじゃん。。 getJsonに渡してる匿名関数のコメントの三行目の代入はグローバルにだよ。 そっから好きなスクリプトタグ書けって言ってんの。
137 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 15:26:38.39 ID:0EsoxiRu.net] >>119 に対して、>>120 の指摘が当然だろ? もっと逆上って言えば、質問者の意図する回答をしていないから荒れるんだよ >>76 の問に対して、>>95 の回答 これで普通は解決なんだよ あとは個々の主観ばかりの与太話にしか思えないよ
138 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 15:28:19.14 ID:NT5SVIu7.net] 教えてくれって言われたから教えて、 日本語読めないからコードかけって言われて、 コード書けって言われたからコード書いたらコードリーディングも出来なくてて、 ド低能にも程があるわ。
139 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 15:30:38.77 ID:NT5SVIu7.net] >>136 アホか。 非同期通信で、一つずつ次の作業をするのは、 同期通信にほかならんだろ。 .then().then.... は全部非同期だよ。順番に呼んでるだけで。 そもそもグローバル変数に保存してるしな。
140 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 15:34:40.10 ID:NGEgZfA0.net] >>134 いや突然Storageとか言って引っ込みつかなくて顔真っ赤にしてるのはわかったよw
141 名前:デフォルトの名無しさん [2016/03/29(火) 15:38:22.94 ID:z/ezpeX2.net] >>119 は非同期処理前提なら妥当な提案だと思うけどね この処理の肝はコールバック関数で受ける事であってグローバル変数やStrageだとかは完全な蛇足 >>76 を完全に満たすには>>95 の同期処理しかないわけだけど、現実的には非同期処理の方が望ましいからね
142 名前:デフォルトの名無しさん [2016/03/29(火) 15:39:09.01 ID:Z5Jc75xQ.net] まああれじゃね 非同期XHRはJSのコールバックや非同期処理の良い勉強になるから 自分で色々調べて練習しろっていうのが最良の答えじゃね
143 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 15:43:56.03 ID:0EsoxiRu.net] >>139 お前が顔真っ赤なだけだろ?w >>76 が、味噌ラーメンを注文したんだから、 塩分多いから、やっぱりチャーシュー麺、醤油の方が美味しいよ、 味噌は塩分多いから... など、どうのこうの言っているのと同じ 味噌ラーメンを食いたい人には味噌ラーメンを食わせば良いんだよ さあ仕事するわ
144 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 15:52:51.17 ID:NGEgZfA0.net] >>142 シメはラーメンかよwwお前にふさわしいよw
145 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 16:29:40.76 ID:zwegJ/gg.net] >>130 > Promiseを使えば既存のsetTImeoutやcreateEventとほぼ同じ使い勝手・効果のものを > エミュレートすることができる setIntervalはどうやって作るの?
146 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 16:33:27.36 ID:kWaaro/J.net] >>122 ajaxでdata collection取得 ↓ 画面に反映 ↓ ユーザが何か操作 ↓ data collection更新 ↓ ajaxでpost って普通だと思うけど。
147 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 18:18:43.36 ID:NT5SVIu7.net] >>142 つくづくアホだな。 あたたかい水下さい→そんなもんねえよ、その代わり湯をやるよ。ってくらい的外れな事に現実的な回答を返してるよ。 米粉で作ったラーメン下さい→なんの事かわからんけど、米粉で作るのはフォーで、こういうの。 ラーメンはこういうの、って答えてるんだよ。 塩分が多いとかそんな問題じゃなくて。 食いたいものが物として現実解では有り得ないよ、って指摘。 何も読めてないのか、もう振り上げた拳が降ろせないのかわからんが、 新しい知識を素直に取り入れるのもプロだよ。
148 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 18:21:00.48 ID:zwegJ/gg.net] お湯っていうのは、英語でhot waterっていうんだよ。 つまり熱い水。
149 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 18:22:02.75 ID:NT5SVIu7.net] >>147 そうだね。知ってるよ。 同じように、日本語で言う同期的な処理を、javascriptではコールバックで行うんだよ。
150 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 18:24:59.77 ID:kWaaro/J.net] >>148 > 同じように、日本語で言う同期的な処理を、javascriptではコールバックで行うんだよ。 それは初耳
151 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 18:25:56.86 ID:NT5SVIu7.net] >>149 まぁ、Promiseの実装でも見てみれば?
152 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 18:32:13.69 ID:kWaaro/J.net] >>150 非同期処理だって、コールバックで処理するだろと思っただけ
153 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 18:39:58.03 ID:BL4JYHCh.net] 物は言いようってやつだろ これ以上相互理解は出来ない 話は終わり
154 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 19:50:19.09 ID:cRlulqCL.net] 非同期XHRのsend直後にsleepさせてみたらどうかと思ったけど 実際の通信の方が終わっても一旦イベントループ勧めないと状態が更新されないのな やっぱりfetchとawaitでも使うしかないか
155 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 20:13:48.80 ID:CiYiwfo2.net] 本日の低脳荒らし ID:yarEvdgl 理由:他の文句言っている奴は少なくとも「技術的観点」から物を言っているが、 こいつは感情的なことを言っているだけ。 てか俺はむこうのキチガイBBA = ID:NypY0af3 = ID:yarEvdgl じゃないかと思っているんだが。 とにかく回答が欲しい、それについては煽ろうが他人の指摘を無視しようがお構い無しだろ。 低脳っぷりも似ている。 そもそも質問も見覚えがあるんだが。 お前らが何をしたいのか分からんが、回答先と回答内容はちゃんと選べよ。 お前らのためにもならないぞ。 回答すればいいってものじゃないんだよ。 >>119 挑発に乗るな。お前のためにもならないぞ。 どうみても>>76 は一行も理解しておらず、コピペでしかないだろ。 だから76は何とかしてコードを書かせたいだけなんだよ。自ら学ぼうなんて微塵も思っていない。 そもそも回答に不服があるのなら、かっこいい回答を自分で書けば済む話だ。 それも出来ない癖に文句を言っている時点で察せ。 そもそも「車輪の再発明」をあれほど嫌うお前らが何故「回答の再発明」を嬉々としてやるのか意味不明だ。 どうやらお前らゆとりは何故「車輪の再発明」が駄目なのか理解できていないようだ。 これは「回答の再発明」だと思われる案件は、無視したほうがいい。 多分それがお前らのためにもなると思う。
156 名前:デフォルトの名無しさん [2016/03/29(火) 20:21:42.04 ID:cRlulqCL.net] 必ずしもそうは言えないかと Webの進歩は日進月歩で何が最良かは日々変わるので、 それを確かめることが無意味ではないということと、 車輪の再発明は初心者が技術を磨くためには有用で、 その教え方としてどうするのが良いのかを議論するのも無駄ではない。 だからこそ皆話し始めて話を続けているわけで
157 名前:デフォルトの名無しさん [2016/03/29(火) 20:40:04.88 ID:z/ezpeX2.net] 車輪の再発明は勉強の為に役立つね 「車輪の再発明をしなくていいから車輪が何かを知っている必要はないんだよ」と主張する輩もいるけど、違うと思うな
158 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 21:48:07.43 ID:D22lADAw.net] お前らのレスこそ非同期そのもの
159 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 22:55:48.28 .net] 一日中スレに張り付くのはロングポーリングかな
160 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 23:20:15.85 ID:CiYiwfo2.net] >>155 「再発明」は自習に「有用」で、君が「教え方」を学びたいのなら、 君がやるべき事は、MDNを再読することだ。 それが「車輪の再発明」におけるライブラリコードリーディングに該当する。 少なくともここで "sleep" とか言い出して余計に混乱させることではない。 それにお前らも分かっていると信じたいが、「車輪の再発明」と同様、 お前ら以上にJavaScriptを知っている連中が、お前ら以上に時間をかけて丁寧に説明しようとした結果がMDNだ。 もちろん誤字脱字訂正も為されている。(デバッグ済) だからそれ以上の説明をここでサクっと出来ることは稀だ。 ライブラリ推進派なら、MDNの説明を使える部分はさくさく引用して終わりにするべきだ。 糞みたいな説明されても質問者も迷惑だろ。 お前らは結果的にお互いに足を引っ張り合っていることに気がついていない。 「同期XHR」なんて明らかに間違いだし、そもそも非同期で書けないようではJavaScriptではやっていけない。 そこで躓いたら、インストールするしかないんだよ。 こいつは非同期以前にクロージャ、スコープ、グローバルも分かってない風だし、 「最初からやりなおせ」が正しい解答だ。 ここで間違った「同期XHR」を教えるのは、一時的には解決になるものの、長期的に見ると遠回りになる。 お前らもそういった「長期的に見て遠回り」のことばかり教えられ、 結果的に時間の割に成長せず、低レベルにとどまっているように見える。 まるきり分かってないような奴は、「最初からやり直せ」で追い返すべきだ。 それが本人のためにも、君らのためにもなるんだよ。
161 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 23:25:54.24 ID:zwegJ/gg.net] 3行にまとめろ
162 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 23:27:50.39 ID:h9Hf6Oqw.net] 質問が日に6つも7つもある状況なら言ってることも多少理解できるが そうでないのだから、別に慣れ合いを楽しんだっていいでしょ
163 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 23:52:24.48 ID:NT5SVIu7.net] >>151 データが来てから、何かを行う、 これを同期的な処理と言わずなんと呼ぼうか。 他の処理とは非同期だけどね。 って言葉遊びだよ。 なんかすまなんだ。 >>154 人間、コピペから始めるもんだよ。 小1のひらがな書き取りから漢字ドリルから、読書感想文から文学作品に至るまで。 それがナンセンスだよ、と言われて、考え方を示唆されて、それでも分かんなくて例を出されて、アホさを痛感すれば多少は学ぶだろ。 だからクソ叩くけどね。
164 名前:デフォルトの名無しさん mailto:sage [2016/03/30(水) 00:30:36.08 ID:Op2rn9Lq.net] >>159 > それが「車輪の再発明」におけるライブラリコードリーディングに該当する。 「車輪の再発明」は何のコードを読まず、一からコードを書くことを指すものだと思うが、コードを読んだらそれはただのコピペプログラミングではないのかね 「車輪の再発明」をするならPolyfill系が実用的かつ内部動作を知る機会を得られてお勧めだな Selectors APIとかclassListとか仕様書とにらめっこしながらコードを書くのは割と楽しい
165 名前:デフォルトの名無しさん mailto:sage [2016/03/30(水) 08:02:34.29 ID:rLuvgVFw.net] >>156 少なくとも現代社会では君のような奴は必要とされない。
166 名前:デフォルトの名無しさん mailto:sage [2016/03/30(水) 09:03:18.80 ID:BnXnDw8Q.net] 納期が迫ってるチーム内でこんな会話してたらそりゃ無駄だと思うが ここでは必要なことだよ
167 名前:デフォルトの名無しさん mailto:sage [2016/03/30(水) 11:19:35.17 ID:dKie64pY.net] >>164 現代社会ではじゃなくてIT土方企業ではの間違いだろw 自ら学習せずしてどうやって技術力を高めるのか? お前のように自分の価値を自分で貶める輩がいるから日本の技術者は給料が低いんだぞw
168 名前:デフォルトの名無しさん mailto:sage [2016/03/30(水) 11:42:46.78 ID:5NyBO0m8.net] 会社にとって生産性を意識しない一般レベルの技術者はゴミ また、プロとは呼べない
169 名前:デフォルトの名無しさん mailto:sage [2016/03/30(水) 12:41:28.81 ID:rLuvgVFw.net] >>167 ですね。
170 名前:デフォルトの名無しさん mailto:sage [2016/03/30(水) 12:47:47.70 .net] いま倉庫物流業界におるけど IT技術より業界のしきたり?慣習?を理解する方が大変 人に聞かないと判明しないし…喫煙所でコーヒー奢ったり…
171 名前:デフォルトの名無しさん mailto:sage [2016/03/30(水) 12:54:55.38 ID:yO7JBNvw.net] 決められた納期で最大限の結果を出すのがプロ その為には自分がやりたかった事を他人に振ることもするし 逆に時間を作って自分がやりたい車輪の再発明もする ただプロジェクト自体は必ずうまく行くから誰も文句は言わない それが出来る奴
172 名前:デフォルトの名無しさん mailto:sage [2016/03/30(水) 13:06:33.19 ID:iiS6Zli9.net] >>170 プロに夢見すぎ 金が稼げてればプロ
173 名前:デフォルトの名無しさん mailto:sage [2016/03/30(水) 14:37:03.78 ID:Op2rn9Lq.net] 生産性と勉強の時間は別問題 生産性が下がるから勉強しないというのは本末転倒
174 名前:デフォルトの名無しさん mailto:sage [2016/03/30(水) 15:00:52.65 ID:rLuvgVFw.net] >>172 詭弁は他でやるといいよ
175 名前:デフォルトの名無しさん mailto:sage [2016/03/30(水) 16:04:19.16 ID:aZ4nzpeD.net] 特定の文字列例えば’ABC’の文字列を含むTextNodeの検索を行いたいのですが querySelectorみたいなもので全体に対して検索書けるようなAPIはあるのでしょうか?
176 名前:デフォルトの名無しさん mailto:sage [2016/03/30(水) 16:16:36.25 ID:cWDvBnb1.net] >>174 何回も同じ質問をするな
177 名前:デフォルトの名無しさん mailto:sage [2016/03/30(水) 16:23:20.36 ID:Op2rn9Lq.net] >>174 document.evaluate
178 名前:デフォルトの名無しさん mailto:sage [2016/03/31(木) 11:29:17.02 ID:ymqhTLQ0.net] >>171 違うだろ、本職でも稼げない奴は沢山いる
179 名前:デフォルトの名無しさん mailto:sage [2016/03/31(木) 11:36:31.72 ID:fi72UJLf.net] >>176 ありがとうございますXPathってもしかして結構便利なんですかね。 とりあえず目的のことができました。ありがとうございます
180 名前:デフォルトの名無しさん mailto:sage [2016/03/31(木) 11:52:08.55 ID:AghJqbjM.net] >>177 稼げてない奴は「自称プロ」
181 名前:デフォルトの名無しさん [2016/03/31(木) 12:46:18.71 ID:z7eByYkq.net] node jsでnpmをインストールしようとすると、 「npm should be run outside of the node repl in your normal shell」 というメッセージが出るんですが、これはどうすれば回避出来るのでしょうか?
182 名前:デフォルトの名無しさん mailto:sage [2016/03/31(木) 13:05:54.63 ID:7B1LSXi4.net] その文面でググると一番上にstackoverflowでドンピシャなのが出てくるよ どっから落として実行したのか知らんけどインストーラー使っとけって
183 名前:デフォルトの名無しさん mailto:sage [2016/03/31(木) 13:08:58.74 ID:z8vLV66o.net] そりゃnode jsでしようとしてるからだよ。 というかその文章で教えてくれてるじゃん。どうして読まないの??? npmコマンドはnodeのreplで使うものじゃない。 各OSの標準シェルから叩くもの。
184 名前:デフォルトの名無しさん mailto:sage [2016/03/31(木) 13:11:32.09 ID:z8vLV66o.net] >>181 どアホ stackoverflowを参照するなら上の方の+5,6のそういう回答じゃなくて +30付いてる方にしろよ
185 名前:デフォルトの名無しさん mailto:sage [2016/03/31(木) 13:14:41.63 ID:7B1LSXi4.net] >>183 ちょっと待てよ! 件のはそもそもnpmが使えないからnodeからnpm iしてみたらって話でしょ 恐らく>>180 は同じケースだろうからああレスしたんだよ
186 名前:デフォルトの名無しさん mailto:sage [2016/03/31(木) 13:25:08.83 ID:mJpDHBVP.net] CSS Browser Selectorというjsファイルについて質問です 「商用利用可だが著作権の明記が必要」と解説しているサイトに書いてあったのですが、これはソースに書いておけば良いということなのでしょうか それともスクリプトが実行されるページ内に表示する必要があるのでしょうか よろしくお願いします
187 名前:デフォルトの名無しさん mailto:sage [2016/03/31(木) 13:47:11.71 ID:yy0681Er.net] 何々を使っていますと、サイトのフッターにでも、書いておけば?
188 名前:デフォルトの名無しさん mailto:sage [2016/03/31(木) 13:55:36.38 ID:7B1LSXi4.net] どんなライセンスを使用しているかによる そのライブラリだとCC2.5だけど本来ソフトウェア向きのものではないから微妙だな CCの趣旨では使用したドキュメント内で著作権表示が行われることを想定しているから Webサイトで使うならページ中にクレジット表示入れるのが無難だと思う
189 名前:デフォルトの名無しさん mailto:sage [2016/03/31(木) 14:29:30.30 ID:mJpDHBVP.net] >>187 なるほど ソフトウェア向きではないんですね… ありがとうございます 助かりました
190 名前:デフォルトの名無しさん [2016/03/31(木) 16:23:25.76 ID:z7eByYkq.net] >182 ありがとうございます プロンプトでやったら出来たっぽいです どこにインストールすればいいのかわかりませんが
191 名前:デフォルトの名無しさん mailto:sage [2016/03/31(木) 16:57:04.95 ID:fi72UJLf.net] すんませんxpathの使い方を教えて下さい <p><a>123</a>abc<a>efg</a></p> に対して以下のxpathを試してefgの部分は取得できたのですが //*[text()="abc"]/*[text()="efg"] できればabcの部分(条件を満たすエレメントの先頭要素)を取得したいのですが どう書けばいいのでしょうか?
192 名前:デフォルトの名無しさん mailto:sage [2016/03/31(木) 17:10:45.04 ID:acvfOefz.net] >>190 efg取れたならそいつの親の子じゃないの?
193 名前:デフォルトの名無しさん mailto:sage [2016/03/31(木) 18:09:57.76 ID:fi72UJLf.net] >>191 //*[text()="abc"]/*[text()="efg"]/..//* とすると <a>123</a>, <a>efg</a> が取れるんですがテキストノードが何故か除外されてしまいます。
194 名前:デフォルトの名無しさん mailto:sage [2016/04/01(金) 00:55:35.78 ID:o32zNHl2.net] JavaScriptだとコールバックで匿名関数渡してじゃんじゃんネストしてってよくやるけど ちゃんとユニットテストしたいときってどーしてんの?
195 名前:デフォルトの名無しさん mailto:sage [2016/04/01(金) 01:01:52.29 ID:6H5rXnFj.net] そもそもしない ユニットテストはアプリケーション層以下で行う 賞味期限が切れたら殆どが使い捨てられる運命にあるプレゼンテーション層でユニットテストは作業者の負担になるだけ
196 名前:デフォルトの名無しさん mailto:sage [2016/04/01(金) 03:20:39.57 ID:0Q+2ltBp.net] 言語エンジンを書いた時は流石に重厚なテストを書いたけど、 それ以外ではまともに書いたことがないね。 それが長期に渡って発展され続けて、かつ構造の変わらないものでないとテストを書く意味は薄い。 テストってのは一番はいつの間にか壊れてたってのを防ぐためのものだからね。 一発ものだったり、バージョンが上がる度に要件が結構変わりそうなものでは費用対効果が悪い。 まあある程度変化が落ち着いてから改めて書くってのはありだと思う。 でももうこれ以上発展させなくなった時に書いても仕方がない。 成長過程のちょうど中ほどで書くというのがベストなんだろうけど見通すのはなかなか難しい。
197 名前:デフォルトの名無しさん mailto:sage [2016/04/01(金) 03:43:30.09 ID:0hX+vVN6.net] >>195 テストってのはいつの間にか壊れてたを防ぐものじゃないだろ。 これはこういう動きをすると保証しますって物じゃないの?
198 名前:デフォルトの名無しさん mailto:sage [2016/04/01(金) 05:49:03.45 ID:xgn0cw4K.net] >アプリケーション層 >プレゼンテーション層 OSI参照モデル?
199 名前:デフォルトの名無しさん mailto:sage [2016/04/01(金) 06:53:34.67 ID:LDlR2m0j.net] アホが湧いてるwww
200 名前:デフォルトの名無しさん mailto:sage [2016/04/01(金) 07:13:59.22 ID:2GR9s30v.net] ユニットテストすべきかどうかは置いといて JavaScriptのネストしまくってダラダラ書くスタイル嫌い オブジェクト指向と言いつつモジュールとか機能の単位とかの概念と合わない
201 名前:デフォルトの名無しさん mailto:sage [2016/04/01(金) 07:22:16.84 ID:0P46FgGj.net] >>190-192 XPath って直接いじったりするもの? 何かのライブラリを通して、使うものじゃないの? Groovyなら、XmlParser, XmlSlurper とか、イベントベースのSAX, StAX を使うと、 クロージャでコールバック関数を書ける Groovy学習14 XmlSlurperによるXMLの解析 ttp://symfoware.blog68.fc2.com/blog-entry-1183.html
202 名前:デフォルトの名無しさん mailto:sage [2016/04/01(金) 08:16:46.78 ID:BBjX6NvI.net] >>200 https://developer.mozilla.org/ja/docs/Web/API/document/evaluate
203 名前:デフォルトの名無しさん mailto:sage [2016/04/01(金) 09:20:32.97 ID:QIAaDLEb.net] >>199 御意、見出しのない辞書のようなモノ 見るだけでウンザリ
204 名前:デフォルトの名無しさん mailto:sage [2016/04/01(金) 09:30:23.42 ID:CHPnKeLy.net] >>196 言い方見方を変えただけで実際はほぼ同じ事のように見えるが
205 名前:デフォルトの名無しさん mailto:sage [2016/04/01(金) 09:38:12.97 ID:7UmkX6sZ.net] >>203 違うよ。 壊れてるのを検出するためのものじゃなくて、 壊してしまうことを検出する為のもの。
206 名前:デフォルトの名無しさん mailto:sage [2016/04/01(金) 11:58:37.72 .net] >>193 ややこしいロジックをまとめたクラスにはユニットテストするけど CasperJSでテストして動けばええやろと言う態度です
207 名前:デフォルトの名無しさん mailto:sage [2016/04/01(金) 13:15:45.37 ID:QIAaDLEb.net] >コールバック バカの一つ覚え
208 名前:デフォルトの名無しさん mailto:sage [2016/04/01(金) 13:33:28.72 ID:BBjX6NvI.net] >>203 >>195 だとヒューリスティックスキャンのように読める
209 名前:デフォルトの名無しさん mailto:sage [2016/04/01(金) 17:45:36.67 ID:8p2KsOzx.net] >>204 その2つも実際はそんなに変わらないと思うが、 どちらかと言うと自分は後者のニュアンスで言ってる。
210 名前:デフォルトの名無しさん mailto:sage [2016/04/01(金) 19:53:09.41 ID:xvbiumjA.net] >>197 そうみたいね JavaScriptはアプリケーション層だと思うけど
211 名前:デフォルトの名無しさん mailto:sage [2016/04/01(金) 19:55:30.67 ID:ADMr3fbY.net] JavaScriptとHTMLの組み合わせだとUIパターンは何がいいんですかね MVVMはバインダが無いから上手く行かなそう MVPとMVCだとどっちが良いんだろう
212 名前:デフォルトの名無しさん mailto:sage [2016/04/02(土) 02:29:36.95 ID:d3CGaqY7.net] 当然最適解は状況による。 そしてMV何かは拘る必要はない。 これから標準的にオススメされていくのはRxJS 5にあるようなObservableを使ったパターンだが、 別になんだって良い。
213 名前:デフォルトの名無しさん mailto:sage [2016/04/02(土) 09:03:53.56 ID:uByagQKe.net] https://youtu.be/saloTsNZcNA
214 名前:デフォルトの名無しさん mailto:sage [2016/04/02(土) 11:20:30.33 .net] AngularJS 1.5使ってるけどあれは何パターンなんですかのう
215 名前:デフォルトの名無しさん mailto:sage [2016/04/02(土) 13:24:45.76 ID:7QV6Y65D.net] >>190 descendant::text()[.="abc"] https://jsfiddle.net/kgr5ybkq/
216 名前:デフォルトの名無しさん mailto:sage [2016/04/02(土) 15:06:34.57 ID:NSyOUFVI.net] >>213 MVVMじゃない。 React.jsは何パターンなんだろね。
217 名前:デフォルトの名無しさん mailto:sage [2016/04/02(土) 18:45:38.17 ID:kcrpe57e.net] >>215 変形Observableじゃないか? あいつらのやった一番偉大な事は、ありきたりな物の組み合わせに名前をつけて定義するって事だと思ってる。 「こんな形の、向かい合った辺の組み合わせが平行な四角形」に、「平行四辺形」って名前をつけると、みんな頭の中にちゃんと平行四辺形が浮かぶようになるような感じ。 そもそも、クラサバアプリのwinmainとコントロールとUIスレッドの組み合わせと全く同じで、なんの発明でも無いからな。
218 名前:デフォルトの名無しさん mailto:sage [2016/04/02(土) 18:46:04.82 ID:aCJgiZnd.net] 実質MVCしかない感じ バインダ書くのがめんどくさいからフレームワーク無しでMVVMはまず無理 MVPは非同期処理が貧弱なせいで書きにくい MVCなら簡単 UIイベント.done(サーバ通信().done(モデル更新).done(UI更新)) これだけで全てが上手くいく
219 名前:デフォルトの名無しさん mailto:sage [2016/04/02(土) 19:05:21.28 ID:MErRnMko.net] そもそもDOMの仕組み自体がMVCを包括してるんだから 厳密にMVなにかを言うのは難しい
220 名前:デフォルトの名無しさん mailto:sage [2016/04/03(日) 10:42:42.99 ID:YP3p5dYq.net] DOMはただの文書を操作するための規格でしかないだろう。
221 名前:デフォルトの名無しさん [2016/04/03(日) 11:17:51.87 ID:rmt1T5Kd.net] node jsでは普通のプロンプトとnode.exeのプロンプト、 何が違うんでしょうか? どちらを使うのでしょうか?
222 名前:デフォルトの名無しさん mailto:sage [2016/04/03(日) 12:14:21.00 ID:kdjOntdl.net] >>47 の人?
223 名前:デフォルトの名無しさん mailto:sage [2016/04/03(日) 12:24:41.11 ID:7jlo6lqN.net] JavaScriptってどういう形で開発して配布するのがスタンダードなんですかね @開発時にはモジュール単位でファイルを切って ファイル間の依存関係がある場合はscriptタグの追加によって依存先を読み込む A開発時にはモジュール単位でファイルを切って 公開する前に全ファイルを結合してしまう プログラマ的な感覚だと@がしっくりくるんだけどscriptタグ追加とファイルのロードが非同期的なため扱いにくく通信回数も増えるなどデメリットがある Aはちょっと気持ち悪いし結合の手間がかかる点と不必要なコードも結合してしまう点が良くない なにかいい方法ないですかね
224 名前:デフォルトの名無しさん mailto:sage [2016/04/03(日) 12:25:15.68 ID:6MQCRpaJ.net] >>193 ちゃんとしたい時には匿名関数は使わない 一部を除いてほぼ全ての関数に名前を付ける
225 名前:デフォルトの名無しさん mailto:sage [2016/04/03(日) 15:30:11.54 ID:OaDtSrzO.net] >>220 node はコマンドで、node.exe はたぶん実行ファイル Linuxではターミナル(端末)を起動すると、bash などのシェルが起動する。 そのシェルで、node などのコマンド名を打ち込むと、 環境変数の探索パス(PATH)の順番に、例えば、こういうディレクトリの順番で、 /usr/local/sbin/:/usr/local/bin:/usr/sbin/:/usr/bin/:/sbin:/bin そのコマンド名が登録されているかどうかを探す 数個あるどの探索パスにも、そのコマンド名が登録されていなければ、 そのコマンド名は存在しないので実行できない、というエラーになる 端末で、which node と書けば、nodeコマンド名が、 どこの探索パス内にある、どのプログラムを指しているか、わかる。 つまり、どこかの探索パス内にある、node.exe
226 名前:デフォルトの名無しさん [2016/04/03(日) 18:55:00.49 ID:rmt1T5Kd.net] >>224 つまりwindowsについているプロンプトの方を使って、nodejsを実行するということですよね。 コマンドなしならnode.exeの方からも操作出来るってことですよね。 すっきりしました。ありがとうございます。
227 名前:デフォルトの名無しさん mailto:sage [2016/04/04(月) 04:17:01.68 ID:HKTiO3l5.net] なんか感覚がちょっとズレてると思うが
228 名前:デフォルトの名無しさん mailto:sage [2016/04/04(月) 09:07:46.39 ID:zlday2Sk.net] >>226 言っちゃ駄目だよ 自己満足してるんだから
229 名前:デフォルトの名無しさん [2016/04/04(月) 15:11:29.01 ID:kC7w/ICj.net] >>226 どういうことでしょうか?
230 名前:デフォルトの名無しさん mailto:age [2016/04/04(月) 19:11:54.27 ID:NjHEg+Kd.net] javascriptがオフの場合無効化されているというテーブルを表示したいけど <div id="JSoff" style="width: 400px; text-align:left;border: 5px solid #ffaaaa; padding:10px;background:#ffffff"> <B>JavaScript</B>が無効化されています。<BR> 全ての機能を利用するには<B>JavaScript</B>を有効にしてください </div> <script>document.getElementById("JSoff").style.display = "none";</script> javascriptがオンになっている場合これだとブラウザでページを読み込むときに 一瞬ちらっと無効化されているというテーブルが表示されてしまいます このちらつきを解消する方法はありますか?
231 名前:デフォルトの名無しさん mailto:sage [2016/04/04(月) 19:40:36.90 ID:u65DNVI0.net] >>229 noscriptつかえやカス
232 名前:デフォルトの名無しさん mailto:sage [2016/04/04(月) 19:48:15.98 ID:23c2ZC8H.net] >>229 modernizrを使えばいい。 https://modernizr.com/docs#no-js 簡単に説明すると、HTMLに<html class="no-js"> と書いておくと JavaScriptが有効の場合に <html class="js"> に書き換えてくれる。 あとは.no-js .class もしくは .js .class とかでcssを使って 表示非表示を制御できる。 modernizrが重いと思うならば、同じことを自分で作れば良い。 単にHTMLタグのclassのno-jsをjsに変更するスクリプトを書くだけ。
233 名前:デフォルトの名無しさん mailto:sage [2016/04/04(月) 22:37:38.34 ID:aA7d4T8T.net] >>229 JavaScriptを使って解決するなら document.styleSheetsを書き換えれば良い 最も、内容的にはnoscript要素が妥当な気がするが
234 名前:デフォルトの名無しさん mailto:sage [2016/04/05(火) 08:20:53.68 ID:F8KWDDTe.net] >>229 display.hidden
235 名前:デフォルトの名無しさん mailto:sage [2016/04/05(火) 10:04:36.42 ID:OVtadeSC.net] noscript、あるいはheadに埋め込んだスクリプトから上書きのstyle要素をwriteすればいい
236 名前:デフォルトの名無しさん mailto:sage [2016/04/05(火) 10:25:58.75 ID:iKLx8/tN.net] modernizerでもいいけど使うまでもない気が display: none にしておいて$().readyでshow()とかで十分
237 名前:デフォルトの名無しさん mailto:sage [2016/04/05(火) 11:25:54.14 ID:vndmlNk/.net] >>229 ところで満足できた?
238 名前:デフォルトの名無しさん mailto:sage [2016/04/05(火) 23:22:21.68 ID:gGzP1w2i.net] >>235 showじゃなくてhtmlかbody要素に対するaddClassとかにしてください。 showとか使うと、showしたいものが増えるたびに コードが増えていって目障り。 っていうか、jQueryを使うまでもなく一行のscriptで十分 ready時にやることじゃない
239 名前:デフォルトの名無しさん mailto:sage [2016/04/05(火) 23:49:48.18 ID:wlptsMO2.net] chrome上で、javascriptで動的に作ったデータをダウンロードさせたいのですが このようなコードだと「0x80」ではなく「0xC2 0x80」の2バイトのファイルがダウンロードされます。 var blob = new Blob(["\x80"]); var link = document.createElement('a'); window.URL = window.URL || window.webkitURL; link.href = window.URL.createObjectURL(blob); link.download = "downloadfile"; link.click(); 0x7Fなら意図通り1バイトのファイルとなるのですが、解決方法ありませんでしょうか?
240 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 00:11:19.27 ID:QegkB/wb.net] >>236 JavaScriptのスレ、こういうのも多いよな。 何故だかは分からんが。
241 名前:デフォルトの名無しさん [2016/04/06(水) 03:03:48.81 ID:kRFLofHq.net] 質問なんですけどスレ違いならすみません 探したけどここが一番適切かなという気がしたので、そのときは誘導かけてもらえると嬉しいです 現在JavaScript勉強中なのですが、どうしてもES5の仕様が苦手というか混乱してしまう感じで、調べたところES6/CoffeeScriptなどが魅力的に思えました ただ、ES6はまだ対応が不十分なようですし、CoffeeScriptは初心者が手を出すのは推奨できないようなことも聞きます いずれにせよES5は一通り確認はするつもりですが、実際の開発にこれらを用いるのは推奨されがたいことでしょうか?
242 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 03:08:36.42 ID:q1HrDxSz.net] >>237 addclassはどのタイミングでやるんですか?readyですか?
243 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 03:45:58.88 ID:eDxTjoz1.net] >>235 何か勘違いしている気がするが、script-off時には表示してscript-on時には表示しないコンテンツ制御の話でscriptで非表示にすると一瞬見えてしまう問題への対処だぞ あなたの説明だと逆に読める
244 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 04:50:52.54 ID:SC9yOBng.net] >>242 何が勘違いだと思ったの?
245 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 04:53:21.71 ID:SC9yOBng.net] >>237 それコード量変わらなくない?
246 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 05:12:41.13 ID:7tA2KQf1.net] >>241 jQuery使うなら原則としてreadyでやらないといけなくなる。 だけどこの場合はそこまで遅らせる必要がない。 jQueryを使わなければそれよりも早い段階で処理を行える。 readyはDOM構築後なので厳密に言えば画面に表示されてから少し遅れて発動する。 >>244 addClassはHTMLかbody要素につける。 だからshowしたいものが増えても一つだけでいいし 何よりCSSで見た目を処理できる所が優れている。
247 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 07:58:50.48 ID:BFsTf7eA.net] >>239 漏れは、乃木坂46の755を見るけど、 一瞬前のページが見えるし、勝手にスクロールが動く。 最近の投稿も見れない この会社、バグが多すぎる >>240 RoRは、CoffeeScript だったかな?
248 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 10:34:16.16 ID:kxGSeBFy.net] >>240 ES6(今はES2015)はほぼchromeで動くしそのまま書けるよ。 個人的にはTypeScriptこそ初心者向きな気がする。 ライブラリの使い方をIDEが教えてくれるようになる。 ただしnpmの使い方とかnode.jsのエコシステムの勉強も必要になるけど
249 名前:デフォルトの名無しさん [2016/04/06(水) 12:39:08.17 ID:eaJ/kAxl.net] プレビュー機能のあるhtml5+javascriptエディタって無いですか? ブラウザアプリを作ってますが、ブラウザの切り替えが面倒です。
250 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 13:12:21.73 ID:y1UF9DzI.net] >>248 Electronでいっその事作ってみては?
251 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 14:05:21.20 ID:eDxTjoz1.net] >>245 そのやり方の場合、show() が入る余地がない https://jsbin.com/jotugupeha/edit?html,output ちなみに、CSS採用なら>>232 ,234でも良くて特にclassに拘る理由はないはず
252 名前:デフォルトの名無しさん [2016/04/06(水) 16:02:40.09 ID:kRFLofHq.net] 回答ありがとうございます >>246 RoRは未経験ですがRubyが好きなのであの雰囲気に惹かれたという部分はあります >>247 古いブラウザとかに配慮しろという話だったのでしょうか? 仕事でやるわけではないので、あまり気にしなくていい程度ならそれの方が好ましいですね TypeScriptも確認してみようと思いますが、その場合はVisualStudio推奨です?
253 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 17:29:23.15 ID:nw3yxtcq.net] TypeScriptを今から始めるのはねぇ…… まあいいか 今V8がES.nextを見据えた型付構文のテスト実装してきてるけど そんなにTSと差異ないしね ただし、デコレータやらジェネリックやら、 なんでもTS独自の機能使うときは きちんとES.next標準の流れに近いものか定期的に確認した方がいいね 変なのに慣れても仕方ないから
254 名前:デフォルトの名無しさん [2016/04/06(水) 18:35:37.93 ID:kRFLofHq.net] >>252 何か微妙だったりするのでしょうか? 新旧いろんな情報が交錯しててうまく判断できずにいたのですが、自己判断できるようになるまで余計なことしない方がいいとかならばそうします…… 一応最終的にはHTML5と組み合わせてアプリケーション作れると嬉しいなと思っているのですが
255 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 19:34:51.87 ID:u2n9JpiE.net] まあでも余計なことしないとか言ってると何にもできない、できるようにならないから 自己満足、少々分かったくらいで満足せず、 色んな情報を常に収集し、試して分別を付けていくほうが良いと思うよ
256 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 20:49:12.92 ID:eDxTjoz1.net] >>251 仕事でなくともIE11-をサポートしないのはお勧めしないが…。 「IE閲覧不可、Google Chrome, Firefox をインストールしてください。写真者お断り。」な注意書きを書く事に躊躇がないなら止めないが。 kangax.github.io/compat-table/es6/
257 名前:255 mailto:sage [2016/04/06(水) 20:55:04.63 ID:eDxTjoz1.net] × 写真者お断り ○ 初心者お断り(別のブラウザをインストールできるリテラシーのある人だけ閲覧して下さい)
258 名前:デフォルトの名無しさん [2016/04/06(水) 21:09:16.73 ID:kRFLofHq.net] >>254 ありがとうございます そうですね、無理のない程度に頑張ります >>255 あ……思った以上に厳しい すみません、あんまりブラウザごとの際に明るくなくて
259 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 21:14:41.83 ID:/OWN3IzC.net] 別にサポートしなくても普通全く見れなくなるわけじゃないんだし大げさじゃね モダンブラウザ前提で作って、レガシーブラウザでは動くとこだけ動けばOKってスタンスは全然アリだと思うよ
260 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 21:29:03.79 ID:eDxTjoz1.net] Windows 7,8,8.1の標準ブラウザであるIE11-をレガシーブラウザと称するのは抵抗がある。 Windows 7以上なら8.1にアップグレードしてEdgeへの乗り換えを促す事は出来るが。
261 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 21:40:22.43 ID:/OWN3IzC.net] IE11は出たばかりの時は確かにモダンと呼べるものだったが、 現在となってはレガシーとしか言いようが無いし、 仮にIE12が出たとしても自動アップデートされず標準の流れに付いていけないものは モダンブラウザと同等にはもてはやせず、まともに相手にできないだろう 「モダンブラウザのベースライン」に加えてそういうIE11とかを相手にするとそのとき倍労力がかかるのに加え、 知識を保持するという面でも相手にする個数倍労力がかかる 結局無難な面倒を見る落とし所は「モダンブラウザのベースライン」と「JS OFF」の2つ それにES5がギリギリ使えるIE9や古めのモバイルブラウザを加えて3つにするかどうか 最初からIE11を下限で開発することが決まってでもいないかぎり、 合理的にどうわけてもIE11はもはやモダン側には入らない
262 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 21:56:00.60 ID:iUuTyWAf.net] 開発者視点ではIE11がレガシーブラウザと称することもできようが、ユーザ視点ではそうもいかない。 機械音痴の人は他のアプリのインストール方法も知らんし、新しいUIになじめる自信がなくてWindows Upgradeも怖くてやらん保守派の人は大勢いる。 そもそも、Windows VistaはWindows8にUprade出来ないしな。
263 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 22:00:57.68 ID:kxGSeBFy.net] >>252 >TypeScriptを今から始めるのはねぇ…… 今からTypeScript始めるのってなんか問題あるかな? ES2015+型って感じでいいと思うけど。 RxJSもTypeScriptでライブラリ自体書き直してるらしいし React.jsもTypeScript使ったほうが書きやすい。 MacでもVisualStudioCode+TypeScriptの環境が使い勝手がいい。 型情報を集めるためのエコシステムがまだ不便なところがあるのが問題といえば問題かも。(TypeScriptは既存のJSライブラリを型付で扱うために別途型情報を管理する必要がある)
264 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 22:25:53.00 ID:qvzg5VgE.net] >>262 これからの一年で型付構文やらデコレータやらジェネリックが 標準にどういう仕様で入るか細かなとこまで見えてくる それによっちゃTSのそれらの仕様も一部古いものとされたり変更されるかもしれない とういうか、いくらTSがES.nextを見据えたものとはいえ、 それらの型に纏わる部分はTSが理想とする独自の世界を気づいているから 標準の軸とずれるのは間違いない だから今は取り敢えずそこら辺はおいといて、無難なES.nextのトランスパイラで我慢しておいて、 型周りの標準仕様が粗方定まってトランスパイラが受け入れるようになってから 使っていくほうが良いのではないかと思ってね
265 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 22:39:45.70 ID:QegkB/wb.net] >>246 いや、かなり紛らわしかったが、俺が言いたかったのは質問しっぱなしの馬鹿が多いということだ。 それはさておき、755見てみたが、まあ許容範
266 名前:囲じゃないか?こちらでは大した実害は無い。 このtwitterモドキ、何がいいのかは分からないが、これはおいておくとして、 上下逆だから、どうしても何らかの仕掛けが必要になる。 スクロールがずれるのは画像ロードがスクロール指定と非同期だからだ。 これを対策することは出来るが、スクロールがカクカクになるから今のほうがましだろう。 一瞬前画面が見える原因はXHRで中身だけ差し替えているからであり、 対策すると結局もっさりになるので大して意味が無い。 > 最近の投稿も見れない これはtwitter_widgetが上手く動作しておらずアップデートされないということか? こちらではよく分からない。 [] [ここ壊れてます]
267 名前:デフォルトの名無しさん mailto:sage [2016/04/07(木) 00:08:51.64 ID:6pgtk04X.net] >>263 常に最新の仕様を使いたいと思わずES2015の範囲で使っておけばいいのでは? ES2015の範囲ならTypeScriptはES2015+型という理解で問題ないと思う。 俺的には 静的言語によるIDE補完機能 > 最新の仕様を使いたい だけどこの辺は好みなのかな?ES2016で便利な仕様ってなんかあったっけ?
268 名前:246 mailto:sage [2016/04/07(木) 01:09:52.18 ID:pUEgfdfM.net] >>264 簡単には直せないんだね。ありがとう
269 名前:デフォルトの名無しさん mailto:sage [2016/04/07(木) 09:02:52.62 ID:X1sRymbk.net] >>265 何を使うべきかそれを全くの初心者が判断するのは厳しいだろう それとES仕様はもう2016が固まってる時期で 次は2017と次から次に進んでいる TSがES+αとして取り入れていたαの部分が その「型」も含めてそろそろ2017や2018の辺りで標準に取り入れられそうだし 仕様はもうすぐ今年度一杯で細かいとこまで確定して行きそうということが重大 まあ仕様も大事なんだがそれと同じくらい実装状況も大事 つまり生きた今の、これからのJavaScriptの感じというのが最も大事で基準になるものであって その点V8が型の実装を始めたというのは、 どこも実装に手を出してない他のES.nextの機能に比べると遥かに現実感が強く TSの立ち位置や価値観に対して、まだ軽微だが無視できない影響を与えていると言って良い
270 名前:デフォルトの名無しさん mailto:sage [2016/04/07(木) 09:08:24.98 ID:WOcBPxvv.net] 仕様より先に実装状況の把握 これで解決
271 名前:デフォルトの名無しさん mailto:sage [2016/04/07(木) 09:09:44.79 ID:X1sRymbk.net] あと型周りはO.oのようにGoogleが強く先行して推してきているものなので V8は標準に取り入れられるよりもずっと速く実装を仕上げてくるだろう O.oの件の反省がなければデフォルトで有効にしてくるくらいの勢いかもしれない O.oの二の舞いになるかどうかは見ものである
272 名前:デフォルトの名無しさん mailto:sage [2016/04/07(木) 19:09:45.36 ID:9u6CMKZB.net] O.oとは何でしょう?
273 名前:デフォルトの名無しさん mailto:sage [2016/04/07(木) 19:55:06.94 ID:yj5lmIW7.net] >>270 https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/observe www.html5rocks.com/ja/tutorials/es7/observe/
274 名前:デフォルトの名無しさん mailto:sage [2016/04/07(木) 21:19:11.33 ID:9u6CMKZB.net] >>271 ありがとうございます
275 名前:デフォルトの名無しさん mailto:sage [2016/04/08(金) 01:13:27.67 ID:zB1D6Ii9.net] 入力の検証を行いエラーがあればローカライズされたエラーメッセージのリストを返すようなWeb APIって変ですかね? クライアントコードとサーバーコードに同じような検証コードを2回も書くのが無駄な工数に感じるのでこんな事をしています
276 名前:デフォルトの名無しさん mailto:sage [2016/04/08(金) 01:47:47.44 ID:g+7B4ruN.net] >>273 それがnodeが出てきた一つの理由じゃないかな。 ところでロケール送ってメッセージそのものを返してもいいとは思うけど。
277 名前:デフォルトの名無しさん mailto:sage [2016/04/08(金) 08:43:38.59 ID:NMN4wPSn.net] >>273 変ではないが、クライアント側での検証は通信せずに検証出来るメリットがなくなっている。 一つずつ入力の度に検証するのならsubmitするまで検証結果が分からないという事態は防ぐことができるが。 どちらにしてもサーバサイドで検証アルゴリズムを持って行きたいのならサーバサイドからpattern属性に正規表現を埋め込んで適切なフォームを生成→JavaScriptで検証させるのが妥当じゃないかな。
278 名前:デフォルトの名無しさん mailto:sage [2016/04/08(金) 16:37:31.31 ID:Y8o95cYY.net] Javascript、jQuery、Railsでアプリ制作勉強中の初心者です。 jQueryで中のコンテンツを切り替え可能なタブを作って、タブをクリックして表示切り替えされる中のコンテンツを入れるdivの一つにWebエディタを実装したいのですが、 正常に機能せず、エディタ部分をクリックしても反応せず、書き込みができない状況でレンダリングされてしまいます。 エディタはJavascriptで書かれているace.jsです。 【環境】mac, Rails, local 【何をしたのか】 サンプルコードの、 #box divにace.jsを表示させようとすると動作せず、 #tabmenu ul liに置くと正常に動作します。 正常に動作しないエディタ部分の画像=>imgur.com/MhQjdbw 【エラーメッセージ】 Chomeのデベロッパーツールでこのようにエラー表示されています。 GET localhost:3000/dirname/src-noconflict/ace.js 404 (Not Found) 【期待する結果】 サンプルコードの、#box divにaceエディタが正常に表示され書き込めるようにしたいです。 正常に動作したエディタの状況=>imgur.com/EPokymv 【サンプルコード】 imgur.com/4NYKoYI jQueryのタブ切り替えが阻害要因のように思いますが、どのようにすればエディタが正常に機能するようになるのでしょうか?
279 名前:デフォルトの名無しさん mailto:sage [2016/04/08(金) 17:27:19.92 ID:pozyeBOI.net] function($) ← $を消す
280 名前:デフォルトの名無しさん mailto:sage [2016/04/08(金) 18:25:41.87 ID:KJJF2NFc.net] >>277 なぜ消すので?
281 名前:デフォルトの名無しさん mailto:sage [2016/04/08(金) 21:22:05.88 ID:Y8o95cYY.net] 276です。 解決しました。関係ないと思ってたCSSが影響してました。
282 名前:デフォルトの名無しさん [2016/04/09(土) 01:00:37.29 ID:pEHBzpIW.net] エラーではないので、テンプレートを使わず質問させて頂きます。 [ {title:'hogehoge'}, {title:'fugafuga'}, {title:'piyopiyo'}, … と続いていく配列で、それぞれのオブジェクトに通し番号(の要素)を一括で追加して、 [ {rank:1, title:'hogehoge'}, {rank:2, title:'fugafuga'}, {rank:3, title:'piyopiyo'}, …
283 名前:デフォルトの名無しさん [2016/04/09(土) 01:01:21.06 ID:pEHBzpIW.net] のようにしたい場合、どのように行うのが効率的(高速)なのでしょうか? 実際に内包するオブジェクトは数百個もあるため単純なループではすぐにブラウザがフリーズしてしまうのですが、Web Workerを使うほどのものなのか疑問に思い、質問させていただきました。 Web Workerを使うのが最も良いのであればそのまま使うのですが、標準の関数やjQueryに用意されている、もしくは別の方法があるのであれば教えて頂きたいです。
284 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 01:13:09.00 ID:tonuQmGl.net] >>281 数百個ごときならどんな方法でもフリーズなんてしない。 本当にフリーズするのなら他の部分がいろいろと糞なだけ。 最近多いけどね、こういう初心者。
285 名前:デフォルトの名無しさん [2016/04/09(土) 01:18:00.15 ID:pEHBzpIW.net] >>282 フリーズというのは数秒〜数十秒間画面が固まる、または応答なしのウィンドウが出るという状態を指していました。言葉不足ですみません… 処理時間が長いと画面に反映できない処理で使うため、画面が固まらない、かつ出来るだけ高速に行いたいのですが、最適な方法というものはあるのでしょうか?
286 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 01:36:40.47 ID:tonuQmGl.net] >>283 その動作はフリーズと称していい。 ただ、お前はJavaScriptの速度を勘違いしている。 JavaScriptはいわゆるスクリプト言語の中では最速だ。 その操作なら1msかからないはず。 それ以上かかるのなら、お前のプログラムがバグっているだけ。 で、俺が言いたいのは、初心者が「遅いんですけど」と言うときは大概バグでしかないということ。今回も。 そもそも数百個の配列なんて小さい方だ。(初心者的には大きいと感じるのは分かるけど) だからそのレベルの初心者なのを自覚してちゃんとデバッグしろということ。
287 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 01:48:15.06 ID:IbDbD1ux.net] 要するに配列の中身を少し編集してオブジェクトに変換したいってんなら 楽なのはArray#map、速度重視なら環境によるがforかwhileによるループ ただ>>284 の言うようにこのケースなら本来はほとんど一瞬で終わるはずだから 現在のやり方を見直したほうがいいと思う
288 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 04:37:41.51 ID:r3WiJsdm.net] そもそも速度求めるならオブジェクトなんて使うなよ .のコスト高いんだから
289 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 06:45:26.33 ID:r6y5A1ZI.net] >>284 お前は人間性に問題がある
290 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 07:17:21.95 ID:tonuQmGl.net] >>287 そんなんだからお前らはゆとりのままなんだよ ところで、ゆとり的には俺のどの言い方が気に入らず、どう言ってほしかったんだ?
291 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 08:44:32.02 ID:Q5Od8ZTh.net] >>280-281 while, Array#map の2択(おそらく前者が速い)だと思うが、titleのデータはどこから引っ張ってくる? 初めからrankを持つ静的データを定義するなり、サーバサイドで処理をさせるのは不可能? 2次元配列とか、フォーマットを変更することは出来ない?
292 名前:289 mailto:sage [2016/04/09(土) 08:47:15.84 ID:Q5Od8ZTh.net] >>280-281
293 名前:A番なら配列のインデックスがそのまま使えるのでは? [] [ここ壊れてます]
294 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 09:14:08.74 ID:H1is7YF7.net] manko = [ {title:'hogehoge'}, {title:'fugafuga'}, {title:'piyopiyo'}, … [ {rank:1, title:manko[0]}, {rank:2, title:manko[1]}, {rank:3, title:manko[2]}, …
295 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 09:16:16.71 ID:H1is7YF7.net] 訂正 [ {rank:1, title:manko[0].title}, {rank:2, title:manko[1].title}, {rank:3, title:manko[2].title}, …
296 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 11:14:18.39 ID:3zJg02z1.net] >>288 > ところで、ゆとり的には俺のどの言い方が気に入らず、どう言ってほしかったんだ? ゆとりじゃない人に、 ゆとり呼ばわるすることをやめることだねw そんなんだからいつも適当にあしらわれるんだよw
297 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 12:00:38.42 ID:tonuQmGl.net] >>293 ゆとりじゃないと言い張るつもりなら、それ相当の書き込みをしろよ。 俺から見れば、>>287 ,293 は典型的ゆとりの反応だよ。 技術的観点は全く無く、感情論で不満を述べているだけ。嘘や言い逃れだけ上手い。 旧世代はこの場合にこの反応は無い。 お前の回答ってどれなのさ?
298 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 14:00:31.47 ID:ovBUPKju.net] >>283 「フリーズする原因がrankの挿入処理にある」と切り分けできてる? rankの挿入処理を外して高速に動作するならわかるけど、そのコードを公開した方がクリティカルな回答が得られるかと
299 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 14:15:09.08 ID:uqse8tS2.net] https://jsfiddle.net/7s5apjkL/ Android端末でも画面がフリーズしなかった 既出だが、切り分けが出来てないんじゃないかね
300 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 17:35:50.57 ID:2XO/HUgQ.net] >>294 ねえねえおじいちゃん、ゆとりってなあに?
301 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 17:54:48.85 ID:3zJg02z1.net] >>294 俺からすれば、お前こそゆとりの反応に見えるんだがw 理由は「技術的観点は全く無く、感情論で不満を述べているだけ。嘘や言い逃れだけ上手い。」
302 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 18:34:16.31 ID:CDqAKEr+.net] ID:tonuQmGl は「質問者が初心者だからデバッグをしっかりやれ」を無駄に長々と説明しているだけ 前向きな考えはまるでないのだから放っておいてやれ
303 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 19:42:31.61 ID:VRMolwpG.net] この手の物で速度を気にするなら 大きな型付数値配列をメモリとして取って、 そこに読み書きするという形で全てを表現するといい ようするにasm.jsちゃんだ そこまでする必要が無いのであれば書きやすいどんな方法でも良いと言える
304 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 19:48:42.91 ID:nMheNy6L.net] またこの、ボンクラが答えだけ欲しい流れになってるのかよ。 答まで書いて理解して貰えなかったアホの事思い出すわ。 答まで書いて理解できなかった奴はまた答だけ聞きに来るんだろうな。 また聞きに来なくても、ああこれは似たやつだなって思えるように解説書いてるのに。
305 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 20:03:30.82 ID:nX2uL7WF.net] jsはなぜこんなにも互換性がないのでしょうか GUI部分に差異があるのはある程度仕方ないと思いますがインフラ関係ない部分に非互換性があるのは解せません
306 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 20:18:13.39 ID:0Bzp/bzz.net] 具体的にどこよ? そりゃ多少独自拡張があった時代もあるし、バージョンが違うのも当然あるが、 現在はコアの部分は一通り互換性取れてると言って良いと思うが
307 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 21:28:30.58 ID:3zJg02z1.net] >>302 > jsはなぜこんなにも互換性がないのでしょうか JavaScriptは多くの会社が作ってる。 こんな言語は他にはない。 一体何と比べてるのか? RubyとjRubyの互換性のなさよりは jsの方がずっと高い互換性があるだろう。
308 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 22:39:27.82 ID:tonuQmGl.net] 本日のゆとりおよび低脳 ID:pEHBzpIW = ID:H1is7YF7 ID:r6y5A1ZI ID:3zJg02z1 ID:2XO/HUgQ ID:CDqAKEr+ IDがころころ変わっているので何人かは同一人物のはず ゆとりはまず「正しい回答」をするところから始めろ。 文句だけ言うのではなくてね。 とはいえ、どうやらこのスレでは人間性に問題のない非ゆとり(自称)が回答してくれるらしい。 今後は知っていても様子を見ることにする。 あと、詭弁論法を使うのは止めろ。それは本当にお前らの為にならない。 結果的に足を引っ張り合っていることに気づけ。(長期的視点で) てか、ゆとりには「ゆとり」ってこんなに効くんだな。正直驚いたよ。 それから、ゆとりはまずJavaScriptの前に日本語をやり直したほうがいい。
309 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 23:13:29.34 ID:FC44HapC.net] よくここまで中身のない話を長々と語れるもんだな
310 名前:デフォルトの名無しさん mailto:sage [2016/04/09(土) 23:59:46.74 ID:tonuQmGl.net] 一応荒れている板に慣れてない奴らのために解説をしておく。 この状況で質問者が回収しに来ないってありえないだろ。 だから質問者はIDを変えて一生懸命俺を叩いている。 詭弁まで用いている。これはかなり悪質だ。 どうにも俺の回答、「明らかに見当違いだからさっさとデバッグしろ」が気に入らないらしい。 だとすると、普通に解答つけている奴はシロだ。 実際、回答している奴で俺に噛み付いてきている奴はいないだろ。 技術板でこういうおかしな荒れ方をするのはJavaScriptだけだ。 ほぼアフィカスだと思う。慣れてない奴は気をつけてくれ。
311 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 00:04:28.09 ID:k5ZTlTQG.net] >>280 その止まるというソースをまず出してみなよ >>307 失せろゴミ
312 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 00:05:29.49 ID:crqXdUCC.net] なんか、面倒なやつだな
313 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 00:06:05.67 ID:aYwa2P4c.net] 285だけど関わりたくないから触れなかっただけだよ 自分を妄言の根拠の一つに入れるのは本当に勘弁して頂きたい
314 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 00:17:27.35 ID:1TEKUIpj.net] こいつニュー速+でも荒らしてた奴だろ 周りとの技術レベルの落差に気づかずに噛み合わず、一人でゆとりゆとり言ってるからすぐ分かる
315 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 00:17:27.56 ID:ipc8Qm5p.net] >>307 最近はC++押しもひどいで
316 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 00:56:56.99 ID:jv2fHTjL.net] >>312 多分その「C++押し」って奴とは違うと思うが、 C++相談室がとんでもないことになっていたことは知っている。 ただ、俺はあれはありだと思ってるんだよね。 連中、基本的に相手の「技術的」穴に対して、 「俺のほうが詳しい」っていうスタンスでやたら攻撃的なわけだけど、 匿名掲示板で技術論議なんだからあれも一つの形だよ。よくもまあそこまでとも思うけど。 ここはクレクレアフィカス君が自分の望んだ回答(デバッグ済みのコード)が出てこないときに 煽って叩いて相手をたきつけてコードを出させようとしているだけでしょ。 自分で学ぶ気なんてなさそうだし、それ以前にコードも書いてないんだと思うよ。 そもそも日常的に書いていたら速度の見当くらいつくだろうし。 だから今回は結局コードなんて出てこないに1000ペリカ。 そもそもあれだけのことでフリーズするようなコードを書くほうが難しい。 単にフリーズするだけなら簡単だけど、 10回のループならサクッと終わらないといけないんだからね。 ところでC++相談室見直してみたら、ワッチョイなんだが、ここも次からそうしないか? てかあれ板限定ではなかったんだな。
317 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 01:24:54.95 ID:k5ZTlTQG.net] 良いね ワッチョイ入れたらお前も自分がいかに馬鹿だったか自覚するだろうしな
318 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 03:52:05.46 ID:aIGeP9fV.net] >>305 > IDがころころ変わっているので何人かは同一人物のはず 全く違う。 そういう「思い込みで文句を言う」ってところが ゆとりっぽいんだよな。おまえは。
319 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 04:21:27.07 .net] 人をIDで判断するのはやめてください!ヘイトスピーチ!
320 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 04:24:37.47 ID:TYHBJi84.net] 週に休みが半日多かったのと「思い込みで文句を言う」って関係有るのか? 相手に誠実な会話を期待するならこちらも誠実であるべきだよ。
321 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 07:23:06.28 ID:R8UfCYNB.net] ながながとゆとりを使って中傷して javascriptの話ししろよ いくらレスしても解決するわけもなくいつまでも煽りつづけるだけなんだろ これだから質問系スレには質問したくないと思われてるんだよ
322 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 07:31:48.59 ID:aIGeP9fV.net] ゆとりじゃないことが自慢です
323 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 09:25:12.46 ID:nxfYQog6.net] >>306 元々、このスレの中身はない
324 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 09:35:29.99 ID:x5LK7jRP.net] 一番マトモなスレはこっちだからな + JavaScript & jQuery 質問用スレッド vol.5 + [無断転載禁止]©2ch.net echo.2ch.net/test/read.cgi/hp/1452081417/
325 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 17:14:19.24 ID:x8V2YJyC.net] 荒らしが約1名潜伏しているだけでこのスレはまともな方だと思うが
326 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 22:29:15.24 ID:gp229ozf.net] jQueryスレは信者スレ 頭が固い人が常駐していて話が合わないわ
327 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 22:31:31.50 ID:2nCcxZVq.net] jQueryって最初はこりゃ良いやって思うけどだんだん使わなくなるよね
328 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 22:47:05.98 ID:jv2fHTjL.net] 本日のゆとり ID:k5ZTlTQG、ジョブチェンジ (= ID:pEHBzpIW = ID:H1is7YF7) (= ID:2XO/HUgQ)、アフィカス ID:aIGeP9fV (= ID:3zJg02z1 = ID:r6y5A1ZI)、アフィカス ID:1TEKUIpj (ID:CDqAKEr+) ゆとりには幼稚園児ほどの知能しかないから、お菓子さえくれれば大満足。 間違っていることでも、やさしく教えてくれさえすればいい。 そりゃ永遠とゆとりのままな訳だよ。ポストゆとりの出現で駆逐されることを願う。 同期XHRを教えるなんて明確な間違いだし、 今回も結局俺の「明らかに見当違いだからさっさとデバッグしろ」以上のものは無いだろ。 そりゃそうだ、これが正解なのだから。 まあ分かった、ゆとりにとっては間違った内容でも優しければ正解なんだよな。 歯磨きは面倒だからやらなくていい。 注射は痛いから打たなくていい。 勉強は面倒だからしなくていい。 非同期は難しいから書けなくていい。 デバッグは面倒だからやらなくていい。掲示板で煽ればデバッグ済みのコードが出てくる。 こんな価値観の奴がはびこれば国が滅ぶ。 出来れば自殺して欲しいね。それがお前らゆとりが出来る最大の貢献だよ。
329 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 22:53:20.51 ID:SsCYllss.net] 自殺教唆罪というのがあって、もしお前のそのレスでゆとりが自殺してしまったら、 お前は犯罪者になりかねないけど大丈夫?
330 名前:デフォルトの名無しさん mailto:sage [2016/04/10(日) 22:56:16.39 ID:6Gk/Jc3O.net] jQueryでいいと思うのはeach等の配列系メソッドかな HTMLCollectionやNodeListになぜ配列と同等のメソッドが定義されてないのか理解に苦しむ それ以外は独自拡張満載、未だにキャプチャリングフェーズ未対応、handleEvent未対応、標準APIとの動作の違い...etc 気になる現象が多数あるんだよな
331 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 04:15:11.76 ID:QsR4QMdK.net] なぜかというとそりゃ言語とは独立したものだからね。 下手に付けるといろんな言語との不一致で余計分かりにくくなる。 まあ最近のquery()とかが返すElementsならArrayを継承してるし、 NodeListもiterableにされる感じだし、 それでなくともArray.from()使えばいいだけだからね。
332 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 09:45:48.71 ID:ql5kNjs+.net] jQueryはJavaScriptの単なるライブラリなんだけど
333 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 10:09:39.80 ID:nkOUJN5N.net] 単なるセンスがないライブラリがより正
334 名前:m [] [ここ壊れてます]
335 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 11:21:43.35 ID:ZXdKwmPg.net] >>328 DOMとECMAScriptが別定義なのは理解してるが、「NodeListはStandard ECMA-262 6th Editionもしくは上位版のArrayを継承する」と定義して良かった気がしないでもない それでなくとも、Map.prototype.forEachのようによく使うメソッドだけでも配列とは別に定義して欲しかった query,Elementsの存在ははじめて知ったが、どの仕様定義? 使ってみたいんだが、該当仕様が見つからなかった
336 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 12:57:35.79 ID:nmed7NL6.net] JSはなんでも標準に要求するより自分で作った方が手っ取り早いね 車輪の再発明やオレオレライブラリが好きな人種にはすごくいい言語だ
337 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 14:15:42.99 ID:ORuOCkHy.net] しかしそれを読む他人に負荷がかかる
338 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 15:08:25.05 ID:/4tKcoWK.net] 車輪の再発明と言う表現を使う人が多いのはなぜ?
339 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 16:41:03.10 ID:jGs+gPDI.net] >>334 gugure baka
340 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 16:50:55.08 ID:ql5kNjs+.net] >>330 いや、JavaScriptにセンスがないから jQueryのようなライブラリが発生するんだが
341 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 17:11:13.08 ID:ExJ+musA.net] センスがあろうがなかろうがライブラリは作られる
342 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 17:17:01.76 ID:rdw4J+ev.net] >>324 > jQueryって最初はこりゃ良いやって思うけどだんだん使わなくなるよね そう? AngularJSやReactは導入するのが大変で ウェブアプリを作るならまだしも、 ウェブサイト、つまりHTMLにJavaScriptで軽く動きを つけるぐらいならjQuery使うのが楽だけど。
343 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 18:05:55.51 ID:3648G8MM.net] >>331 JSでArrayやビルトインクラスが真に継承できるようになったのはES6から。 ES6以前、それも大昔に定義されたNodeListをいまさらそのように変えるのは良くない メソッドが定義されているかで処理を分けるのはまだ表の方法とされているが、 それ以外の方法を使わなければならないのはダーティーさが増す。 よってArrayを継承する新たなメソッドが作られた。 作られたのだが、ブラウザ連中が何時までたっても実装に踏み込まず (ビルトインサブクラスの仕組みをDOMなど外部の環境から適応出来るようにするのは JSエンジンとDOM管理コード双方の大幅な改修が必要で手間) Firefoxに至ってはJS内に限ってもまだ完全なサブクラス化を提供しやがらないので この前ひとまずコミットアウトされた。 https://github.com/whatwg/dom/commit/10b6cf1ba02806220d5461a3bdb7939728b73635
344 名前:デフォルトの名無しさん [2016/04/11(月) 18:15:36.42 ID:oAFnNIvt.net] javascriptができればC++もできるようになりますか?
345 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 18:20:46.53 ID:ql5kNjs+.net] >>340 無理
346 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 18:43:57.62 ID:3648G8MM.net] JavaScriptが本当にできればエンジンのソースを読んだりするようになるのでできるようになる
347 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 19:58:27.61 ID:rf8a3oqm.net] var new_select = document.createElement("select"); var php = "<?php include(\"resist.php\") ?>" new_select.innerHTML = php; これだとPHPの記述がコメントになるんだけど どうすればいいの
348 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 21:43:59.89 ID:Dip4Tgpn.net] テキストノードにしたいならinnerHTMLじゃなくてtextContent
349 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 21:51:32.95 ID:/KA1eOwr.net] というか、 innerHTML ぐらい読めないのか?
350 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 22:58:33.39 ID:rf8a3oqm.net] テキストノードではなく <?php include("resist.php"); ?> ボタンを押すことで上をhtmlに追加して データベースから取得して表示するresist.phpを作動させるみたいなイメージで>>343 を書いたんだけど 他に良いやり方が思い付かない どなたか無知の僕にご教授を……
351 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 23:04:19.31 ID:Dip4Tgpn.net] サーバーとクライアントの区別が付いてないのかな 発想が大分おかしいからまずPHPがどういう仕組で動いているのか調べた方がいいよ 続くようならPHPの質問スレで聞いてね
352 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 23:07:07.59 ID:CbAg4Lxb.net] 1から勉強しなおしたほうがいい
353 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 23:09:08.63 ID:rf8a3oqm.net] ありがとうございました 勉強しなおします……
354 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 23:16:17.41 ID:XNNO/Nee.net] >>339 結局、>>328 の「最近のquery()とかが返すElementsならArrayを継承してる」は実装も仕様もないものを指していたのか
355 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 23:55:11.50 ID:ACs+zaq9.net] >>350 勘違いしてほしくないが、重要なのはNodeListはイテラブルにするに留めて Arrayを継承する別の何かを用意するというような方向性であり それから得られる、今はArray.fromを使うと良い、 将来的には[...list]がDOMを含む大体のArrayLikeの展開に使える立ち位置になるんだなということに始まる 様々なこれからコードを書いていく、またライブラリやフレームワークを作っていく上での指標であって、 メソッドが仕様に載ってるか載っていないかは些細なこと 実際仕様は「Old-style」の名残が残ってるように、Elementsの案は無くなったわけではなく水面下に潜っただけ あるないの1か0かではなく、各アイディアがどのような立ち位置かをメーリングリストやらを見て 大局的に把握しないと行けない
356 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 01:37:52.02 ID:gsam7bTJ.net] 将来はとか今はとか、そうやって コロコロ変わるからだめなんだよ。 jQuery等のライブラリを使えって言うのはそういうこと。 書き方は今と一緒でもバージョンが上がれば内部的に新しい書き方を使ってくれる。
357 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 06:57:04.68 ID:64alg/wn.net] >>352 それは勿論そうだが、それより一歩先の話をすると ライブラリを選ぶにも作るにも完全に気分の赴くままよりは、 これからの標準の流れに沿うものであるべきだと自分は思ってる 例えば2年くらい前ならPromiseが細かいメソッドはどうなるか分からないけど 振る舞いのタイプはもう分かっていたわけで、 それならjQueryのDeferredではなくA+系の方を使うかという選択ができる。 将来的には循環ができ皆で今の標準を作っていくExtensible Web構想が理想。 まあそれがしっかりするには東京オリンピックの頃までかかるだろうが、準備は今から必要。
358 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 09:27:07.71 ID:8rWfNdXR.net] 指向や実装は変化する 現時点で何がベターなのかが重要 Firefoxみたいにどんどんと落ちぶれるよ
359 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 10:24:12.73 ID:gsam7bTJ.net] >>353 > それならjQueryのDeferredではなくA+系の方を使うかという選択ができる。 せやな。jQuery 3.0のDeferredもA+と互換になるしな。 https://blog.jquery.com/2016/01/14/jquery-3-0-beta-released/ > jQuery.Deferred is now Promises/A+ compatible > jQuery.Deferred objects have been updated for compatibility with > Promises/A+ and ES2015 Promises, verified with the Promises/A+ > Compliance Test Suite. This meant we need some major changes to the .then() method: >>354 > 現時点で何がベターなのかが重要 ベターなものを変わっていくので、使い捨てアプリを作っているのでない限り、 変化させていくことが重要だよ。例えばjQueryもこのようにA+互換に変化した。 急に変化されることは難しいので、ゆっくり連続的に変化させていくことが重要。 言い換えると変化させていけるのであれば、すぐに切り捨てる必要もないんやで。
360 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 11:17:05.41 ID:pmgBJfny.net] 時代遅れになっても自分である程度手綱を握ってられる技術がいい そういう意味では jQuery は適度にコードも読めて楽だった
361 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 11:18:03.72 ID:9GLSOaWr.net] >>351 策定段階で仕様が削除されるのは良くある事だし、別にいいさ 問題は「なぜ削除された仕様を>>328 で持ち出したのか」 >>331 にわざわざ仕様書を調べる時間をとらせて申し訳ないと思わないのか
362 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 11:46:23.82 ID:FTpyWeJj.net] 仕様を作るのが仕事な人なら別に構わないが、 その他の多くの人は最新仕様を追っても消耗するだけ 最新仕様を使うことは目的じゃない。
363 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 12:09:30.61 .net] IE11で動く画面しか作っちゃいけないんすよ、うち
364 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 12:10:42.76 ID:vv/iXFzr.net] 「最新仕様を使うことは目的」とは誰も思ってないと思うが
365 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 12:15:39.55 ID:t+8zPvsS.net] 最新仕様を追う人は実装が安定していない事ぐらい分かっているから
366 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 12:33:51.88 ID:FTpyWeJj.net] そういう安定してないものを勧めないでください。
367 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 12:41:36.39 ID:t+8zPvsS.net] 誰か最新仕様を勧めてたか? 削除された仕様が存在するかのように説明したのは酷いとは思ったが
368 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 14:25:17.42 ID:zrhvNbq0.net] query/queryAll/Elements はこれか >>328 の確認不足だな https://github.com/whatwg/dom/commit/10b6cf1ba02806220d5461a3bdb7939728b73635
369 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 17:50:48.81 ID:YDME1+9m.net] >>357 そりゃここまでのやり取りの結果からすれば言葉足らずな部分もあったかもしれないけれど、 別に何かの証明をしているわけではないし、 1レスの返答内に少しも隙を作っちゃいけないってのは厳しすぎないか? そもそもこちらは一方的に何か正解のような物を押し付けて1レスで完結させようとしてたわけでもなく、 それに関する話題で話しかけたかったわけ。 こちらが言った事に対して>>328 が無視するかも知れないし、どこにどう食いついて来るかは分からない。 今回はElementsに食いついてくれて、それで仕様書を調べてくれて、見つからないという返事を返してくれた。 ああ、それなら自分がそれに関するより深い返答を返そうという流れは不誠実かい? まあ正直に言うとElementsで誘った部分もあったけど、それは悪意ではなくテクニックとしてやっただけだし 実は削除されていた!なんて知らんかって急遽偉そうに取り繕った誤算もあったけど 結果的に話題を展開することができて満足してるよ。スマンな。
370 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 18:13:30.66 ID:ac/sujZj.net] ここはJavaScript の質問スレッド JavaScriptについて語るスレッドではない 本当に仕様がないな バカ
371 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 19:16:35.13 ID:FTpyWeJj.net] >>366 > (10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。 これらはJavaScriptに関する意見だ。 何の問題もない。
372 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 19:43:27.82 ID:lq30kg7p.net] >>366 それはこの場面で使う決め台詞じゃないでしょ 客観的に見て阿呆は君だよ 質問形式が決まっててキッチリ一問一答が行われるスレならまだしも ただぼんやりと流れているのが人間である我々の現実だし 質問に対して議論してはいけないと決まってるわけでもないし もし間違いであるなら>>327 は荒らしも同然で、そういうレスを一切するなということになってしまう
373 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 21:43:49.65 ID:mC0fEeYI.net] >>365 あなたは>>339 で「Arrayを継承する新たなメソッド」とqueryなのかそれ以外の何かなのか分からないぼかした表現で誤魔化した >>351 の返答でようやくquery,elementsの事を指していたのだろうと想像がついた 間違いを犯してはいけないとまでは思わないが、間違ったら偉そうに取り繕う前に素直に訂正するのは当然だろう
374 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 22:27:14.03 ID:h5oBzMsU.net] 「Arrayを継承する新たなメソッド」 ってのはごまかしたわけではなく文字抜け 「Arrayを継承するクラス(Elements)のインスタンスを返すメソッド」 という方がより言いたいことにあっている すぐに気がつきはしたが真反対のことを書いたわけでもなく、補完してくれることに期待できるレベルだし、 先の理論で、別に隅々まで神経質に仕上げなくともこういう会話のやり取りで指摘されたら 付け加えてあげれば十分思い訂正はしなかった 自分が取り繕ったのは削除されたのを知ってた風に装ったことだが、 勘違いしてほしくないがごまかしたのとは違う、 自分が削除されてたのを知っていたかどうかは別に>>327 と始めた話の本質には関係がない つまり知っていたとしても自分の言いたいことに変化はないので、そこに関して間違ったわけではない だから削除されていたと知っていたとして話を一段落付かした。 これはテクニックであり、自分なりの「誠実さ」であり、ごまかしではない。 そして削除されてたと知っていたかどうかなどの話の展開になったので そこでは確かに「間違った」ので、真実を公開し、かるぅく謝罪した なぜかるぅくかはもう言わなくても分かるよな
375 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 22:28:06.16 ID:FTpyWeJj.net] どうでもいいことをグダグダ続けるなよ
376 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 22:29:23.74 ID:fnwI8WJc.net] そろそろ他の言語もブラウザに乗せようよ JavaScriptにはもうウンザリ
377 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 22:43:48.78 ID:FTpyWeJj.net] >>372 > そろそろ他の言語もブラウザに乗せようよ それをやったのはマイクロソフトだけなんだよな。 VBScript。他のブラウザはそういうことをやらなかった。 まあ単純に他の言語をのせるわけにはいかないからね。 セキュリティ的に言語標準でできることを制限しなければいけない。 例えばどの言語にもあるようなファイルの読み書きをブラウザ版では 使えないようにしないといけない。
378 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 03:28:48.11 .net] Luaとか組み込み言語として速いし簡単だと思うんすけどね 技術的などうこうより互換性とかセキュリティとか、テストの方が100倍大変なんでしょうね
379 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 07:42:05.79 ID:GgADnCL9.net] 今更何かを載せても仕方ないし、それに似合うだけの言語がないでしょ Web APIは今やJS依りになってきてるし それを解決しようとしたのがDartだったけど 結局JSを改良していくのと比べて然程メリットがないと分かった そういうAPIと関係ない部分を他言語で作ってwasmに変換してっていう時代は これから来る可能性はあるけど、メインはJSのままだろうね
380 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 08:16:28.15 ID:DCkaewxP.net] このまま生産性の低いjsに依存し続けるのは人類規模での損失 これからの世代に申し訳ない
381 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 08:36:54.94 ID:N3hRKpiT.net] >>376 生産性が低いのはお前なんですよwww
382 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 08:47:17.62 ID:OPbsDvyC.net] 言語によって生産性は変わらない。 タイプ数の違いや、改行の数の違いは 生産性には全く結びつかない。 言語によって生産性は変わらず ライブラリによって生産性は変わる。
383 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 08:49:52.79 ID:OPbsDvyC.net] CoffeeScriptはいい例だな 書き方が変わるだけで、生産性の向上には つながることができなかった言語
384 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 09:56:55.91 ID:DCkaewxP.net] それは嘘だね C#はJavaの3倍生産性が高い
385 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 10:11:47.50 ID:N3hRKpiT.net] >>380 そういう寝言は別に書かなくていいよ。
386 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 10:18:02.93 ID:zGtnPLFL.net] 生産性と標準ライブラリを混同しちゃいかんだろ。 まあ.net FWはかなり良いのは確かだけど、逆に依存したらえらい目に合うと思うよ。 1989/01/08変更のファイルが残ってるような言語で開発してるけど、 1/10に役所に提出する書類に間に合わせるのに、FWの出荷待つとか無理だし、それが間に合わないと客が潰れるレベルの損失出るとかヤバいよ。
387 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 10:56:57.38 .net] ASP.NETの検証コントロール(クライアントとサーバ両方やってくれる)とかSqlDaraSourceとか超楽
388 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 11:03:53.99 ID:OPbsDvyC.net] >>382 標準ライブラリの話はしていないよ。 標準じゃなくても良い。 ライブラリやフレームワークの有無で 生産性は大きく変わるが、言語の違いでは 生産性は殆ど変わらないって話。
389 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 11:25:41.89 ID:/y2OU546.net] >>379 その通りです。 自己満足の世界
390 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 12:48:23.40 ID:u+HfQS9z.net] Luaでは余りにjsに近い
391 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 12:51:05.79 ID:u+HfQS9z.net] cとclojureの生産性が同じ……?
392 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 13:00:30.95 ID:OPbsDvyC.net] >>387 十分なライブラリがそろっている状態では ほとんど変わらん。
393 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 13:02:14.51 .net] どんな言語でも「こんなんは書いた覚えあるわな」 ってコピペしてくるわけだから またはググってコピペだから あんまり変わらないかも
394 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 15:26:02.76 ID:SBj4pmRf.net] 1つの正規表現を複数回使うときでも 事前コンパイルみたいにnew RegExpで正規表現オブジェクトを作って使いまわしてコスト低減、ってあんまり見ないんだけど これなんか問題あったりする?あるいは効果なかったりする?
395 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 15:42:37.87 ID:DCkaewxP.net] 効果は実測するしかない クライアントJavaScriptはUIとネットワークの世界の言語だからほぼ無意味だろうね
396 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 17:53:01.31 ID:sN8Fln5r.net] >>390 new RegExpじゃなくて正規表現リテラルでも事前に作って使いまわしてコスト削減されるのは変わらないと思うけど、実装の最適化次第かな var i = 0, reg = /^p/, string = 'pattern'; while (i++ < 50000) { reg.test(string); }
397 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 21:10:15.40 ID:7l1cW0em.net] 正規表現オブジェクトのキャッシング最適化は各エンジンここ1年で実装が進んでるし まだまだこれからの分野
398 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 21:55:02.11 ID:g3cnBes/.net] JSON.parse( "/regexp-string/" )って必要性は感じないよね? オブジェクト内に含まれる正規表現が空オブジェクトに変換されてモヤッてしただけなんだけど。 Dateもいっそ"Date(〜)"でいいのではないかなと。
399 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 22:22:20.53 ID:7l1cW0em.net] JSONはJSのためだけのものじゃないしね そんなことを言ってたらキリがない
400 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 22:51:56.96 ID:g3cnBes/.net] >>395 たしかに、納得納得。
401 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 14:42:53.97 ID:J1EObEvz.net] JSかCSSかどっちが悪いのかわからないのですが スマホサイトでボタンを押すと画面外からメニューが出るものを作っています 具体的にはメニューのdivのpositionのleftを100%にして画面右にはずしておいて トップにfixedしたボタンをクリックでJSを動作させてleftを50%に書き換えてアニメーションさせてます ただこの書き方だとコンテンツの途中、スクロールした状態でボタンを押すと メニューが横から出てくると同時にコンテンツがトップまで戻ってしまいます コンテンツのその場でメニューを出したいのですがこれは何が原因で上に戻ってしまうのでしょうか?
402 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 14:58:42.01 ID:SPtT+geu.net] あ?
403 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 15:02:45.14 ID:JkBXQj6P.net] >>397 それはこっちかな (X)HTML/CSS/Dreamweaverの質問に優しく答えるスレ21©2ch.net echo.2ch.net/test/read.cgi/hp/1457595681/
404 名前:デフォルトの名無しさん [2016/04/14(木) 15:14:54.24 ID:bRZRCETq.net] javascriptで円を描きたいのですが、始点と終点の使い方について教えてください math.piという関数が出てきますが、これはいったいどういう意味なんでしょうか? 始点は0で終点は360という書き方でも円はかけると思うのですが、これを使う意味が分かりません。
405 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 15:17:35.51 ID:ettVKtfM.net] じゃあ使わないでください。
406 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 15:28:29.14 ID:J1EObEvz.net] 自己解決しました return false;書けば戻らなくなりました JSでしたね
407 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 15:28:37.11 ID:jsKKLFZF.net] >>400 あなたは0と360と言う情報から円周上のxとyを全て求めて円を描くことが可能なのですか?
408 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 15:35:54.28 ID:jrefqPbU.net] >>400 角度の単位に一周を360度(直角が90度)になる馴染みのある単位系をなぜ使わないのか? 馬鹿なのか、死ぬのか、とまでは言わないが不便ではないか。という意味のご質問ですか? 角度の単位の代表的なものは、ご存知の一周を360度とするものです。 これは昔、一年が360日と考えられていたころに発明された60をベースにした単位(60秒=1分、60分=1時間)です。 他に、直角を100(単位はグラディアントとかグラードとか言う)とする、10進数こそ正義、という単位もあります。 プログラミング言語でよく使われる単位はラジアンで、半径に対する弧の長さの比を使って角度を表すものです。 これを使うと一周は円周率(pi)の2倍になります。 三角関数というもの(サイン、コサインなどなど)があり、は画像系のプログラミングでもよく使います。 で、この単位系(ラジアン)の便利なところは、三角関数の微積分で、100とか360のような係数が出たり消えたりしないことです。
409 名前:デフォルトの名無しさん [2016/04/14(木) 15:36:41.24 ID:bRZRCETq.net] 上のものです 例えば、Math.PI*1.5としたら、円周率の1.5倍ということで半円ができるはずですが、 私の認識は間違ってるんでしょうか?
410 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 15:42:39.26 ID:jrefqPbU.net] >>405 扇型の中心角の話だとして、 半円(中心角180度)は、円周率の1倍、(piそのもの)になります。 円周率の1.5倍だと270度に相当し、円の3/4になります。
411 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 15:44:34.83 ID:SppvdaVa.net] >>405 普段使っている単位を使いたい気持ちはわかる 1.5が半円は間違えだ
412 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 16:22:09.26 ID:MIl70kQk.net] あんたらには無縁の話だろ
413 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 16:30:42.23 ID:XpoLc8eO.net] クラスの設計について教えてください。 最近になってコンストラクタ関数にもプロパティを生やすことができるのを知り(クラス変数?)、 名前空間も綺麗に整うため、生成したインスタンスを格納する配列をコンストラクタ関数に 入れようと思っています。 このような設計は何か問題が無いか、アドバイスをください。 簡単なコードではやりたいこともでき、関数もオブジェクトならば問題無いような気がするのですが、 大きなコードを書いたらどこかで詰むんじゃないかと、不安なんです。 var App = {}; App.Person = function(name, state) { this.name = name; this.state = state; } App.Person.prototype.setState = function(state) { this.state = state; }; // インスタンスを格納する配列 App.Person.persons = []; // インスタンスが共通で使うオブジェクト App.Person.state = { warking: 0, swiming:1, sleeping:2 }; // 配列に入れて様々な処理をしたい App.Person.doSomething = function (){ for (var i = 0; i < App.Person.persons.length; i++) { if (App.Person.persons[i].state === App.Person.state.swiming) { console.log("泳いでいるのは" + App.Person.persons[i].name) } } } App.Person.persons[0] = new App.Person("吉田", App.Person.state.warking); App.Person.persons[1] = new App.Person("村松", App.Person.state.swiming); App.Person.doSomething();
414 名前:デフォルトの名無しさん [2016/04/14(木) 17:00:55.17 ID:bRZRCETq.net] >>406 >>407 なるほど、円周率*1が180度を表すのですね。 ラジアンというものを調べてきます。
415 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 17:14:39.55 ID:IJnJnibC.net] javascriptにクラスはありません ないものの話をするのはやめてください
416 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 18:05:27.57 ID:fy/Ek9QC.net] 作ればあるし、作らなければないよ? 何を持ってないと言ってるの?
417 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 18:32:10.48 ID:h3KiwqeP.net] >>410 ラジアンって中学の数学じゃなかったっけ、、、 いや数Tだったか
418 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 18:33:19.79 ID:MIl70kQk.net] JavaScriptはクラス指向じゃないからな
419 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 18:34:38.19 ID:h3KiwqeP.net] って検索したら数Uか、、、
420 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 18:39:04.99 ID:yvAyG8T7.net] 高校数学だけど諸事情により弧度法学んでない人も多くいるよ 個人的な事情じゃなくて指導要領の問題
421 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 19:06:36.98 ID:Y0ioTXAP.net] 学んでないんじゃなくて記憶にないだけだろ おまえらどうせ授業なんて聞いてやしなかったんだろうし
422 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 19:44:33.43 ID:uLJO6cEY.net] >>411 ES6で糖衣構文が出来た https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/class
423 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 19:44:44.31 ID:yvAyG8T7.net] いやいや、高校教育はどんどん幅が広くなってきてて絶対やる必修科目/項目が減ってきてる 特に弧度法は10年近く数IIから数学IIIに移されてた。文系だと数IIIはやらないしそうでなくてもなおざりにされることはよくある さらに指導要領の遵守と教師の裁量と教師の趣味思考信条と授業の時間制限とまあ色々あるので… もちろん忘れてるケースも多いだろうけど本当に教わってないケースも意外とあるから知ってる前提は中学レベルくらいに留めるのが無難かもね
424 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 20:10:23.25 ID:IxiTROQl.net] つまりゆとりは中卒だと
425 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 20:12:34.54 ID:x1J0G4cD.net] 必死に濁してるようだが学んでないやつはバカとしか読めない
426 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 20:49:29.50 ID:6J+p43e3.net] >>409 関数のプロパティを使うのはいいが、設計思想に首を傾げるところが多い ・明らかにコンストラクタでないのに App (大文字から始まる名前) ・PersonにPersonのインスタンスを格納する不思議(Array.arrays = new Array をやってるようなもの)
427 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 21:09:35.74 ID:XgnJW0xC.net] >>410 中卒か?
428 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 21:13:45.57 ID:VgjdRSr0.net] いい加減、学歴を貶める不毛な行為は止めないか
429 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 21:18:13.65 ID:zHhupJkO.net] いったいどうすれば再利用可能な美しいコードを書けるの?
430 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 21:35:42.71 ID:/lnot8M5.net] ___ ハ,,,,,ハ.∩ / || ̄ ̄|| r( ゚ω゚ )ノ はーーーー! |.....||__|| └‐、 レ´`ヽ | ̄ ̄\三 / ̄ ̄ ̄/ノ´` | | ( ./ / ふゅーーーっ! ___ ∩ハ,,,,,ハ / || ̄ ̄|| _ ヽ( ゚ω゚ )∩ じょんッ!! |.....|| ゚ω゚ || /`ヽJ ,‐┘ | ̄ ̄\三 / ̄ ̄ ̄/ ´`ヽ、_ ノ | | ( ./ / `) ) ___ ∩/ || ̄ ̄|| _ ヽ|.....|| ゚ω゚ || 7 /`ヽJ ,‐┘/ ´`ヽ、_ ノ `) )
431 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 01:36:57.07 ID:paMmofV4.net] class構文は糖衣構文とは呼べない 全く新しい概念・機能が入ってるから
432 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 02:06:22.81 ID:goHZ67UE.net] >>409 クラスAのインスタンスの集合を、クラスAに収納しているの? そんなややこしいことをせず、単に普通のコンテナに入れればよいだけ。 そうしないと、便利なコンテナのメソッドが使えない
433 名前:デフォルトの名無しさん [2016/04/15(金) 06:58:43.14 ID:ypL17/E1.net] ラジアンでは2πが一周に相当するらしいですが、この場合のπとはいったい何のことでしょうか
434 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 07:00:36.03 ID:9VFl1+zB.net] おまえにもついてるだろ2つ
435 名前:デフォルトの名無しさん [2016/04/15(金) 07:25:02.81 ID:ypL17/E1.net] あっすいみせん 読み方が違うんですね
436 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 07:32:43.52 ID:RSig610Q.net] 日本語も間違ってますが
437 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 12:14:37.10 ID:nRwhaoVL.net] >>409 察するに、インスタンスを生成したときに、自動的に管理されるようにしたい? クラスで管理するのではなくて、管理するオブジェクトを別に作ればいいのでは? クラスで管理すると、複数系統の管理ができない。 例えばPersonが人を表すと仮定して、地球の人と火星の人を別に管理しようとしても出来ないでしょ。
438 名前:デフォルトの名無しさん [2016/04/15(金) 13:30:28.84 ID:ypL17/E1.net] デフォルトのjavascriptで円グラフというか、パックマンのような顔を描くことはできますか?
439 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 13:35:23.94 ID:sM2G3xuL.net] なんでできないって思うの?
440 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 13:41:22.10 ID:HeSDe1m1.net] パックマンの顔ってどこですか?
441 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 13:48:20.94 ID:cx5PLOSb.net] >>434 デフォルトのJavaScriptではできない。 ブラウザのJavaScriptならDOMあたりを使ってできる。 >>435 なんで出来ると思ったの?
442 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 13:53:37.43 ID:gXCAJEC6.net] 前に見たことがあるヤツはこれ使ってた google.visualization.PieChart
443 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 14:02:06.59 ID:q0YL4+kw.net] >>434 デフォルトのjavascriptとは?
444 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 14:07:54.02 ID:cx5PLOSb.net] そりゃクライアントでもサーバーでも共通して使えるものが JavaScriptだろ
445 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 14:14:43.47 ID:gq7S3zH1.net] なんで質問に対してみんな威圧的なの?
446 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 14:22:28.54 ID:Nh0RiUpt.net] 揶揄が含まれる質問するから
447 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 14:54:23.01 ID:RMsg6cvq.net] 質問ばっかしてるから嫌われるんだよ 少しはてめえでがんばれや
448 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 15:02:42.56 ID:wfLLyc7m.net] >>441 内容のある回答で答えている人はみな穏やかですよ >>443 のような粗野で下卑た方とは違います
449 名前:デフォルトの名無しさん [2016/04/15(金) 16:05:48.54 ID:ypL17/E1.net] >>437 edu.happy-kakurembo.com/entry/51 回答ありがとうございます。 このページの最後あたりのパックマンの絵は、arcに対してどのような指定をすればいいんでしょうか?
450 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 18:33:26.08 ID:MBFKaPoJ.net] >>444 お前は本物の下種
451 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 20:56:44.07 ID:CgWnf6JN.net] >>427 あったっけ?
452 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 21:25:34.80 ID:YAV9sBDZ.net] extends時のsuper周りかな? HomeObject、this未初期化、NewTargetとか。
453 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 23:12:26.62 ID:goHZ67UE.net] >>445 ブラウザ上でのお絵描きは、HTML5のCanvas を使うのが一般的。 Canvasを調べたら?
454 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 23:38:52.79 ID:cx5PLOSb.net] 果たしてCanvasはデフォルトのJavaScriptといえるのだろうか?
455 名前:デフォルトの名無しさん mailto:sage [2016/04/15(金) 23:42:08.84 ID:XOash53W.net] 十中八九次も質問で返ってくる
456 名前:デフォルトの名無しさん mailto:sage [2016/04/16(土) 00:22:55.74 ID:3KgdSRGk.net] >>422 ,428,433 遅くなってすいません 助言に従ってインスタンスは管理用オブジェクト、あるいはコンテナに 入れてそっちでいろいろやろうと思います。 コンストラクタ以外の1文字目大文字は今までこっちの方がわかりやすいと思って 貫いていたのですが、Googleなどのスタイルガイドは小文字を推奨しているので これも止めることにします。 独善的な部分が多くあったみたいで、どの指摘も参考になりました。 ありがとうございます。
457 名前:デフォルトの名無しさん mailto:sage [2016/04/16(土) 02:48:50.71 ID:MfNAX89g.net] CSSの話題はここでいいんですか?
458 名前:デフォルトの名無しさん mailto:sage [2016/04/16(土) 03:10:29.72 ID:iaL+2UmD.net] はい
459 名前:デフォルトの名無しさん mailto:sage [2016/04/16(土) 03:20:43.40 ID:JpTn0h26.net] >>409 ,452 ここでは話にならないと思ったら以下へ。 echo.2ch.net/test/read.cgi/tech/1449440793/
460 名前:デフォルトの名無しさん mailto:sage [2016/04/16(土) 07:16:19.11 ID:9WyxoOSE.net] >>455 Web制作板で批判が集中して「話にならん」といってプログラム板に逃げた人が立てたスレ 仕様に疎いようでまともなレスも「おまえはわかってない」で一蹴するような人だからお勧めしないな
461 名前:デフォルトの名無しさん mailto:sage [2016/04/16(土) 08:31:06.50 ID:SqNX4mZ2.net] > textContentってquerySelectorで引っかけられないよね? echo.2ch.net/test/read.cgi/tech/1449440793/65 この人いろんなスレで同じ事を聞いてない? >>214 で答えが出ているのに学習能力のない人だなー
462 名前:デフォルトの名無しさん mailto:sage [2016/04/16(土) 13:50:59.55 ID:JpTn0h26.net] >>456 > Web制作板 以下を正しいと主張する連中ね peace.2ch.net/test/read.cgi/hp/1444186237/579 peace.2ch.net/test/read.cgi/hp/1448293871/88 判断は各自でご自由に 経緯もその前後で分かるはず そして他スレが流れ出すとWeb制作板には幼稚園児が沸くところも同じ
463 名前:デフォルトの名無しさん mailto:sage [2016/04/16(土) 13:59:06.33 ID:eCi0HCfm.net] 他所のいざこざ持ち込まないで貰えませんかね
464 名前:デフォルトの名無しさん mailto:sage [2016/04/16(土) 14:04:05.19 ID:bDnIkDuW.net] 本人だからほっとけよ
465 名前:デフォルトの名無しさん mailto:sage [2016/04/16(土) 15:44:51.07 ID:z5NEAFo4.net] >>458 後者は俺のレスだがなんかおかしいか? superを使える場面ならわざわざ展開しなくとも せっかくだからsuper使ったほうが良いだろうと 至極当たり前なことを言ってるだけなんだが。
466 名前:デフォルトの名無しさん mailto:sage [2016/04/16(土) 23:57:06.24 ID:R1w7ejAd.net] 頑張って前後を読もうとしたけど長文過ぎて諦めた
467 名前:デフォルトの名無しさん mailto:sage [2016/04/17(日) 02:50:29.74 ID:9ampxFQS.net] まあいつものパターンでしょ。 あくまで性質・概念・思想で物を言う者と、実務で物を言う者の食い違い。 つまり、JSのクラスシステムについて、今どう認識できるかという話と、どう書くべきかという話がごっちゃになってる。
468 名前:デフォルトの名無しさん mailto:sage [2016/04/20(水) 19:48:18.67 ID:Lz+3WzGz.net] スレ違いすいません photoshop上でラスタライズされた状態の平行四辺形オブジェクトの 各頂点の座標を取得出来ないか質問したいのだけれど jsxについての適当な質問スレッド教えてください。。。orz
469 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 22:25:52.33 ID:po+YH9ZN.net] <script type="text/javascript"> function checkdiv( obj,id ) { if( obj.checked ){ elem = document.getElementById(id); elem.style.backgroundColor='red'; } else { elem = document.getElementById(id); elem.style.backgroundColor='green'; } } </script> <input type="checkbox" checked="checked" onclick="checkdiv(this,'para')" /> <div id="para">表示</div> こんな感じでチェックボックスのOnとOffで背景色が代わるようにしたんだけど、 checked="checked"で最初からチェックが入った状態の時もそれに対応する色にできないだろうか?
470 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 23:35:15.20 ID:ReA7Xa9U.net] そういうのはCSSの役目です
471 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 23:50:48.23 ID:X/7QzBzM.net] >>465 input.defaultChecked
472 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 23:52:12.99 ID:po+YH9ZN.net] >>466 CSSで先に定義しておいてJavaScriptで直すということでしょうか?
473 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 23:55:31.27 ID:po+YH9ZN.net] >>467 これなら行けそうです。 ありがとうございます。
474 名前:デフォルトの名無しさん mailto:sage [2016/04/22(金) 00:56:04.95 ID:4mUicHSB.net] いやそれcssのセレクタだけでできるだろ… input[type="checkbox"]+#para { background-color:red; } input[type="checkbox"]:checked+#para { background-color:green; }
475 名前:デフォルトの名無しさん mailto:sage [2016/04/22(金) 01:59:59.83 ID:DlNhB7g+.net] :checked は IE9+ で利用可能なので実用圏内ではないかね caniuse.com/#feat=css-sel3
476 名前:デフォルトの名無しさん mailto:sage [2016/04/22(金) 08:15:14.68 ID:DIThdNQ9.net] むしろこれを使わないと言ったら CSSに親でも殺されたのかと疑うレベル
477 名前:デフォルトの名無しさん mailto:sage [2016/04/22(金) 08:27:03.15 ID:2EQFG1P2.net] 僕のパパはフロントエンドエンジニアなんだ 毎日朝早くから夜遅くまでCSSと戦っていた そう過労死で亡くなるその日まではね
478 名前:デフォルトの名無しさん mailto:sage [2016/04/22(金) 08:50:00.81 ID:o7fkiimI.net] ブロントエンジニアにみえたじゃねーか殴るぞ
479 名前:デフォルトの名無しさん mailto:sage [2016/04/22(金) 09:30:42.89 ID:4UoNuspO.net] 僕のパパは○○エンジニアなんだ 毎日朝早くから夜遅くまで○○と戦っていた そう過労死で亡くなるその日まではね >>473 あなたの「好きな」ものを入れてくださいw
480 名前:デフォルトの名無しさん mailto:sage [2016/04/22(金) 09:50:04.46 ID:Wc1XF5nd.net] ┏━━━━━━━━━━━━┓ ┃ なまえをいれてください. ┃ ┗━━━━━━━━━━━━┛ . ┏━━なまえ━━┓ . ┃ きちがい .┃ . ┃  ̄ ̄ ̄ ̄ .┃ ┏━━━━━━━┻━━━━━━━━┓ ┃あ い う え お は ひ ふ へ ほ .┃ ┃か き く け .こ ま み む め も ┃ ┃さ し す せ そ や ゆ .よ ┃ ┃た ち つ て と ら .り る .れ ろ ┃ ┃な に ぬ ね の .わ を ん ┃ ┃っ .ゃ .ゅ ょ ゙ ゚ もどる.l>おわり.┃ ┗━━━━━━━━━━━━━━━━┛
481 名前:デフォルトの名無しさん mailto:sage [2016/04/22(金) 10:32:43.47 ID:dFG2RycI.net] >>470 できました。
482 名前:デフォルトの名無しさん mailto:sage [2016/04/23(土) 03:21:55.64 ID:EfkjAa5E.net] jQueryの質問で恐縮ですが、気になることがあるので教えて下さい。 CSSの:hoverとjQueryのon操作(マウスオーバーなど)って似たようで違うんですかね? 例えば、CSSで:hoverを適用していたのに、jQueryでon操作をすると、CSSのhoverが 無効になるということがありました。
483 名前:デフォルトの名無しさん mailto:sage [2016/04/23(土) 08:19:57.77 ID:16xisiTl.net] >>478 CSSは詳細度の高いスタイルが優先されるからjQueryコードの処理内容を読むべし https://triple-underscore.github.io/selectors4-ja.html#specificity-rules
484 名前:デフォルトの名無しさん mailto:sage [2016/04/23(土) 15:09:16.70 ID:EfkjAa5E.net] >>479 ありがとうございます。読んでみましたが、特に解決しません・・。 ウィンドウサイズを可変したらメニューが変わるというのを作っているのですが、 なぜかclickが連続して2回実行されるんですよねぇ。 e.stopPropagation();を入れたりしてるんですが。 (clickして要素が開閉するやつです。toggle()を使っています) もう少しソースがまとまったらまた質問させていただきます。
485 名前:デフォルトの名無しさん mailto:sage [2016/04/23(土) 15:23:21.83 ID:dqBuSyui.net] clickイベントを2回与えてるからじゃないの?
486 名前:デフォルトの名無しさん mailto:sage [2016/04/23(土) 17:29:56.78 ID:EfkjAa5E.net] 自己レスですが、on、click内で $(document).on('click', '.toggle', function(e){ $("+ul", this).toggle(); e.stopPropagation(); // これは駄目 e.stopImmediatePropagation(); //これだと1回になる }); こんな感じで行けました。 同じようにclickがなぜか2回実行される方は試してみてください。
487 名前:デフォルトの名無しさん mailto:sage [2016/04/23(土) 21:29:49.04 ID:hIFK+dKK.net] >>482 Firefoxで、エレメントに紐付いてるイベント見て、2つ以上ついてたら、自分がonしている所か、jQueryをミニファイされてない方使ってそのonにブレークポイント置いて予想外のonしてないか確認すれば? お前のソースの事はお前にしかわからんのだから。
488 名前:デフォルトの名無しさん mailto:sage [2016/04/24(日) 10:16:17.66 ID:C+cT95fe.net] >>482 > e.stopImmediatePropagation(); //これだと1回になる これで1回になるなら>>481 の指摘通り、同じ要素に2回以上の click イベントを定義するコードを書いてる 対処療法で済ませず、コードを読み直してバグを修正した方が良い
489 名前:デフォルトの名無しさん mailto:sage [2016/04/24(日) 10:30:55.32 ID:H9KkWHxX.net] >>484 いいじゃなか ドヤ顔で自己満足してるんだから
490 名前:デフォルトの名無しさん mailto:sage [2016/04/24(日) 12:31:48.88 ID:yPs3jUb8.net] 原因の理解を放棄し、場当たり的な修正しかしない時点で今後も同じバグを作り続けると思うよ
491 名前:デフォルトの名無しさん mailto:sage [2016/04/24(日) 12:58:55.52 ID:RNhCJQSk.net] 場当たり的なプロジェクトならそれが正解 保守も自社がやると決まっているなら場当たり的な対応はしないけどね
492 名前:482 mailto:sage [2016/04/25(月) 02:48:54.21 ID:MdSMyYZD.net] 皆さん色々とご指摘ありがとうございます。 短いソースで同じ状況を再現できたので記載します。 ■jQueryのバージョン:1.11.3 ■scriptの内容 jQuery(document).ready(function ($) { $(window).on('load , resize', function () { if (window.innerWidth <= 480) { $(document).on('click', '.toggle', function(e){ $(this).next().slideToggle(300); }); } }); }); ■styleの内容 .sub { display:none;} ■HTMLのbodyの内容 <div class="main"><a class="toggle">メイン</a><div class="sub">サブ</div></div>
493 名前:482 mailto:sage [2016/04/25(月) 02:49:24.22 ID:MdSMyYZD.net] ■制作の意図 レスポンシブでブラウザウィンドウサイズの切り替えによって、 scriptの内容が変化する物を作っています。上記はスマホ用の部分のみ記載しています。 ■不具合の手順 1:横480px以上の大きさ(例えば、1024*768)のウィンドウサイズでファイルを開く 2:ウィンドウサイズを480px以下にする 3:メインをクリックする→サブが表示される。またクリックすると閉じる(開閉動作) 4:ウィンドウサイズを480px以上にする 5:またウィンドウサイズを480px以下にする 6:もう一回、メインをクリックすると2回動作されてしまう(1回のクリックで、閉じて閉まる) デバッグを見てもいまいち原因が理解できないのですが、 どこに問題があるか分かりますでしょうか?
494 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 03:30:02.07 ID:Ps5j2E75.net] 素人目にはonResizeごとにイベントを上書きじゃなくて追加してるんだから当たり前に見えるんだけど なんなら泥臭く$(window).on('load , resize', function () { 直後にフラグ確認を仕込めば1回が保障されるんでないか
495 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 04:01:26.78 ID:wavxOtJH.net] >>490 > 直後にフラグ確認を仕込めば1回が保障されるんでないか やめろw フラグを使ったら負けだと思え。 一般的にイベントハンドラっていうのは 起動時(onload時)に全部つけてそのままにする。 その後は追加も削除もしないようにする。
496 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 04:05:25.79 ID:wavxOtJH.net] >>489 作ってるときは、かっこよく見えるんだよなぁw slideToggle使うのやめれ。 CSSのメディアクエリーだけで完結させろ。 スライドするとかっこよく見えるんだろうが、 ウインドウのサイズ変更(縦横変更)なんて 通常は滅多にやらない。 作ってるときは、頻繁に変えるから サイズを変えたときに、かっこよくしたいと思うのだろうが、 アニメーションなんかせずにぱっと変えたほうがいい。
497 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 10:11:52.96 ID:8V9apdt+.net] >>488-489 >>490 の指摘通り、新しいclickイベントハンドラが追加(上書きではない)されるのが原因 上書きさせるなり、上書き処理そのものが必要なロジックに変更すればいい オリジナル(>>488 ) https://jsfiddle.net/smo4v6ae/ 関数宣言(上書きされず) ※addEventListenerなら上書きされる https://jsfiddle.net/smo4v6ae/1/ off->on(上書きされる) https://jsfiddle.net/smo4v6ae/2/ clickだけ(上書き不要) https://jsfiddle.net/smo4v6ae/3/ jQuery#onは同じ関数オブジェクトを指定しても上書きしない時点でDOM Eventsよりも劣るな(これはバグじゃないのか?) あなたの要件はこれで解決されるが、ウインドウサイズを480px以下にリサイズし、slideToggleで要素を隠した後にウインドウサイズを481px以上にリサイズすると隠された要素を表示する手段がなくなるな そう難しくないので回避する手段を自分で考えてくれ
498 名前:493 mailto:sage [2016/04/25(月) 10:26:03.11 ID:8V9apdt+.net] >>488-489 >>492 の指摘通り、メディアクエリの方が遥かにスマートだな slideToggle も transition を使えば実装可能だろう https://developer.mozilla.org/ja/docs/Web/CSS/CSS_Transitions/Using_CSS_transitions toggle処理はちょっと面倒だが、:checked を使えば可能 input[type=checkbox] を使うか、aria-checked を使うかは迷いどころかもしれんが https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_checkbox_role あと、<a class="toggle"> は止めたほうが良い リンクでない要素にa要素をつけるぐらいならspan要素でも使ったほうが良い
499 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 10:39:06.04 ID:+thJ1HWA.net] 根本的にイベントの扱い方の問題 >>488 見たらわかると思うけどねw
500 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 11:03:57.31 ID:sTr8T40l.net] >>495 質問者以外は皆分かってると思うよ
501 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 11:13:49.93 ID:Vb9mflyV.net] >>492 > ウインドウのサイズ変更(縦横変更)なんて > 通常は滅多にやらない。 メディアクエリを使うならウインドウリサイズにも対応するので主張が矛盾してる
502 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 12:21:02.08 ID:SIfnh3qZ.net] >>488 on複数回呼んでるじゃねえかw onは、イベントハンドラを追加する、って関数だからな。 resize発生する度にイベントハンドラが増えていってるよ。 readyで、リサイズのイベントハンドラ足すんじゃなくて、 clickのイベントハンドラ足して そのclickのハンドラの中で幅を判定してなんなりしろよ。
503 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 12:25:10.40 ID:+thJ1HWA.net] >>488 基本的なことを理解すべき $(function() { $('a.toggle').click(function() { if ($(window).innerWidth() <= 480) { $('div.sub').slideToggle(300); } return false; }); });
504 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 12:36:19.71 ID:+thJ1HWA.net] 飯食いながらだったので抜けてので、追記 $(function() { $(window).resize(function(){ $('div.sub').hide(); }); $('a.toggle').click(function() { if ($(window).innerWidth() <= 480) { $('div.sub').slideToggle(300); } return false; }); });
505 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 12:38:13.10 ID:SIfnh3qZ.net] >>493 アホか。追加で良いんだよ。 匿名関数をその場で宣言してるなら別の関数だし、 同じ関数を複数回適用したい時に中でカウンタ持つはめになるじゃん。 設計の是非はおいておいて、範囲指定と、要素で絞ってonかけたいとかあるっしょ。 リスト全体にhoverでフォントサイズを1つ大きく、要素指定でもhoverでフォントサイズを1つ大きくってしとけば、わかりやすい法則性でフォントサイズ制御したりできんじゃん。 one使え。
506 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 14:24:44.11 ID:kKT6Zxsu.net] >>498 w
507 名前:482 mailto:sage [2016/04/25(月) 15:45:16.13 ID:MdSMyYZD.net] 皆さん、色々とありがとうございます。 >>500 のソースを見る限り、resizeの中にclick操作を入れたので、 複数回呼ばれる形になったんですかね? この書き方だと何回も実行されませんでした。 あと、on使ってるのは、click(functionよりもon('click'って書き方にしろ ってのをどこかで見たのでそうしていたのですが、 これも使いどころによって正しくないみたいですね。 皆さんのレスを参考にもう少し勉強してみます。
508 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 21:46:02.92 ID:JSGjZ52R.net] >>503 onでもええやで
509 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 22:02:03.57 ID:Ps5j2E75.net] >>503 俺もえらそうなこと言えるようなたいした人間じゃないが いったんjqueryから離れて基礎を学び直すのをマジおすすめ
510 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 23:02:39.46 ID:D+WslEY/.net] >>497 > メディアクエリを使うならウインドウリサイズにも対応するので主張が矛盾してる リサイズっていうのは、サイズを変えることだ。 メディアクエリを使うのはページが表示された時の サイズに応じた処理をするためだ。 初期のサイズであって、リサイズのためではない。 だから主張は矛盾していない。 ウインドウのリサイズなんてめったにしないだろ
511 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 00:25:14.44 ID:YAhU7UJr.net] >>506 それはあなたがリサイズのユースケースを想定していないだけだ Windowsタブレットではマルチウインドウが標準だし、そろそろAndroidにもマルチウインドウが登場する ウインドウを全画面から2画面に分割した場合、メディアクエリが発動する デスクトップOSでも同じ現象が起きる
512 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 09:15:49.75 ID:ZTlcFrw8.net] Windowsが標準w
513 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 11:14:53.22 ID:v8OmTco7.net] 今時、マルチウインドウなんて当たり前だろうに想像力の乏しい人だね
514 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 11:19:29.88 ID:x636ghAj.net] 俺はリサイズよく使うよ 解像度が違う別のディスプレイに移動させるときとかね
515 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 21:12:17.34 ID:gA9V/byj.net] PCモニタのアスペクト比を16:9にしてからリサイズを良く使うようになったな 4:3の頃はまず使わなかった(モニタが小さかったのも一因だろうが)
516 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 22:22:59.39 ID:swW8g96r.net] >>507 お前、一つのページを見ているときに マルチウインドウで、サイズを変えるのか? もう一回聞くぞ。 マルチウインドウを使うかどうかじゃなくて、 サイズを変えるのか? 小さい画面で使うのはサイズ変更じゃない。 サイズ変更した状態でページを開いているだけだ。 今話しているresizeイベントでスライドするという処理は 「ページを開いた後でサイズを変更する」という一連の動作を した時にだけ発動するものだ。 しないだろお前?
517 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 22:24:34.54 ID:swW8g96r.net] >>507 > それはあなたがリサイズのユースケースを想定していないだけだ リサイズのユースケースがないなんて話はしていない。 リサイズ時にアニメーションして欲しいとは思わないって言ってるだけだ。 作っている方は何度もリサイズして実験して満足がいくものをとか思ってるかもしれんが、 見る側からしたら、ウインドウのリサイズなんてまずしない。
518 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 22:27:14.76 ID:sgDROvum.net] >>512 >>507 を読み直したら? それとも、あなたは「ウインドウを全画面から2画面に分割」する動作をしないといいたいのかな
519 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 22:38:30.96 ID:A0x7AT0j.net] >>512-513 は多分、デスクトップOSしか想定していないから「画面の分割なんてするわけねーだろ」と一蹴する気がする タブレットを使ったことがないんだろ
520 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 22:52:00.82 ID:aeiDD/mA.net] >リサイズ時にアニメーションして欲しいとは思わないって言ってるだけだ。 こんなの書いてる時点でどうにもならない
521 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 22:56:43.65 ID:7RJVkgnK.net] というか、リサイズ時にアニメーションって 一体なんのこと言ってるの?
522 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 23:08:56.30 ID:A0x7AT0j.net] >>517 多分、>>493 が指摘した問題への対策じゃないかな slideToggle で隠れた要素がウインドウを481px以上にリサイズした時に表示する手段がなくなるので予め隠れた要素をアニメーションで表示させておく と思ったけど、「リサイズなんてするわけねーだろ」の人だったね ホント何なんだろ
523 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 23:15:10.53 ID:m+yPBzkk.net] 「480px以下にリサイズ後に.toggleをclick時にアニメーション」を省略して「リサイズ時にアニメーション」と説明したんじゃない? 日本語が不自由なだけな気がする
524 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 23:25:48.62 ID:oZATkmH1.net] 日本語が不自由といえば>>501 もわけがわからんかったな > アホか。追加で良いんだよ。 「何が」追加で良いのか分からん 「resize時にclickイベントハンドラが追加で良い」なら要件を満たせてないのであり得ない 「https://jsfiddle.net/smo4v6ae/1/ のjQuery#onが追加で良い」なら後半のhover云々の説明との整合性がとれん jQuery(element).on('click', handler); jQuery(element).on('click', handler); jQuery(element).on('click', handler); element.addEventListner('click', handler, false); element.addEventListner('click', handler, false); element.addEventListner('click', handler, false); イベントハンドラが3回追加されて便利な状況がさっぱりわからん こんなことやるならhandlerの中で3回繰り返した方がよっぽどいい
525 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 23:48:56.02 ID:swW8g96r.net] >>514 > それとも、あなたは「ウインドウを全画面から2画面に分割」する動作をしないといいたいのかな そりゃすることぐらいあるだろう。 だが、2画面に分割したいと思った時に、 それがたまたま、お前のページである可能性は極めて少ない。 そんなマイナーなアクションのためにアニメーションを付けるのが 無駄だと言ってるの。 思い返してみ? 今日お前が2画面に分割した回数を。
526 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 23:52:46.47 ID:7RJVkgnK.net] ウインドウをリサイズした後に特定の要素をclickすると window.innerWidthが480px以下ならメニュー?をslideToggle ってことだよね? リサイズ時にアニメーションって関係ないじゃんw
527 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 23:58:16.87 ID:Bi6OX6KX.net] >>521 ブラウザとテキストエディタを2画面分割で開いてブラウザのページ内容をコピーしてテキストエディタにペーストするのは良くある事なんだけど ブラウザを見ながらテキスト入力できるのはマルチウインドウの最大のメリットでしょ 「自分がしないから他の人もしないだろう」って思い込みは色々危険だよ
528 名前:デフォルトの名無しさん mailto:sage [2016/04/27(水) 00:26:39.16 ID:mjPz9hpH.net] スマホの横持ち、縦持ちを切り替えることはしょっちゅう起こるよ
529 名前:デフォルトの名無しさん mailto:sage [2016/04/27(水) 04:38:04.23 ID:ymPBswSy.net] >>524 同じページを表示したまま、縦横に何度も持ち帰るんか? その時画面のアニメーションを見たいんか?
530 名前:デフォルトの名無しさん mailto:sage [2016/04/27(水) 05:07:52.00 ID:iS2uJpqo.net] 要は、主目的は画面全体のアニメーション表示ではなく、画面が広いときはメニューを横並びに表示させて 画面が狭いときはメニューをクリック/タップで展開/収納のトグル動作させたい、 ということと思われる そうでなければ画面の幅に応じてイベントを追加する意味がない
531 名前:デフォルトの名無しさん mailto:sage [2016/04/27(水) 08:44:26.76 ID:tEogpAYP.net] >>520 要件はどうでも良くて、api仕様はそれで良いと言ってるんだよ。 その後、once使えと言ってるじゃないか。
532 名前:デフォルトの名無しさん mailto:sage [2016/04/27(水) 09:22:32.44 ID:9uyPVyt/.net] >>526 メニューというか特定の要素をclickした場合 画面サイズで何だかの振り分けをしたいんじゃないの? 何れにしてもリサイズをアニメーションって意味不明 単なる持論だよ
533 名前:デフォルトの名無しさん mailto:sage [2016/04/27(水) 11:46:48.06 ID:VeDPJalk.net] >>527 API仕様がそれで良い理由が明確でない しかも、once()で解決しないだろ
534 名前:デフォルトの名無しさん mailto:sage [2016/04/27(水) 12:04:54.36 ID:x1DYS/Nj.net] >>527 once()のAPIが見つからないけど、one()の事? one()を使ったらクリックして閉じた後にウインドウリサイズしないと開けなくなったんだけど https://jsfiddle.net/38wrnxu7/
535 名前:デフォルトの名無しさん mailto:sage [2016/04/27(水) 12:21:41.01 ID:PwdWdDII.net] offしてからonすればいいんじゃね?
536 名前:デフォルトの名無しさん mailto:sage [2016/04/27(水) 13:01:52.49 ID:x1DYS/Nj.net] >>531 その辺りは>>493 で全て答えが出てるから >>499-500 がドヤ顔で解説しているのも既出だし、何がしたいんだか
537 名前:デフォルトの名無しさん mailto:sage [2016/04/27(水) 15:19:37.97 ID:BFKJgt+J.net] >>523 オナニーにしか使わないからresizeは必要ない派には、何を言っても理解できないよ。
538 名前:デフォルトの名無しさん mailto:sage [2016/04/29(金) 10:29:51.62 ID:Zpx1WpIM.net] >>533 そんなこと言ってるやついないけど、 むしろ、自分の都合のいいように 書き換えるお前には理解できないだろうよw
539 名前:デフォルトの名無しさん [2016/04/29(金) 11:58:35.72 ID:2UzU1Fa0.net] i.imgur.com/mme2KNl.jpg i.imgur.com/8I0inTZ.jpg 指定した商品のキーワードとカラーが現れると自動クリックするメソッドがurlが乱数対策で書き換えられたので使えなくなりました。 他の要素から検索する場合、どう書き直せばいいのでしょうか?
540 名前:デフォルトの名無しさん mailto:sage [2016/04/29(金) 12:28:51.15 ID:Z5nc+wFx.net] >>535 そのソースだけでは理解不能だと思う window.location で検索して学習するれば解決するじゃないかな?
541 名前:デフォルトの名無しさん mailto:sage [2016/04/29(金) 14:50:02.78 ID:FtHCzag5.net] ブラウザ操作の自動化は、Firefoxで、SeleniumIDE を使って出来ないか? または、Selenium WebDriver を使って、プログラムするとか Seleniumデザインパターン&ベストプラクティス、2015 OSSのブラウザ自動テストツール、Selenium WebDriver を使って、 Rubyでテストを書いた本
542 名前:デフォルトの名無しさん mailto:sage [2016/04/29(金) 15:12:10.79 ID:npmLXJBi.net] >>535 自動でクリックすると何の役に立つの?
543 名前:デフォルトの名無しさん mailto:sage [2016/04/29(金) 15:13:47.73 ID:JN3HPUnt.net] 転売厨だろどうせ
544 名前:デフォルトの名無しさん [2016/04/30(土) 14:09:13.13 ID:uVz81x78.net] GitHubで匿名通信(Tor、i2p等)ができるBitComet(トラッカーサイト不要でDHTだけで日本語検索可能) みたいな、BitTorrentがオープンソースで開発されています 言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか? Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします https://twitter.com/Lyrise_al ちなみにオイラはCovenant(純粋P2Pのファイル共有ソフト)の完成が待ち遠しいプログラミングできないアスペルガーw
545 名前:デフォルトの名無しさん mailto:sage [2016/04/30(土) 19:08:39.84 ID:HhSXq6WP.net] >>537 いまどきIDEはねーよ
546 名前:デフォルトの名無しさん [2016/05/01(日) 16:53:27.97 ID:sgiYXWIX.net] JavaScriptの文法をひととおり勉強し
547 名前:Iわったんですが コード書くにはどのIDE使うのが標準ですか? いまはわざわざメモ帳使ってます。(まあそれほど本格的にはやってない段階ですが、しかし将来は本格的にする予定なので。) JavaならEclopse、 VisualC#やVisualBasicならVisualStudio、 AndroidならAndroidStudio がそれぞれ標準みたいになってるじゃないですか。 JavaScriptはそのへんどうなってますか? [] [ここ壊れてます]
548 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 17:24:58.87 ID:avBwiD/Q.net] >>542 Atomとか
549 名前:デフォルトの名無しさん [2016/05/01(日) 17:42:02.88 ID:sgiYXWIX.net] >>543 ありがとうございます Atom試してみます ところでAtomは他言語も標準的IDEになってる言語はありますか? あまりマスターすべきIDEの数を増やしたくないのでJavaScriptをEclipseやVisualStudioでもできるようならそのほうが理想的なのですが。
550 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 18:12:07.05 ID:t8gRHm+a.net] >>544 JavaScriptに標準IDEはありません 主にシンタックスのカラーリングや補完機能あればいいと思う 自分の好みでいいんですよ
551 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 19:03:40.53 ID:6DCl83u4.net] 「JavaScript」の標準にIDEはMozillaが作ってるだろ つまらん嘘つくなよ
552 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 19:54:17.33 ID:IEJxz53a.net] インテリセンス最強のエディタは? 今の所VSが強い印象だけど対抗馬いるか?
553 名前:デフォルトの名無しさん mailto:sage [2016/05/02(月) 01:55:39.31 ID:T+iaWOtl.net] >>544 本格的にやるなら、サーバーでの編集用にVimかEmacsを覚えるというのも手だが、言語の練習と同時には覚えるの辛いだろうな・・・
554 名前:デフォルトの名無しさん mailto:sage [2016/05/02(月) 14:30:45.71 ID:5BTmw4JC.net] VSCode
555 名前:デフォルトの名無しさん [2016/05/02(月) 19:09:21.56 ID:Fa0O9xkC.net] 質問です。 JavaScript で、 var data = 'Price1080'; var Price = data.match( /^(Price|Kakaku)(\d+)/ ); if ( Price[2] == 1080) { 【←エラーが発生する行】 alert('1080円です'); } とした場合には正常に動作しますが、data に 正規表現でマッチングしない文字列が与えられていた場合、例えば、 var data = 'PriceNashi' だったときには、 Firefox 最新版の場合 TypeError: Price is null Chrome 最新版の場合 Uncaught TypeError: Cannot read property '2' of null(anonymous function) といったエラーがエラーコンソールに流れてしまいます。 Price[2] が null なのは分かるのですが、こういった変数が null の場合にもエラーを発生させない方法はないでしょうか? (Price[2] が null なら、単にif文の中身を実行しないようにしたいです) if ( Price[2] != null ) でチェックしようとしても、同様に「TypeError: Price is null」が発生してしまうので困っています。 ご教示お願いいたします。
556 名前:デフォルトの名無しさん mailto:sage [2016/05/02(月) 19:22:45.64 ID:vIuKkp7F.net] if (Price!==null)
557 名前:デフォルトの名無しさん mailto:sage [2016/05/02(月) 19:50:52.07 ID:86Jgi2PX.net] if ( Price && Price[2] != 1080 )
558 名前:デフォルトの名無しさん mailto:sage [2016/05/02(月) 21:22:42.79 ID:nFATBe9U.net] var Price = data.replace(/Price|Kakaku/, ''); if (Price == '1080')
559 名前:デフォルトの名無しさん mailto:sage [2016/05/02(月) 21:47:19.59 ID:58IGANjT.net] それ頭にpriceは書かなきゃいけないの? なくして数値型で判定した方が確実だと思うけど
560 名前:550 mailto:sage [2016/05/02(月) 21:56:37.86 ID:Fa0O9xkC.net] >>551-552 ありがとうございます。 教えていただいた方法で試してみたところ、エラーは発生しませんでした。解決です。 if文で配列全体の存在を確認する分にはエラーは発生しないけど、 配列内の要素の存在を確認した場合、その配列自体が存在しないとエラーになっちゃうようですね。 >>553-554 色々な解放があるようですね。 ありがとうございます。
561 名前:デフォルトの名無しさん mailto:sage [2016/05/03(火) 04:50:38.58 ID:1U/0N7SV.net] >var Price = data.match( /^(Price|Kakaku)(\d+)/ ); >if ( Price[2] == 1080) { 【←エラーが発生する行】 普通、1行目の後に、いきなり2行目を書かない。 論理的につながっていない 1行目の後には、少なくとも1つでも、一致したかどうかの判断が必要 そして一致していれば、2行目の処理へ進む。 一致するものが無ければ、2行目へ進まない
562 名前:デフォルトの名無しさん mailto:sage [2016/05/03(火) 08:47:51.21 ID:65DdW2hV.net] var num = Price ? Price[2] : null; if (num == '1080')
563 名前:デフォルトの名無しさん mailto:sage [2016/05/03(火) 15:41:32.16 ID:6WBArbcg.net] JS的には普通はこう var price = +( data.match( /^(Price|Kakaku)(\d+)/ ) || [] )[2] if ( price == 1080) { 判定をするのはJSらしくない 暗黙の型変換を利用し値を早い段階で確定させていくのが正しい動的型付けの手法
564 名前:デフォルトの名無しさん mailto:sage [2016/05/03(火) 16:12:55.52 ID:64Up/wnd.net] 書き方が悪くないか?正規表現なら replace(/^.*(Price|Kakaku)([0-9.]+).*$/g,'\\1')-0 かなんかして、1080と比較したら確実じゃないの?
565 名前:デフォルトの名無しさん mailto:sage [2016/05/03(火) 16:13:50.36 ID:64Up/wnd.net] あ、リロードしてなかった。すまん。
566 名前:デフォルトの名無しさん mailto:sage [2016/05/03(火) 17:09:50.29 ID:2ApUtfSZ.net] ^(?:(Price|Kakaku)(\d+))? と、全体は一致するようにするとか replaceするやつは '1080' でもマッチしてしまいそう
567 名前:デフォルトの名無しさん mailto:sage [2016/05/03(火) 17:14:00.54 ID:65DdW2hV.net] Price || Kakakuの他にも異なった文字列が 存在する、しないで変わってくるね
568 名前:デフォルトの名無しさん [2016/05/03(火) 17:29:30.46 ID:IJoN7jmc.net] とりあえずIEでもChromeでも そこに書いてあるJavaScriptのコードを少しだけ改変/追加したいのですが 簡単にコードエディットする方法はありますか? インテリセンスだけがついてあれば充分です。 現状はメモ帳にコードを貼り付けてやってるのでものすごく効率が悪い。 ちなみにJavaScriptはまだかなりの初心者です。
569 名前:デフォルトの名無しさん mailto:sage [2016/05/03(火) 17:49:40.27 ID:YTE1L/l3.net] おまえごときその辺のテキストエディタで十分
570 名前:デフォルトの名無しさん mailto:sage [2016/05/03(火) 17:54:18.04 ID:64Up/wnd.net] >>559 自己レスで間違えてた。 \\2に置換すると、Priceに続く数字だけ残る。
571 名前:デフォルトの名無しさん mailto:sage [2016/05/03(火) 17:55:12.59 ID:G4OBLQ5I.net] ブラウザのコンソールからファイル編集して保存できるよ メモ帳すらいらん
572 名前:デフォルトの名無しさん [2016/05/03(火) 18:55:05.50 ID:IJoN7jmc.net] >>564 あまりわたしを怒らせないほうがいいぞ。 わたしは真剣に聞いているのだからな。
573 名前:デフォルトの名無しさん mailto:sage [2016/05/03(火) 19:00:51.75 ID:mbDp1eZa.net] 昨今のテキストエディタは優秀だから騙されたと思って拾ってこいや てめえにゃもったいないくらいのサポートしてくれるっての
574 名前:デフォルトの名無しさん [2016/05/03(火) 19:01:38.06 ID:IJoN7jmc.net] >>568 たとえばどれでしょうか?
575 名前:デフォルトの名無しさん [2016/05/03(火) 19:43:50.15 ID:G9XEXQGe.net] 匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、 BitTorrent(Covenant)が活発な情報交換・交流コミュニティでオープンソース開発されています(プログラマー募集中) 言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか? Covenantの作者(Lyrise氏)がそういう人と話したいそうなので、よろしければツイートお願いします<(_ _)> https://twitter.com/Lyrise_al ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできない情報発信好きアスペルガーw The Covenant Project 概要 Covenantは、純粋P2Pのファイル共有ソフトです 目的 インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します 特徴 Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT +
576 名前:PoW) 接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です DHTにはKademlia + コネクションプールを使用します UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります) 検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません 8 [] [ここ壊れてます]
577 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 06:10:29.02 ID:0hExvDHP.net] >>563 ,569 https://atom.io/ https://www.sublimetext.com/
578 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 09:13:01.47 ID:bRkFYhVs.net] >>563 MSDNの、IE11・F12 開発者ツールの使い方を参照
579 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 10:19:03.70 ID:ydt/wr9U.net] >>567 真面目に聞いてる人が放置するのか
580 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 10:44:15.30 ID:fknk/t2B.net] 最強のエディタはVSと相場は決まっておる 他のエディタはロクなインテリセンスのないゴミばかりだよ
581 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 11:52:59.62 ID:SMfsRko8.net] notepad 最強伝説
582 名前:デフォルトの名無しさん mailto:sage [2016/05/05(木) 11:57:07.40 ID:F9EaZa1N.net] 自己満足が最強
583 名前:デフォルトの名無しさん mailto:sage [2016/05/06(金) 00:24:25.24 ID:4boKzuh/.net] エディタなら秀丸一択だろうが 4200円するけどそれだけの価値はある
584 名前:デフォルトの名無しさん mailto:sage [2016/05/06(金) 08:25:56.04 ID:wkAp2vOU.net] 否 秀丸は世界的でなくDTDを採用していたりと外も中も古臭く拡張を作りづらく JSのように日進月歩で絶賛進化中の言語情勢に全くついてこれていない
585 名前:デフォルトの名無しさん mailto:sage [2016/05/06(金) 10:19:44.07 ID:XipIUMCb.net] chrome developertoolコンソール インテリセンスもあるし
586 名前:デフォルトの名無しさん mailto:sage [2016/05/06(金) 10:22:17.38 ID:SIBOz9L4.net] 秀丸はもうだいぶレガシーになってしまったな 少し前はNotepad++だったけどそれも過去になった 今のところAtomがいいけど ちょっと重いんでVS Codeに期待
587 名前:デフォルトの名無しさん [2016/05/06(金) 12:30:06.56 ID:QA9WXQLh.net] 禿丸って、ちゃんとインテリセンスある?
588 名前:デフォルトの名無しさん mailto:sage [2016/05/06(金) 13:06:16.77 ID:b+5YqGKq.net] 秀丸ってまだ存在してたんだ
589 名前:デフォルトの名無しさん mailto:sage [2016/05/06(金) 14:17:41.74 ID:G4Kxj38O.net] 4200円ていつの時代の話だよ
590 名前:デフォルトの名無しさん mailto:sage [2016/05/06(金) 19:01:56.63 ID:tQEExFw/.net] ternjsさえのれば、どの環境でもだいたいおなじくらいのインテリセンスなのかなあと思った それ以上はTypeScript使わないかぎりしんどい気がする
591 名前:デフォルトの名無しさん mailto:sage [2016/05/06(金) 21:49:21.53 ID:qd0GNKqW.net] みなさん、javascriptってこの先生き残ると思いますか?
592 名前:デフォルトの名無しさん mailto:sage [2016/05/06(金) 22:08:01.20 ID:zDXbuI6Z.net] ブラウザで動く言語としてはJavaScriptは確実に生き残るだろう。 その他のaltJSは殆どが死滅するはず。JavaScriptの上位互換といえるような TypeScriptだけがMSの興味を引いている限り生き残る。 COBOLが生き残ってることからもわかるように、 特定の分野で多く使われた言語は長く生き残るものだよ。 言語仕様の良し悪しじゃない。 死滅した言語っていうのはVBやDelphiだけど、 これは開発元が開発をやめたか大幅に縮小したため。 逆に言えば開発元が開発をやめない限り使い続けられる。 そしてJavaScriptの開発元はどこか?MS、Google、Mozilla、他 このように複数あるから開発を一斉にやめるってことがまず考えられない。 加えて改良が進められているから辞めようって声も上がらない。 辞めるぐらいなら改良すればいいわけだからね。
593 名前:デフォルトの名無しさん mailto:sage [2016/05/06(金) 22:49:31.18 ID:HS1krX3+.net] >>586 Delphiとか当時は革新的だったよなぁC++Builderとかとともにお世話になった。 その中の人が今はc#やtypeScript作ってるんだよね。
594 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 00:27:39.35 ID:H9AjK5sV.net] FileReaderで画像の複数読み込みを行って、画像とファイル名を対に表示したいのだけど、非同期ゆえ一致しない場合がでてくるのですが、何か良い方法はないでしょうか? var name = new Array(); var data = new Array(); $('#images').on('change', function (event) { var files = $(this).prop('files'); var fileReader = new Array(); for (var i = 0; i < files.length; i++) { name[name.length] = files[i].name; fileReader[i] = new FileReader(); fileReader[i].onload = function (event) { var n = data.length; data[n] = event.target.result; $('body').html($('body').html() + '<div>' + name[n] + '<img src="' + data[n] + '"></div>'); }; fileReader[i].readAsDataURL(files[i]); } });
595 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 01:25:28.41 ID:R3j+TLGo.net] jQueryって毎回スクリプトタグ書かないと動かないんですか?
596 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 04:30:24.07 ID:S68KOTjs.net] jqueryでreplaceする時にreplace(/test/g,'test2')みたいなコードみたんだが、検索文字列をなぜクォーテーションで囲ってないのだ? このトークンはどういう扱いになっているの? 当方、javasctipt初心者です。
597 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 04:45:54.23 ID:S68KOTjs.net] 正規表現オブジェクトというのね。 自己完結しました。
598 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 08:19:51.56 ID:nYaS7NzX.net] >>589 jQueryに限らず、外部スクリプト化したいなら<script>を書かなければならない onclick属性やonload属性等のイベントハンドラ属性だけで完結できるならこの限りではない
599 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 08:44:10.25 ID:nYaS7NzX.net] >>588 画像とファイル名は同時に表示出来ているのでは? それよりも document.body を上書きしていたり、jQueryを使っているにも関わらずfileReader[i].onload のような素のJavaScriptコードが見られたり、HTML出力でfilesと同じ順序を保証していない事が気になる
600 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 11:48:23.84 ID:98qiMegf.net] >>589 JavaScriptのこういう所は何とかして欲しいよ コードのモジュール化、再利用がめんどくさすぎる 未だにブラウザ間で最低限の互換性すら取れてないし IT業界の最前線で使われている言語とは思えない
601 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 12:11:46.43 ID:7m+gJQ3f.net] 何言ってだこいつ
602 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 12:22:16.57 ID://iuahhd.net] 頭悪いんだろうからほっとけよ
603 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 12:40:50.09 ID:98qiMegf.net] いやいやこれに同意できないって相当毒されてるぞ JS以外の言語触った事無いのか?
604 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 12:47:05.73 ID:bc2M0je5.net] あなたこそ梅毒でも煩ってるの? ここよりお医者に行くべきだよ
605 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 12:58:07.39 ID:H9AjK5sV.net] >>593 コードに関しては、非同期部分の問題となってる部分をチェックしていただける方がおられた場合に簡単にテストできるよう、 ポイントに絞ったものとなってますので、最終的にはファイル名ソートもしくは入力順に表示するつもりですし、もちろんdocument.bodyの上書きなど行うこともありません ですので問題定義以外の部分でのコードの粗はご了承ください さて、このコード、確かに画像と名前は同時に表示されますが、「filesと同じ順序を保証していない」とご理解いただけてるように、 nameはfiles順に代入されていきますが、dataは読み込み完了時に代入され、書き出しもそのタイミングです 1:サイズ大 2:サイズ中 3:サイズ小 と、あった場合、nameは1,2,3、dataは概ね小、中、大と代入されていき、対になって表示されることは保障されていません
606 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 12:59:41.90 ID:98qiMegf.net] >>598 可哀想なやつだな まあ生き方は人それぞれか
607 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 13:07:53.42 ID:HCFqFuTE.net] >>594 ,597 多分、あなたがいっているJavaScriptはクライアントサイドスクリプトの事だろうが、クライアント側の環境に依存するから簡単に後方互換性を捨てることが出来ない Node.jsなら十分可能だから クライアントサイドスクリプトは製作側の環境だけ整えても仕方ないのだから言語の問題というよりもユーザのリテラシーや古い環境に固執すユーザの考え方の問題 ES6でモジュール管理機能が追加されているから古いブラウザを切り捨てる気があるなら可能 現状ではAltJSを使うなり、Babelでトランスコンパイルするのが妥協点
608 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 13:18:35.30 ID:HCFqFuTE.net] >>599 onload 時に出力結果を配列 or DocumentFragment にキャッシュしておき、その要素数が files.length と一致したら document.body.appendChild してみては?
609 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 15:09:05.53 ID:NRmKgF8p.net] そもそもWebという仕組みがモジュール化しずらいんだから仕方がない HTML5+でパッケージングの案とか出てたけど立ち消えになったしな
610 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 16:24:25.14 ID:rW+w2i1Z.net] Microsoft全てを委ねていればこんな体たらくにはなってなかった
611 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 17:31:40.76 ID:q+dYax/I.net] どいつもこいつもジャップは母国語すら満足にしゃべれなくなったのか?
612 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 17:50:30.87 ID:7m+gJQ3f.net] void 0 === a && ~~ と a === void 0 && ~~ こういうのってどっちがいいとかある?
613 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 17:54:47.43 ID:kizhSvpl.net] 結果を先に書いておかしいと思わないの? おまえセンスねえからやめたほうがいい
614 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 18:14:28.17 ID:v072DMKU.net] >>604 おうJScriptが主流になってたな
615 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 19:18:58.60 ID:PsySjkPg.net] >>604 そんなことしてたらここまでブラウザは進化しなかった
616 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 19:25:18.36 ID:rW+w2i1Z.net] こういうバカな反逆者がブラウザの正しい進化の道を閉ざしてきたんだな
617 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 19:26:31.11 ID:JbOpDSya.net] >>594 ブラウザ間の最低限の互換性は取れてるような。 caniuseでも通してみりゃわかるだろうけど。 モジュール化も、module.exportsして今のところはwebpackか何か通しておけばいいんでないの?
618 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 20:07:07.26 ID:rW+w2i1Z.net] 手段があるなら良いってもんじゃ無いよね 当たり前のようにサポートされてないって事がweb業界のリーダー達の怠慢を表してる Microsoftがリーダーになっていればこうはならなかった
619 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 21:10:40.66 ID:kFFwjeQZ.net] スレ違いだったらすいません。webプログラマーを目指そうかどうか、悩んでいます SQLやフレームワークでデータを引っ張ってきてphpでhtmlを生成し、htmlにcssで装飾し、jsで動きをつけて・・・と思っていたのですが、 IE8や下手するとIE6の対応、IEはJscriptというjavascriptと少し違う言語…などの変な多様性に悩んでいます いくつかサイトを作ってみましたが、IE6で動かなかったり、携帯ブラウザで表示が崩れたりして大変困っています。 困っているというか、どうしていいかわかりません。 ブラウザ間の違い等、どこまでサポートしているかなどの基準はあるのでしょうか?
620 名前:デフォルトの名無しさん [2016/05/07(土) 21:14:56.21 ID:znoXDAwn.net] >>613 文面を見るかぎりWebプログラマーには向いていないと思うので別の道を探してください
621 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 21:20:22.07 ID:rZxk5OUW.net] ES6 module が来ても HTTP で GET している限り、パフォーマンス低下は免れないわけで何が嬉しいのか良くわからん CSS の @import のように始めの頃だけ重宝されていずれ使われなくなる気がする moduleが必要だとは思うが、>>611 のいうようにwebpackでbuildすれば最適なパフォーマンスが得られるわけでブラウザ側で実装する必要性を感じない
622 名前:デフォルトの名無しさん mailto:sage [2016/05/07(土) 21:38:26.64 ID:rZxk5OUW.net] >>613 今時、IE8- は古すぎると思うけど、顧客の要求仕様か特殊な案件? 各種フレームワークのサポートブラウザを確認 互換性情報はWebにあふれているから活用しようか caniuse.com/ www.quirksmode.org/compatibility.html kangax.github.io/compat-table/es5/ https://msdn.microsoft.com/ja-jp/library/cc351024.aspx https://developer.mozilla.org/ja/docs/Web
623 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 01:45:49.69 ID:a6za2jQ4.net] >>588 そもそも複数のリソースファイルは、5個ずつパラレル読み込みで、 複数あるサーバーのどこから読み込んでいるのかすら、わからない。 どのファイルが先に読み込まれるかも、当然わからない F12開発者ツールで、リソースの読み込みタイミングを見てみ onChange は、要点に関係ないだろ >new Array(); []; 空配列リテラルを使う >>613 IE6なんて、対応しないだろ CSSもツールで、関数(ミックスイン)で書く。 Sass & Compass 徹底入門、2014 他に、Bourbon にも、ミックスイン集がある
624 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 02:14:54.64 ID:OocjjMXM.net] >>599 > nameはfiles順に代入されていきますが、dataは読み込み完了時に代入され 答え自分で書いとるやないかーい fileReader[i].onload = function (event) { var n = data.length;  data[n] = event.target.result; } ↓ fileReader[i].onload = (function (n) { return function (event) { data[n] = event.target.result; }; })(i);
625 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 02:15:33.52 ID:OocjjMXM.net] s/ / /g
626 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 11:04:13.34 ID:J2x5cRTw.net] >>618-619 bodyへの挿入処理がない 多分、>>602 の通りの実装にするんだろうけど
627 名前:デフォルトの名無しさん mailto:sage [2016/05/08(日) 13:29:51.82 ID:P/nJjC5X.net] ID:H9AjK5sV です ID:OocjjMXM 様のCallback使う手法でうまくいきました レスして頂いた皆様、有難う御座いました
628 名前:デフォルトの名無しさん mailto:sage [2016/05/09(月) 08:47:40.90 ID:W7sFbKKM.net] jQueryで作っているんですが 下のような内容でボックスのどこでもクリックやタッチしたらclass = "box"のIDを 変数に取得したいんですが商品名や説明があるところだと クリックやタッチは反応してるんですがIDが取れません。 商品名のところでクリックやタッチしてもclass = "box"のIDを取得できる書き方はありませんでしょうか? $(".box").click(function(event){ var boxId = event.target.id; } <div class = "box" id ="item1"> <div class = "title">商品名1</div> <div class = "text">説明1</div> </div> <div class = "box" id ="item2"> <div class = "title">商品名2</div> <div class = "text">説明2</div> </div>
629 名前:デフォルトの名無しさん mailto:sage [2016/05/09(月) 08:58:44.04 ID:dyobdVC7.net] >>622 hasClassやclassListで分岐処理して event.target.parentNode.id
630 名前:デフォルトの名無しさん mailto:sage [2016/05/09(月) 16:48:27.63 ID:wbQMz1Tb.net] >>622 event.currentTarget.id
631 名前:デフォルトの名無しさん mailto:sage [2016/05/09(月) 21:03:12.68 ID:o7YvYv9W.net] jQueryってそんなにありがたがるようなものかな 最近は無くて困る事ってそんなにないよね
632 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 00:01:34.91 ID:yLtf5w/x.net] >>625 jQueryは便利だから使うんだよ。 jQuery使ったほうが便利なのに、使わなくても不便だけど頑張れる。 だから使わない。なんて考える人はおかしな人だよ。
633 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 00:04:42.17 ID:yLtf5w/x.net] >>624 $(".box").click(function(){ var boxId = this.id; }); これでいけたよ
634 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 08:52:13.41 ID:4ts0a3G7.net] >>625 クロスブラウザ的にはjQueryがなくて困るケースは減ったね DOMを学習してクロスブラウザなコードを書いた事がある人にとっては今までの自分の資産(コード)があるし、jQueryはなくても困らないと思う 今までクロスブラウザに苦労してjQueryの便利さに触れた人がブラウザの対応度を調べる手間を惜しんで惰性で使ってるんじゃないかな
635 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 10:27:37.59 ID:AYSgFkex.net] >>626 jQueryは確かに便利なとこもあるだろうが、 俺にとっては「標準でない」という時点でとても不便なんだけどな
636 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 11:19:26.96 ID:F0daG/eG.net] >>629 標準でないものを全く使わずに、何万行もコード書くとか疲れないか?
637 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 11:27:59.90 ID:idlWyZE5.net] 1. jQueryクソ!バニラJS最高! 2. DOM操作面倒になってきた… 3. 簡単に書けるラッパー用意したぜ! 4. クソオレオレDOM APIの歴史が銀河にまた1ページ
638 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 12:00:17.53 ID:4ts0a3G7.net] >>324-389 で出た話題の焼き直しかな DOMが面倒と思うのは結構な確率で思い込みだと思う 自分なりのコーディングの型が身につけば snippet で楽になる querySelectorAllが出来てからは大分楽になった iteratorが出来てからは更に楽だね
639 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 12:08:57.36 ID:pM7kjGoW.net] Web制作板で見た流れだな echo.2ch.net/test/read.cgi/hp/1456250334/839-960
640 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 13:34:07.61 ID:IOgaEvdb.net] すんごい初心者的な質問かもしれないんだけど jsonの形のデータを返すプログラムやらcgiやらがあるとして、 これをブラウザなりnode.jsなりが配列として受け取りたい場合は、レスポンス/返り値を受け取ってeval()が基本? とりあえずブラウザでdocument.createElement('script')するとかjqueryのgetJSONとかは考えないものとして
641 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 13:41:24.58 ID:Rtf28uts.net] >>634 JSON.parse
642 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 13:44:05.16 ID:GuxwfwYt.net] >>634 JSON.parse
643 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 13:45:46.76 ID:IOgaEvdb.net] >>635-636 言われたJSON.parseをMDNでみてきた、ありがとう どうみても初心者丸出しでした本当にありがとうございました
644 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 16:37:13.26 ID:a8SwGUA2.net] jQueryは壊滅的に見た目がダサい 記号多すぎ
645 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 16:39:32.39 ID:z09te98I.net] >>637 「JSON JS」でググるくらいはしよう
646 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 16:42:23.47 ID:JGlnd6eX.net] JavaScriptを書くとソースが長くなるのが欠点だわ DOMにしてもセンスが無い
647 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 17:57:38.15 ID:rBTKy2Ex.net] DOMは基本JSとは別物で言語に囚われない規格だよ
648 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 20:07:10.97 ID:p4MwWBVW.net] 質問です。 ラジオボタンが一つも選択されていない状態では送信ボタンを押せないか無効化させる方法ってありますか?
649 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 20:29
] [ここ壊れてます]
650 名前::07.07 ID:FqZqz1a/.net mailto: >>640 Javaに比べると物凄く簡潔に感じる [] [ここ壊れてます]
651 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 21:18:32.65 ID:zqmBWtQQ.net] >>642 JavaScript によるバリデートは抜け道があるのでサーバサイドでのチェックも忘れずに 1.JavaScript で <input type="submit"> を input.disable = true にする 2. <input type="radio"> を change イベントで監視して全てのラジオボタンが選択されたら input.disable = false にする
652 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 23:08:08.13 ID:yLtf5w/x.net] >>632 > DOMが面倒と思うのは結構な確率で思い込みだと思う いや事実。 比較表でも作ってみればいい。 50%以上、jQueryの方がコードが短くなる。 50%は大きいで?
653 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 23:21:01.17 ID:KuwcBTwn.net] >>644 その方法で抜け道ってどんな?
654 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 23:37:57.18 ID:uAV2Alwm.net] 適切な設計とモジュール化を行っていけばjQueryがあってもなくても大差ない それがうまくできてないんだろうね いやできていないというよりはサボってjQueryで誤魔化しているというべきか そしてこういうコードはスケーラビリティが低く変化に弱いと相場は決まっている
655 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 23:40:05.80 ID:WbwZXmAZ.net] >>645 何を言ってんだか jQueryみたいなライブラリで短くなるのは当たり前でしょ むしろそうじゃなければ存在意義が全く無い そしてコードが短くなることと面倒でなくなることは繋がっていない 例えば他人が書いたコードを読むのであればjQueryの方が「面倒」だろうよ
656 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 23:48:31.48 ID:yLtf5w/x.net] >>648 読む量も減るから楽になるよ。 面倒に対するアプローチには二通りある。 一つは勉強するのが面倒だからと勉強を避ける。 一見楽なように見えるが、知識がないからもっと楽な道を選べずにひたすら 単純作業を繰り返すことになる。勉強する面倒さを避けたがために面倒になる。 もう一つは勉強する面倒さを受け入れることで、もっと効率のいい方法に到達する。 急がば回れの言葉通り。最初に勉強という面倒なことをやることで、 その後ずっと楽になる。
657 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 23:57:03.18 ID:uAV2Alwm.net] なぜコード量が大幅に減るか それは本来モジュール化すべき重複したコードが大量にあるからなんだな 例えば100箇所に同じようなコードがありjQueryでそれを削減したとしよう しかしちゃんとしたプログラマは1箇所に処理を纏めて再利用して重複を減らすだろう この場合jQueryで削減できるコードは先の場合の1/100でしかない しっかりしたコードを書くほどjQueryの恩恵は小さくなるのだ
658 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 23:58:28.27 ID:yLtf5w/x.net] 誰かが「面倒」といったとき、勉強するのが面倒と言ってるのか、 その後の作業が面倒と言ってるのかを見極めないといけないね。 どんなことでも作業を楽にするには、勉強する面倒さを 乗り越えないといけない。勉強して知識と技術がつけば作業は楽になる。 自動車の運転しかり、パソコンに使い方しかり、数学の公式しかり 作業ではなくて、勉強するのが面倒と言っているやつは、 そこまでのやつってことだよ。
659 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 00:00:25.17 ID:ye4EAN+q.net] >>650 そのしっかりしたコードが、jQueryを使った場合と 使わない場合で、倍のコード量になってくるんだよ。 これ以上は絞り込めないといったコードで比較した話なんだから。
660 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 00:01:12.32 ID:ye4EAN+q.net] ato jQueryで楽々削減するのと、 しっかりと書かないと減らせないのとでは 面倒さも違ってくるだろw
661 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 00:43:36.75 ID:wiJHIT3v.net] >>652 短く書きたいのなら別にjQueryでなく様々なものがある jQueryは互換性を保つという点が薄れてきた今となっては極めて中途半端な存在 ちょっとしたことなら、わざわざ何かを導入しなくとも昔より発展した標準APIを使えばいいし、 それ以上のことでDOM操作を頻繁にするなら仮想DOM系の方がパフォーマンス的にも良い それ以上ならフレームワークを使う いずれにしろjQueryのパターンは古臭く、今ちょっとした味付けが欲しい場合は Observableパターンと標準APIを使ったほうが良い
662 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 01:29:13.56 ID:ye4EAN+q.net] >>654 たかだかHTMLにちょっと動きをつければいい所に AngularとかReactとか持ち出すのは過剰。 jQuery程度がちょうどいいんだよ。 標準APIが発展? 冗長なのは変わってないだろ。 jQueryを使えばDOM APIよりも短くなるのは明らか。 比較一覧で証明された。 短くシンプルに書くのが目的であって 道具を導入するのが目的ではない。
663 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 01:30:48.00 ID:x+4ifnQN.net] 短く書ける事が即作業能率に繋がるわけじゃないんだけどな document.getElementById('hoge') $('#hoge') 確かにDOMの方が3倍長いけど、コード補完を使うから入力速度は大して変わらんね
664 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 01:41:26.30 ID:mC1n68eU.net] >>655 jQueryはプログラミングに詳しくない人が本体とプラグインを使って コピペ+αでそれなりのものを作るためのもの。 少しコードが多くなるとデバッグも適切な設定をしないと困難だし、 短くシンプルに書くためのものなんてのは誤った危険な認識だよ。 そしてjQueryは実際はそれ自体が目的で使われてる。 便利だからではなく、便利と思って使ってきたから、また使うとなってるだけ。 その無意味なスパイラルから抜け出さないと何時までも停滞したままだよ。
665 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 01:53:32.30 ID:mC1n68eU.net] 確かにDOMを平に見て弄りまくる場合にはjQueryは適してると言えるが そんなに弄りまくる場合にはVirtualDOMを使うのが最近の流儀でメリットも沢山あるし できればそもそもそんなことはしないで各種モジュール化するというのがより良い解決策 そしてモジュール化するとなったら特にjQueryのような平に影響を与えるライブラリは邪魔になり 必然的に標準仕様と、時期が来ればいつでも外せる少量のポリフィルを使うことになり それが嫌なら全てをまとめて抽象化してくれるフレームワークの出番になる jQueryはDHTMLだとかそういう時代には合ってたが、今jQueryが生まれた背景事は殆ど解決し より良い解決策がたくさんあるのにあえてその古くて悪いスタイルを推すことは無いだろう
666 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 02:08:46.99 ID:z7XWs6Or.net] >>5 を読んだら次からスルーしてね
667 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 06:05:18.26 ID:qJ1gI9ow.net] こいつが当人なんだから言うこと聞くわけないじゃん
668 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 06:05:43.37 ID:T3iqLJ21.net] javascriptは流行の移り変わりが激し過ぎて、現在の最善手が1年後の時代遅れになりそう 触る人全員が最新技術を追いかけられればいいけど、それが無理なら枯れていて情報量が多く、あんまりわからん人でも気合で押し切れるjQueryは有用に感じる
669 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 06:48:45.94 ID:udOmff2f.net] jQueryで削減できるのは末端のコーディングコストでしかない 重要なポイントは設計のコストでありjQueryにはこのコストを削減する力はない むしろ全体の工数を削られたことによって設計が疎かになる可能性の方が恐い
670 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 07:06:15.34 ID:XhqmdNgU.net] jQueryの悪さってもっと別のところにあると思う EWMに沿ってライブラリが標準と共闘して活躍するのが理想だけど jQueryは完全に自分の世界を築いちゃって相容れないこと まあこの先の進化で自ずとそうなっていくだろうけど今はまだデファクトとして認められないね
671 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 07:15:59.11 ID:XhqmdNgU.net] >>661 ブラウザのアップデートが一月半毎なことを考えると、時代遅れになるのは3ヶ月くらいのスパンだと思う とは言えここ1年はESのアップデートが中心で、WebAPIはマイナーな調整が殆ど 来年以降HoudiniとかEWMに沿う低レベルの仕様がまたどんどん出てくると思う
672 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 08:16:21.66 ID:7o2M3lBg.net] IE11 しかサポートしなくていい人は気楽だのう。
673 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 08:31:45.67 ID:47ZN8m01.net] IE11以上サポートなんて半端なことよほどじゃないとしないでしょ? Edge以上か、IE9以上か、プログレッシブエンハンスメントにして機能で篩い分けるか の3択で今行ってる
674 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 09:08:23.44 ID:ye4EAN+q.net] >>657 > jQueryはプログラミングに詳しくない人が本体とプラグインを使って > コピペ+αでそれなりのものを作るためのもの。 という勘違いをしている人が、jQueryを悪く言ってるんだよねw
675 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 09:09:01.34 ID:ye4EAN+q.net] >>663 Angularの悪さってもっと別のところにあると思う EWMに沿ってライブラリが標準と共闘して活躍するのが理想だけど Angularは完全に自分の世界を築いちゃって相容れないこと 好きな言葉に置き換えればいいよw
676 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 09:09:58.99 ID:ye4EAN+q.net] >>658 > 確かにDOMを平に見て弄りまくる場合にはjQueryは適してると言えるが > そんなに弄りまくる場合にはVirtualDOMを使うのが最近の流儀でメリットも沢山あるし 手段と目的が逆になってるw VirtualDOMをいじらなくていいような簡単な所を わざわざ複雑にするなや
677 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 09:47:54.59 ID:LV2XLOSJ.net] 一般的な記述でjQueryを使用して書けばソースが約半分になるは事実だ どうして屁理屈をこねて反論するのだろうか? jQueryを使用しているとJavaScriptを本質的に理解していないと 自己解釈しているだけだろw
678 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 10:17:41.47 ID:x+4ifnQN.net] Virtual DOMはDOMが遅いから生まれたのであって独自の世界になるのは当然 AngularJSはMVC設計を取り入れているからMVCをやりたい時に使う 「では、jQueryは何をしたいが為に使うのか」という話だよな 記述量が半分になるメリットだけではjQueryの世界に没入するデメリットを相殺しきれない
679 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 11:00:32.08 ID:kvpM6w4K.net] >>644 1はなんとかできたけど 2がわからない…
680 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 11:27:16.56 ID:x+4ifnQN.net] >>672 どこがわからないのかわからんけど、form.elements['inputName'] で各要素を参照できる
681 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 15:35:23.12 ID:m6oW+Aes.net] ここでjqueryに執着している奴は他の言語をあまり知らないんだろうな。jqueryなんてjsやる時に使えば便利という程度だろ。 c++とかc#とかもやるといいよ。
682 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 15:38:05.91 ID:S3kH2EJT.net] 忙しい調理場で「ハサミで切ったほうが丁寧に切れますよ」とか言ってくるやつがいたら 「さっさといつも通り包丁で切れよ」って思うだろうな もちろんjqueryが包丁な
683 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 15:45:03.20 ID:LV2XLOSJ.net] もうやめようよ 馬鹿と何とかは使いようっていうしなw
684 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 18:02:34.45 ID:716xjHj3.net] >>668 それは機能の寄せ集めである典型的なライブラリであるjQueryにこそ最も強く言えることであって、 AngularJSは別物だよ
685 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 20:35:53.97 ID:xrNZw1On.net] >>671 Virtual DOMはテストがやりやすくなるし 標準の代わりとしてまだ分かる jQueryはむしろテストがしにくくなる ただの餓鬼の玩具
686 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 20:42:34.87 ID:w9XqkPaB.net] お前らの価値観とかどうでもええわ
687 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 22:00:50.15 ID:ye4EAN+q.net] >>671 > jQueryの世界に没入するデメリットを相殺しきれない デメリットって勉強するのが面倒くさいって話? それって、その人自体のデメリットだよね。 勉強が嫌いな人に仕事を任せるのはデメリットw
688 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 22:06:23.24 ID:ye4EAN+q.net] >>678 同じ理屈で Virtual DOMはテストがやりやすくなるし 標準の代わりとしてまだ分かる DOM APIはむしろテストがしにくくなる ただの餓鬼の玩具 といえるんだよw DOM APIとjQueryならば、jQueryを使ったほうがいい。
689 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 22:08:36.24 ID:S3kH2EJT.net] すぐに廃れるものは勉強めんどいのわかるが jqueryは勉強しといて損はないだろ つーか勉強ってほどでもない JS知ってりゃ1日で慣れる
690 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 22:08:53.06 ID:ye4EAN+q.net] >>677 > それは機能の寄せ集めである典型的なライブラリであるjQuery 何を言ってるんだ? jQueryはDOM APIの置き換えであって、 お前が言ってるのは(野良)jQueryプラグインの話だろ? jQueryはオブジェクト指向型のDOM APIを関数型のプログラミングが できるように置き換えるライブラリだよ。 (※ブラウザ間の互換性を吸収するライブラリではない)
691 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 23:12:52.71 ID:O2+YRvW5.net] scって>>レス番にマウスポインタ持っていくと、返信先のレスが表示されますよね? あれってどういう仕組みでしょうか? ツールチップではないみたいですが
692 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 23:42:07.24 ID:IeznZ4jj.net] まぁ、DOM操作をするか、何かにバインドするか、毎回一定範囲ごともらうかは思想次第だからなぁ。 書こうと思えば、jQueryだけでSPA書けるだろうし、その時にDOM足したり消したり細かくするか、innerHTMLごとサーバから貰うかも思想だし。 俺はinnerHTMLを毎度やりとりしてた派だから、今のreactの流れは当然の結果に落ち着いたとも思うし、 逆にクライアントサイドで何もかも済ませて、restfulなapi呼び出ししかしない、その上でクライアントサイドの状態と表示が不一致になるのを避けたり、コンポーネントとして再定義するという意味ではvue.jsは好き。 angularは収集つかなくなってる感が凄く嫌だな。
693 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 00:54:32.46 ID:8vh2YrlZ.net] >>682 適材適所が出来ない無能だからこそ 何かと理由を付けてキャパシティの低さをカバーするのよ
694 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 01:36:10.90 ID:WDa8o6L5.net] jQueryの勉強がめんどいって誰も主張してなかったと思うけど、何かと理由をつけて反論したいのね
695 名前:デフォルトの名無しさん [2016/05/12(木) 01:59:28.76 ID:9Y0usIRW.net] jqueryをちょっと練習してます。 サイトを見たんですが、なぜクロージャで実行するのでしょうか? function内だけを実行しても同じ挙動に見えます。 $(function(){ $("#text1").css('color','red'); }); $にfunctionを渡すとどうなるのでしょうか?
696 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 02:36:00.78 ID:WDa8o6L5.net] >>688 下記コードとほぼ等価 document.addEventListener('DOMContentLoaded', function () { $("#text1").css('color','red'); }.bind(this, jQuery), false);
697 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 02:39:56.36 ID:Xc9f48N7.net] やっぱりjQueryを使わないと長くなるなw
698 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 02:43:56.98 ID:Xc9f48N7.net] >>685 Reactは高品質な(準)標準UIコンポーネントが作られれば普及すると思うよ。 そういう世の中になったら、jQueryを嫌がるのと同じように ○○コンポーネントは使うな自作しろとか言うやつが出てきそうだけどw で、UIコンポーネントが出来た後は、ウェブアプリをポトペタで作れるようになって、 そしてUIコンポーネント同士を連携させるのにjQueryがやっぱり便利じゃね?って 言われるようになる。
699 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 08:01:45.83 ID:RFqkT9TF.net] >>691 標準コンポーネント要らなくない?reactなら。 ポトペタでコンポーネントを置いて、結局コンポーネント間の操作をjQueryでやるのはまず破綻すると思うが。 良きひとつの別解としてでもDOMから離れて行くと思うよ。 操作したいのはDOMではなく、コンポーネントだからね。 今までは、DOM≒コンポーネントだっただけで。
700 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 08:12:03.13 ID:ffZfaRCN.net] jQuery以外を知らず井の中の蛙となってる奴に何言っても無駄。 皆が新設でこれだけ教えてあげようとしてるのにムキになるだけだしどうしようもないクズだね。
701 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 09:11:36.25 ID:VZ0ffw6x.net] 蛙に失礼だろ
702 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 09:16:41.78 ID:6wLBo9DQ.net] とりあえず今からjs始めようとするのにjQueryを触るのはなしだってことだよね。
703 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 09:29:20.27 ID:pPHDojvh.net] 「JS」を始めようとするのには無し でもWebデザイン中心の入門としては学習資産があるからね
704 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 09:30:41.67 ID:Xc9f48N7.net] >>695 DOM APIを触らないのであればそのとおりだけど。 DOM APIを沢山触るのであれば、 それをjQueryに置き換えると遥かに効率が上がる。
705 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 09:37:11.92 ID:cWhHAzov.net] そりゃJavaを始めるのに面倒だからScalaで書いて呼び出すみたいなもの いつかは触らないといけないのなら最初からDOMを勉強した方がいい この先月に1回未満くらいしかJSをに触れる必要が無いのなら選択肢としてあり得る
706 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 09:52:19.65 ID:lQiQw1tJ.net] 必要なら$(elem)[0]を参照すれば済む
707 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 10:09:14.52 ID:cWhHAzov.net] id振ってりゃその名前で直にアクセスできるけどね
708 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 10:15:36.21 ID:RFqkT9TF.net] ID振るとか正気かわからん。 ページで、一意にしなきゃならんのだぞ。 「コントロールの中に幾つかのコントロールがある」コントロールを幾つか置いたらもう考えるのが面倒くさいし、状態変数(サーバで持ってるかクライアントで持ってるかに関わらず)との乖離が酷くなっていくじゃん。
709 名前:デフォルトの名無しさん [2016/05/12(木) 10:30:08.78 ID:cWhHAzov.net] それこそjQueryで扱う状況じゃないな 別にjQueryは抽象的だとか相対的な関係を扱うのに長けてるわけでもなく、 ただ「短く書ける」程度のものなのだから、 標準DOM APIで困難でフレームワークを使うような必要性が有るときは それはjQueryにだって不向きな場面であるのは自明 jQueryの様々な付加価値、AnimationとかFetchとかPromiseも時代遅れの仕様だし 最早document.querySelectorAllを$と短く書ける以上のシロモノじゃない いかに中途半端で役に立たないシロモノか分かったね?
710 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 10:33:36.37 ID:gnZrQsyk.net] >>701 jQueryだって平に見て何かをする以上のことはできない。 ShadowDOMとか使ってコンポーネント化したり高度なこととは折り合いがつかない。
711 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 12:22:57.19 ID:8PwOpBF8.net] だから相手すんなっての lodashの啓蒙()で延々と荒らされた状態から何も進歩してねえ
712 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 12:49:57.46 ID:RFqkT9TF.net] >>703 だから、jQueryでID指定でどうのとか、DOMapiでとかそういう発想じゃなくて、 ちゃんとコンポーネントとして考えようねって話だよ。
713 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 13:39:59.81 ID:zeyNygYO.net] enchant.js 用のマップエディタを、jQuery UI で作って、公開している人がいる jQueryは、ちょっとしたアプリにはいい。 こんなのDOMでは、面倒くさくて作れない
714 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 14:33:59.41 ID:QFbK3hrX.net] jQuery MobileとjQuery UIはjQueryとは別物 一緒に語るな
715 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 16:19:45.56 ID:iX4T91tZ.net] SPAを作るのに、SPA用FWを使いたいのですが、JQUIも使いたいです 組み合わせて使うのは、可能でしょうか?また、一般的な方法でしょうか?
716 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 16:46:03.41 ID:RFqkT9TF.net] >>708 SPA用フレームワークが何かによる
717 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 16:56:38.45 ID:iX4T91tZ.net] >>709 迷っているところです VuaやAngular2などがあるみたいですが、おすすめはありますか?
718 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 16:59:58.81 ID:3OjnTRaH.net] >>708 spaって何よ?
719 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 17:03:19.84 ID:iX4T91tZ.net] >>711 シングルページアプリケーション
720 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 17:37:38.25 ID:RFqkT9TF.net] >>710 vue.js使ってるけど、今までで一番感動した。 今はjQuery一切使ってないよ。 viewとモデルに専念してくれるから、あんまりお作法とか無いし。
721 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 17:46:16.47 ID:iX4T91tZ.net] >>713 Angular2は複雑みたいですね vue.jsの方が覚えやすいですかね?
722 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 17:49:42.18 ID:aiv+0stS.net] >>693 jQueryは三下のやるゴッコだから許してやれ
723 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 18:23:11.34 ID:gjMSeNc+.net] >>714 ライブラリ(フレームワーク)の選び方 コミュニティの大きい方 rc版とか論外 vueもag2も無い
724 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 18:42:57.19 ID:iX4T91tZ.net] >>716 バインド以外使いたい機能特にないんですが、vueじゃ駄目ですかね? UIはJQUIで作る予定ですが
725 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 19:53:00.09 ID:RFqkT9TF.net] >>714 覚えやすいよ。 >>716 もうstable何度も出てるよ。トップページのボタン見て思ったんだろうけど。 コミュニティは大きいに越したことは無いけど。 >>717 UIは何でjQuery UI使うの? アニメーションとかの為なら、vueでも出来るよ。 それこそバインドしておけば勝手に。
726 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 20:08:26.12 ID:BZDGS6so.net] 非同期な関数A、B、Cがあったとして Aを実行、callbackでエラーと結果を受け取る エラーなら終了 Aの結果がまずけりゃBを実行、cal(ry エラーなら終了 その後Cを実行 Aの結果がまずくなけりゃそのままCを実行 なんて流れで書きたいときCを実行するコード2回書かなきゃいかんの それとも超クールな書き方あるの
727 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 20:09:48.05 ID:iX4T91tZ.net] >>718 タブとダイアログを使いんですが、自分で実装出来ますかね?
728 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 20:58:00.22 ID:bBgG4/I/.net] idすら一意に管理できないようなのはエンジニアやめたほうがいい
729 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 21:03:34.87 ID:RFqkT9TF.net] >>720 タブは瞬殺。 チェックボックスの状態と、タブページのdisplayをバインドするだけ。 チェックボックスはcssでタブ耳みたいにしておく。 (チェックボックス自体は見えなくして、label forにスタイル当てるととても楽) ダイアログもほぼ瞬殺。ダイアログの中身はslotで書いとけばいい。 背景を暗くするためのdivと、その上に置くdivのdisplayを、ダイアログメッセージ!=""にバインドしとけば、 ダイアログメッセージに文字列入れるだけ。
730 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 21:09:40.37 ID:8TSCgVOi.net] >>719 超クールに書けますよ。そうJQueryならね
731 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 21:19:35.09 ID:BZDGS6so.net] >>723 いやマジで ぜんっぜんわかんねえ promiseも細かい分岐書こうとしたらなんかresolve地獄になった
732 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 21:26:53.32 ID:hY0jzmnf.net] >>711 まだこんなのがいるんだな
733 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 22:06:37.95 ID:5wVtNAV4.net] インスタント麺だろ 知ってるよ
734 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 22:33:10.83 ID:RFqkT9TF.net] p=new Promise(function(res,rej){res()}); p.then(a). .catch(b) .then(c) .then(/*全部終わった*/) .catch(/*cで死んだ*/) ではいかん理由があるのだろうか。
735 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 22:34:03.31 ID:lH3ZGyQp.net] たらこがない
736 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 22:34:57.59 ID:Xc9f48N7.net] >>705 > ちゃんとコンポーネントとして考えようねって話だよ。 いやコンポーネント作ったからってそれで完結するわけじゃなくて、 コンポーネントとコンポーネントを繋ぐものが必要だろ? そこにjQueryを使うんだよ。 >>713 > vue.js使ってるけど、今までで一番感動した。 > 今はjQuery一切使ってないよ。 DOM APIは使ってるかい? 使ってないだろう? そういうこと。 そのタイプのフレームワークを使うことでDOM APIを使わずに ウェブアプリを作ることは出来る。むしろDOM APIを直接触ってはいけない。 jQueryを使ってないっていうのは、jQueryはDOM APIを置き換えるだけだから、 DOM APIを使わないならば、必然的にjQueryも使わないだけ。 そしてこのフレームワークを覚えるのはjQueryよりも大変で単純なウェブサイトでは 大掛かりすぎて使うほうがコストがかかる。 整理するとjQueryの代わりに(もっとコストがかかる)フレームワークを使ったら jQueryもDOM APIも使わないでいいということ。 フレームワークがいらない場面ではjQueryを使うのが良い。DOM APIは出番なしw
737 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 22:36:45.62 ID:Xc9f48N7.net] >>725 > まだこんなのがいるんだな そりゃそうだろw 例えばWordPressのようなブログサイトをSPAで作るとかありえない。 用途で使うものは変わってくるんだよ。 ネイティブアプリのようなウェアプリを作るならば、フレームワーク(DOM APIは使わない) ブログのようなウェブサイトを作るならば、jQuery(DOM APIは使わない)
738 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 22:38:32.41 ID:Xc9f48N7.net] >>723 > 超クールに書けますよ。そうJQueryならね 言葉が足りない。 超クールに書けますよ。そうJQueryならね。 なぜなら、Promiseに近い仕様のDeferredを持っているから。 そしてjQuery 3.0からはDeferredはPromiseと互換性があるものになる。
739 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 22:39:13.51 ID:HUbJz6nz.net] カルボナーラもないじゃないじゃないか
740 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 22:39:52.59 ID:GBRI772U.net] ありえなくは無いだろ モバイルサイトでは一時期流行ったし
741 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 22:41:31.51 ID:46WAWDCU.net] >>729 気でも狂ってるのか、文盲なのか。 明示的にDOMを触るんじゃなくて、DOMのいじりはフレームワークに任せるんだよ。 お前もしかして、jQueryしか知らないんじゃないか?
742 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 22:41:59.44 ID:Xc9f48N7.net] >>722 > タブは瞬殺。 瞬殺と言うのなら、そのコードを書いたほうが楽じゃないのか?w ちなみにTwitter Bootstrapを使うって手もあるよ。 タブは瞬殺 <div id='ui-tab'> <ul class='nav nav-tabs'> <li class="active"><a href="#apple">Apple</a></li> <li><a href="#google">Google</a></li> <li><a href="#classmethod">Classmethod</a></li> </ul> <div class='tab-contents'> <div class="tab-content active"> ... apple 文章 ... </div> <div class="tab-content"> ... google 文章 ... </div> <div class="tab-content"> ... classmethod 文章 ... </div> </div> </div>
743 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 22:42:27.84 ID:46WAWDCU.net] だいたいコンポーネントとコンポーネントを繋ぐものとかねえよ。 「コンポーネントとコンポーネントを内包した」コンポーネントでしかない。
744 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 22:44:09.19 ID:Xc9f48N7.net] >>734 > 明示的にDOMを触るんじゃなくて、DOMのいじりはフレームワークに任せるんだよ。 明示的にDOMを触るんじゃなくて、DOMのいじりはjQueryに任せるんだよ。 だからこういうことだろ? フレームワーク VS jQuery DOM APIは(直接)使わない。(どちらも内部で使うのは当たり前) あとは作るものが、開発コストが高いフレームワークを 導入するレベルものかどうかで、フレームワーク か jQuery かを 選べば良い。
745 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 22:48:09.87 ID:46WAWDCU.net] >>735 <input type=checkbox v-model="tab.state" v-for="tab in tabs" /> : <div ..... v-for="tab in tabs" v-show="tab.state" > {{tab.content}} </div> みたいな感じ。
746 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 22:49:25.89 ID:46WAWDCU.net] >>737 そりゃ、明示的にDOMをいじってるんだよ。 vsじゃない。 ハサミとカッターナイフみたいなもん。 開発工数以外に、保守工数も考えて喋れよ…
747 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 22:50:04.64 ID:Xc9f48N7.net] >>736 HTMLはそもそも文書を書くものなわけで。 例えば論文だと思えばいいよ。 第一章、第二章、第一節、第二節なんてがあるような。 そういう論文形式のウェブページをコンポーネントにするのがおかしい。 論文ページコンポーネントがあって、一章コンポーネントがあって その中に一節コンポーネント、二節コンポーネントがあるとかやる気かねw ネットはこのような論文やブログ形式のサイトが多いわけで そういったページをSPAにしたりフレームワークを導入するのは 目的に対して使う道具が間違ってる。 そういうサイトにはフレームワークではなくjQueryが適している。
748 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 22:50:33.86 ID:46WAWDCU.net] >>738 思いっきり間違えた。radioだな。
749 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 22:51:14.28 ID:Xc9f48N7.net] >>739 > 開発工数以外に、保守工数も考えて喋れよ… 論文サイトの保守工数って何? HTMLの修正がメインなんだけどw
750 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 22:53:36.72 ID:3OjnTRaH.net] >>712 業界ではそう訳すのが普通なのか。
751 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 22:54:07.93 ID:46WAWDCU.net] >>740 写真と、図のキャプションは、まとめて、「figure 1」だよな。 figureなんとかの塊と、文字と、グラフで出来たものが、節であり、節が集まり章になり、論文になるでしょ。 第二節コンポーネントとか筋悪すぎるだろ。さすがjQuery使いだとしか思えん。 節コンポーネント。 節コンポーネントの配列を持つものが、章コンポーネント。 お前アホだろ。
752 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 22:55:09.86 ID:3OjnTRaH.net] >>719 cを関数で書けよ
753 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 22:56:13.29 ID:3OjnTRaH.net] >>725 いるよ。何か?
754 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 22:56:21.38 ID:46WAWDCU.net] >>742 htmlの修正というより、お前テンプレートエンジンすら使えないんじゃないのか? 一旦稼働したらそのへんはDBから取るだろ。常識的に考えて。 節コンポーネントとか出てくる時点で、手書きなんだろうな、その辺の処理がベタで。
755 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 22:58:50.06 ID:Xc9f48N7.net] >>738 そんだけなわけないだろw ↓これでいいかい? www.webopixel.net/javascript/1097.html タブで切り替えるやつ。表示するデータは外部から持ってくるのを想定してタブ切り替え的なやつ。 <div id="app" v-cloak> <ul> <li v-for="tab in tabNav" @click="changeTab($index)"> {{ tab }} </li> </ul>
756 名前: <div>{{ tabBody }}</div> </div> <script> new Vue({ el: '#app', data: { tabNav: ['JavaScript', 'PHP', 'HTML'], contents: [ 'JavaScriptのコンテンツ', 'PHPのコンテンツ', 'HTMLのコンテンツ' ], tabBody: "" }, methods: { changeTab: function (index) { this.tabBody = this.contents[index]; } } }); </script> [] [ここ壊れてます]
757 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 23:00:29.80 ID:Xc9f48N7.net] >>747 今保守工数の話だったよね? 保守するのはDBの中身? DBから何を取るの?文書データ? JavaScript関係ない話してるの?w
758 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 23:03:22.74 ID:iX4T91tZ.net] >>743 学生プログラマだから業界はよく分からん
759 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 23:05:07.78 ID:Xc9f48N7.net] >>744 はぁ? 俺は論文的なサイトにおいて、 コンポーネントはページの中の一部に入れるもので、 コンポーネントを内包している外側は、コンポーネントに はならないって話をしてるんだが? それなのに>>736 が > だいたいコンポーネントとコンポーネントを繋ぐものとかねえよ。 > 「コンポーネントとコンポーネントを内包した」コンポーネントでしかない。 とかいい出したんだろw 俺の話に流れを戻すと、コンポーネントとコンポーネントを繋ぐものが必要になる。 それがjQuery。
760 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 23:08:45.56 ID:46WAWDCU.net] >>748 お前がjQuery脳だとよくわかったわ。 なぜ、状態を持たないliの、さらにクリックのイベントでそんなことするのかいよいよ頭おかしい。 キーボード操作したいって要件増えたらどうよ。 >>751 外側触らないきゃいかんのは、外側含めてコンポーネントだろ。 俺ならサーバサイドでレンダリングするわ。 に
761 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 23:09:13.47 ID:46WAWDCU.net] 付き合いきれんわ。
762 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 23:12:24.76 ID:iX4T91tZ.net] 結局どうすれば… とりあえずJQ使わずに頑張ってみます
763 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 23:19:13.17 ID:Xc9f48N7.net] >>752 > なぜ、状態を持たないliの、さらにクリックのイベントでそんなことするのかいよいよ頭おかしい。 俺はググってコピペしただけですーw ついでにjQuery版 <div class="tab"> <ul> <li><a href="#js">JavaScript</a></li> <li><a href="#php">php</a></li> <li><a href="#html">html</a></li> </ul> <div id="js"> JavaScriptのコンテンツ </div> <div id="php"> PHPのコンテンツ </div> <div id="html"> HTMLのコンテンツ </div> </div> <script> $(function() { $('.tab').on('click', 'a', function(event) { $(event.delegateTarget).find('div').hide(); $(($(this).attr('href'))).show() }) }) </script> <style> .tab li { display: inline } .tab div { display: none; border: 1px solid black;} </style>
764 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 23:20:20.56 ID:Xc9f48N7.net] >>752 > 俺ならサーバサイドでレンダリングするわ。 なにを? コンポーネントを? それともコンポーネントじゃないものを 外側にするの?w
765 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 23:21:16.10 ID:BZDGS6so.net] >>727 例が簡単すぎたかもしれないが ていうかそれじゃ Aが終わってからA結果NGならB、Bが終わってからCキックしなきゃいかんのに BとCと非同期で並列に動いちゃわないか?
766 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 23:49:27.30 ID:46WAWDCU.net] jQueryでもDOMapiでもなんでも良いが、それこそ論文やなんやの文書構造を、無意味な汎用タブで破壊してるんだけどな。 コンポーネントでも、外側でも、必要に応じて順番に書いたり更新すりゃいいっしょ。 ある要素のinnerHTMLを差し替える以外の動きをするDOMいじり自体が邪道だと何故思えないんだろう。 要素、の意味も伝わらんだろうけど。 >>757 catchが解決してから、次のthenだよ。
767 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 00:04:02.10 ID:reYF/fvv.net] >>722 ダイアログ用のコンポーネントを用意するっ事ですよね?
768 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 00:05:04.57 ID:9UaBp3bW.net] >>758 おえ、やっぱ俺の頭が悪いのか?!否定はできないが 'use strict'; const errorA = null, errorB = null, errorC = null, resultA = 0, resultB = 0, resultC = 0; function mainScript( callback ){ var p = new Promise(function(resolve, reject){ sampleA(function( err, result ){ if( err !== null ) return callback( err ); if( result === 0 ) reject(); else resolve(); }); }); p.catch( function(){ sampleB(function( err, result ){ if( err !== null ) return callback( err, result ); }); }).then( function(){ sampleC(function( err, result ){ if( err !== null ) return callback( err, result ); }); }) } function sampleA( callback ){ setTimeout( function() { console.log('I\'m sampleA'); return callback( errorA, resultA ); }, 2000 / 1 ); }
769 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 00:06:44.46 ID:9UaBp3bW.net] function sampleB( callback ){ setTimeout( function() { console.log('I\'m sampleB'); return callback( errorB, resultB ); }, 2000 / 2 ); } function sampleC( callback ){ setTimeout( function() { console.log('I\'m sampleC'); return callback( errorC, resultC ); }, 2000 / 3 ); } // execute mainScript( function( err, result ){ if( err ){ console.log( err ); }else { console.log( result ); } }); こんなん書いて実行させるとACBの順番になる 書き方が悪いのか頭が最低に悪いのかもうわけわからん
770 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 00:43:14.48 ID:lm16bc2e.net] 仕様を理解してないだけ resolveやrejectを呼び出すまで始まらないのは 最初のPromiseコンストラクタにコールバック関数渡した時のみ 後のthen節やcatch節ではPromiseを返さないかぎり即座に解決され進む
771 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 00:45:15.67 ID:lm16bc2e.net] あとそもそもおかしい部分があるな
772 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 00:46:03.97 ID:9UaBp3bW.net] 連投しまくってすまん今やっと意味がわかった var A = new Promise();A.then(/*B*/).catch(/*C*/).then(/*D*/) って繋いだら catch(/*C*/)にはthen(/*B*/)の中身のfunctionの返り値が、DにはCのが返されるんだな Aの状態を変えてんじゃないんだな だからCに行くにはAがreject投げてBを通してCに渡すかBがrejectされたpromise渡さなきゃいけないと Promiseチェーンの繋ぎ目ではresolvedかrejectedなPromiseオブジェクトを必ずreturnしろと
773 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 01:00:51.12 ID:lm16bc2e.net] まあ色々パターンは有る。 チェーン内で1つ1つプロミスを作って、外部関数はコールバックベースというのが1つ。 でもそれよりも良いのが、外部関数がプロミスを返すようにすること。 そうすると特にメイン部分のコードはこんなにシンプルになる。 function mainScript( callback ){ return sampleA().catch( sampleB ).then( sampleC ) } mainScript( ).then( function ( result ) { console.log( result ); }, function ( err ) { console.log( err ); });
774 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 01:01:24.73 ID:9UaBp3bW.net] >>763-764 ああ、だいたい合ってたみたいでよかったが >後のthen節やcatch節ではPromiseを返さないかぎり即座に解決され進む これわかんないんだけど、p.then().then().catch()でpがrejectだった時 途中のthenはスルーして後続に渡してるってことか?
775 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 01:01:24.85 ID:lm16bc2e.net] function sampleA() { return new Promise( function (_, reject) { setTimeout( function () { console.log('I\'m sampleA'); reject(); }, 2000 / 1 ); }); } function sampleB() { return new Promise( function (resolve) { setTimeout( function () { console.log('I\'m sampleB'); resolve(); }, 2000 / 1 ); }); } function sampleC() { return new Promise( function (resolve) { setTimeout( function () { console.log('I\'m sampleC'); resolve(); }, 2000 / 1 ); }); }
776 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 01:04:41.92 ID:lm16bc2e.net] >>766 今言葉で何をどう言ったらいいのか分からないが コードを見て感じてくれ
777 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 01:14:47.49 ID:72dbC0n+.net] >>766 横レスだけど恐らく コンストラクタに渡したcallbackは渡される引数1,2を実行するまで進まないが then,catchに渡したcallbackはそれの返り値がpromiseでない場合は Promise.resolve(返り値)と同等になるってことだよ 自分で書いててもわかりづらいな! Promiseの本でググると親切丁寧な解説サイトが出てくるからオススメ
778 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 01:15:38.97 ID:UiJwdC85.net] ■OS/ブラウザ MacOSX/google chrome ■やりたいこと chart.jsを使ってcsvからグラフを作りたい ■問題点 公式サイトの最初のサンプルコードがまず動かない ■エラー表示 Chart.bundle.js:9562 Uncaught TypeError: Cannot read property 'width' of undefined ■HTMLコード codepad.org/hyd81TXN ■JavaScriptコード codepad.org/fFyC72HP chart.jsを使ってcsvのデータをグラフ化したいのですが、そもそも公式サイトのサンプルすら動きません。 何が悪いのでしょうか?HTMLには公式からDLしたChart.bundle.jsを読み込ませています。 一応全部公式サイトからソースをコピペしているのですが、上記のエラー表示が出てしまって グラフが表示されません。 公式サイト以外のサイトを見たりしてサンプルコードをコピーしたり色々トライしてますが、 絶対にchart.jsのソースのどこかにエラーが出てしまって表示まで至りません。 しかしこういう躓き方をしている人が見られないので自分が悪いのだと思いますが、 書いてある通りにやっているので何が悪いのかすら分かりません。 どなたかご指摘頂けませんでしょうか。 一応、ここの公式のドキュメントのget startedを試しています www.chartjs.org/docs/#getting-started-creating-a-chart
779 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 01:18:12.17 ID:9UaBp3bW.net] >>766 が舌足らずだったけど「途中のthen()が、後続の何かに、自分が受け取った最初のpをそのまま流してんのかね?」ってこと >>765 ,768 mainScriptの後のthenに2つ関数渡してらっしゃるますます混乱したわクソがと思ってMDN見に行った Promise.prototype.catch(onRejected) Promise.prototype.then(onFulfilled, onRejected) 頭がどうにかなりそうなんで、ちょっと休んで来るわ・・・
780 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 01:36:12.01 ID:lm16bc2e.net] .then(A).catch(B) を .then(A,B) と書けるってだけだよ 細かな違いとして前者はAによる棄却をBで受け取れるが、後者は受け取れない あとは全く同じ
781 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 01:50:33.04 ID:9UaBp3bW.net] >>772 うん httpモジュールでres.on('end', ... )とかイベント拾ってたのをなぜか連想して ああ全部そういうただの独自のオブジェクトなのか個別に覚えるしかないのかと気付いたら、気が抜けた 大量スレ汚しすまんかった&教えてくれてありがとう
782 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 03:06:47.45 ID:ominwoZM.net] 質問者でも回答者でもいいんだけど 最初の>719は満たされていない気が。 本当に必要なのはPromiseを途中で中止する方法かフラグ持ちまわし。
783 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 03:19:23.68 ID:mJ20W9Oq.net] なんでよ try{A}catch{B}finally{C} をPromiseでやりたいってだけでしょ? >>765 みたいに P(A).catch(B).then(C) でいいじゃん
784 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 03:30:35.00 ID:ominwoZM.net] 「エラーなら終了」だからだ。
785 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 06:57:32.80 ID:IgRnr+4Z.net] >>759 そう。 <div ..... v-show:"message=''"> {{message}} </div> で、 props:{message:""} みたいなのを、v-dialogとかなんかにしといて、 親の方で <v-dialog :message.sync="親画面でのメッセージ入れてある変数"></v-dialog> にして片隅に置いておけばいいよ。 >>748 みたいに、なんでもappに置くと収集つかないというよりも、処理の中身として責任範囲がおかしくなる。 タブのコンテンツも、コンポーネントとして書いといたほうが便利だろうね。 そしたら、中身の部分が <component :is={{tab.component}}></component>で済むし、中で自分の責任範囲でBL書いておける。
786 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 07:11:50.75 ID:IgRnr+4Z.net] >>776 最後にちゃんとcatch書いてるでしょ。 プロミスのチェーンを抜けるなら、catchのなかで例外出せば、catchがrejectされるから次のcatchまで吹き飛ぶよ。 全部辞めたいときは何か決まったの投げて、catchでエラー内容がそれであれば問答無用でもう一度投げれば良いと思うが。
787 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 07:29:31.44 ID:pDDJBshQ.net] >>774-776 azu.github.io/promises-book/#ch2-promise-and-array で解決すると思われる
788 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 07:51:53.74 ID:ominwoZM.net] だから最初にフラグ持ちまわしが必要と書いただろう。 例外の内容で判断しようとreject/resolveの引数だろうとフラグの持ちまわしだ。 >774以前には出ているように見えないがな。
789 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 08:15:06.36 ID:a0P6k3ow.net] 具体的にどういうフローを目指してるのかによるがallやraceを駆使すればフラグは不要。
790 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 08:26:55.08 ID:RmWBCU2+.net] >>780 >>760 をみる限り、値はグローバル変数出共有しているっぽいので、その設計に沿って回答したのだと思うが const errorA = null, errorB = null, errorC = null, resultA = 0, resultB = 0, resultC = 0;
791 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 08:45:01.29 ID:1hqv3t07.net] フラグ持ち回しはしない方がいい、Promiseらしさが壊れるから。 そういう必要が出てきたらCancellable Promiseみたいなサブクラスを使う。 もしくはPromiseに頼りきらずawait/asyncを使ってフロー制御をするのもいいと思う。 代わりにジェネリックを使うとこんなイメージ。 mainScript = spawn( function* () { var v = yield sampleA(); if ( v == null ) yield sampleB(); yield sampleC(); return v; }); function spawn(gfn) { return function () { var gen = gfn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(v) { var r = gen.next(v); Promise.resolve(r.value).then(r.done ? resolve : step).catch(reject); } step(); }); } }
792 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 08:46:29.24 ID:1hqv3t07.net] なぜジェネリックが出てきたし、ジェネレータだ
793 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 09:39:54.32 ID:SDu9DLl6.net] >>770 分かる方どなたかいませんでしょうか
794 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 10:12:49.22 ID:DzWKugDT.net] いますん
795 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 10:38:02.63 ID:vTuC8mEU.net] 公式が動かないようなライブラリはやめとけ その時点で確認不足ということは内部も低クオリティ
796 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 11:04:08.33 ID:Ww6Z8txE.net] reactの公式もコメントのデモが動かない
797 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 13:48:10.37 ID:2trIbeTl.net] >>752 >俺ならサーバサイドでレンダリングするわ。 アホか! 帯域幅ってのがあるだろ!! トラフィック増やしてどうするんだ!!! サーバもお前一人で使ってる訳じゃねえんだよ JSを早く動かすために、これだけブラウザが発達してきたのは、 出来るだけクライアントサイドで処理をさせるためだと思われる。 サーバでレンダリングとかテレホ全盛の考え方。 お前の頭はSSIで進化止まってる
798 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 14:37:59.97 ID:Ta4noneZ.net] >>789 > サーバでレンダリングとかテレホ全盛の考え方。 そうでもない。 Twitterがページ表示時間を5分の1に高速化。どのようなテクニックを使ったのか? www.publickey1.jp/blog/12/twitter51.html あと、SEO対策とか。
799 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 14:48:41.67 ID:2trIbeTl.net] >>790 興味深い。 JSが脚引っ張ってることは判った。 しかし、記事も書かれている通り、「これはある意味でHTMLとCGIで何でもやっていた昔に先祖返りしたような面」とも取れる。
800 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 14:55:04.11 ID:Ta4noneZ.net] >>791 あとは、そもそもがスマホだとブラウザ劇重が普通みたいになってるのもある とにかくファーストビューを最速で表示させないと、客が逃げる的な
801 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 14:56:56.33 ID:4noKv6w/.net] jsの実行速度の遅さがネックなのかな? どちらかとういとクライアントサイドの準備が終わったあとに webAPIを叩いてレスポンスを待つというのが遅い原因な気がする クライアント側のDBにキャッシュとして最新のwebAPIの結果を持ってれば解決しないのかな?
802 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 15:04:14.74 ID:IgRnr+4Z.net] >>791 だから>>685 で、当然の結果だと言ってるんだがなぁ。 vueserverやら色々サーバサイドレンダリングも進んでるんだけどね。
803 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 15:06:22.55 ID:IgRnr+4Z.net] >>793 最新のキャッシュかどうかはどう判断しようか。 いよいよクラサバ構成でのマスタ配信という轍を踏んでると思うよ。
804 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 15:09:46.63 ID:Ta4noneZ.net] >>793 遅い(と感じる)閾値は人それぞれだし原因もさまざまなんだが、 それでも閾値を決めて、それに達していなかったらいろんな手を打つ サーバサイドレンダリングは、その手段の一つ > クライアント側のDBにキャッシュとして最新のwebAPIの結果を持ってれば解決しないのかな? もちろんそれも、手段の一つたり得る
805 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 15:33:58.64 ID:mdx2tbNv.net] 初心者なのですが、 教則本を読んで勉強中、唐突に document.writeln が document.write に変わるところがありました。 writeln と write の違いが、調べても難しい説明が出てきて よく分からないので、教えて頂けないでしょうか。
806 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 15:42:20.64 ID:mdx2tbNv.net] 更に調べてみたところ、 「document.writeln と document.write の区別はあまりありません。 厳密には writeln は改行を与えますが、実際の表示は空白が与えられるだけで改行しません。」 と書いてあるサイトを見つけましたが、 何で改行せずに空白が与えられるだけなのでしょうか? 理屈が知りたいです。
807 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 15:45:31.39 ID:NtoS/Vlz.net] >>798 それはJavaScriptがどうのじゃなくてHTMLの表示上の仕様です。
808 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 15:46:59.70 ID:mdx2tbNv.net] そうなんですね、何となく分かりました。 ありがとうございます。
809 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 17:31:48.27 ID:IgRnr+4Z.net] >>798 そのサイトが、語弊があるんじゃないだろうか。 preタグの中でやってみれば、なるほどこういう意図かと理解できると思う。
810 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 18:34:46.24 ID:BH4lK65P.net] JavaScript(JScript)をWindows上のWSHで実行するようなことを、 Linuxその他のプラットホームでやることは可能ですか? ブラウザを使うことなく、純粋なスクリプトとして実行するためのインタプリタで、 WSHと互換性があるか、少しの修正で使えるものがあるといいんですけど。 Node.jsをそのまま試してみたけど、使えるのかどうかわかりませんでした。
811 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 20:34:46.05 ID:OPyrjsLR.net] 不可能
812 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 20:52:51.01 ID:XJxcxuLX.net] nodejs使え
813 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 21:03:08.20 ID:aGwZdMLQ.net] WSH使ってるくらいだからWSObject(もしくはその派生クラス)使ってるでしょ あんなものnodejsに移植してる奴なんかいないから無理だって 言語仕様は同じだけど標準ライブラリが完全に異なると思って
814 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 21:21:09.03 ID:XJxcxuLX.net] まだ誰も使ってるとは言ってない
815 名前:デフォルトの名無しさん mailto:sage [2016/05/13(金) 21:41:38.13 ID:na9JUjrP.net] fizzbuzzくらいなら動くんじゃね
816 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 00:12:44.71 ID:8701OXOx.net] >>793 > jsの実行速度の遅さがネックなのかな? フレームワーク使うからだろう。 jQuery程度なら軽いが、フレームワークを使いだすと重くなる。
817 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 01:59:49.66 ID:QvhKyvW2.net] <input type="file" id="files" name="files[]" multiple /> で作ったボタンの上にマウスオーバーするだけで content.js:1 Uncaught TypeError: Cannot read property 'startContainer' of null というエラーが出まくるのですがこれって原因は何なのでしょうか・・・?
818 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 03:26:06.47 ID:QvhKyvW2.net] もう一つ聞きたいのですが、 var boo = [69.61, 69.61, 71.26]; で定義した配列booと、 var foo = Array(); foo.push(69.61); foo.push(69.61); foo.push(71.26); で定義した配列fooは、本質的に別物なのでしょうか? とあるプログラム部分でbooだと特にエラーが起きないのですが、 fooを使うとエラーになってしまいます。 動的に値を配列に追加していくので、できればfooみたいなやり方で やっていきたいのですが、型がbooと違うのか上手く動作させれず・・・ booの型で動的に値を埋め込んでいくことはできないのでしょうか?
819 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 04:13:25.94 ID:Mj0ak4cN.net] あのね、どこでどういうエラーが起きたのかが重要なのよ。 勝手に早とちりしないで事実だけを書いてくれないと何も分からん。
820 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 11:19:54.09 ID:V6UHwE5G.net] わかる人いたら、これ教えて <SCRIPT type=text/JavaScript> (function(e) { e+='w.\x6dove\x54'; eval(e +"o(25206-17206,25206-17206)"); }('\x77\x69ndo')); </SCRIPT>
821 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 12:00:08.39 ID:ihhM7ekJ.net] evalをconsole.logにすりゃわかるんじゃね
822 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 12:03:28.38 ID:pzg55Rfk.net] logを吐かせて、しっかり精査
823 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 12:38:11.14 ID:pN030Nh6.net] >>812 Closure Compiler
824 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 16:38:15.52 ID:HyfMh4Ah.net] 普通の文字をわざわざ16進数表現にしたりバラバラににしたのを連結して わかりにくくしてるが結局 window.moveTo してるだけだけどこれどっから 持ってきたの ?
825 名前:802 mailto:sage [2016/05/14(土) 17:27:44.14 ID:tfv0WV0e.net] レス有難う。 やはりそのままでは無理なんですねぇ。 Node.jsでも、WSH依存の部分を修正すれば場合によってはいけるのかもしれないけど、 結局、全部書き換えることになりそうだし、 同じものをPythonで書きなおしたやつがとりあえず動いているので、 少しずつ試していこうと思います。 お騒がせしました。
826 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 17:58:03.35 ID:ereeE+kF.net] 書きなおすのとポリフィル作るのどちらが楽かな? npmにWSHインターフェイスのバインディングありそうな気もするけどね
827 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 18:10:48.59 ID:gWasBYdh.net] スマホ時代だから遅い重いのは致命的 ユーザーからしたら中身が何で作られてるかなんて関係ないからね 遅い重いという印象がすべて
828 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 19:28:19.79 ID:zfuHSTBA.net] >>809 content.jsの該当行を確認 startContainerプロパティの上位オブジェクトがnull >>810 両者は同じ エラーは別の原因
829 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 19:37:15.35 ID:Nq/XkyM+.net] >>816 htaワンクリウェアのmshta.exe系のhtmlから
830 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 19:46:16.66 ID:LHgIiqHo.net] 迷惑スクリプトと知っていながら素性を隠して質問する辺りが悪質だね
831 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 19:50:55.68 ID:qmHdvbFz.net] 素性なんてしらんでもみりゃ大体想像つくだろ 相手するやつが悪い
832 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 20:00:56.62 ID:VvvSwEAG.net] どう見ても質問者の方が悪い
833 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 20:01:42.92 ID:Mz7/xxxM.net] やーねゆとり脳全開で
834 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 20:05:01.00 ID:YqHA7/Dn.net] 泥棒と盗品みたいだ
835 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 22:28:10.05 ID:tMHSdAr/.net] >>820 そもそもcontent.jsなんてソース上に存在しないのですが これはどこにあるjsファイルなのでしょうか・・・?
836 名前:デフォルトの名無しさん mailto:sage [2016/05/15(日) 03:15:40.47 ID:Bj+M+4IS.net] >>824 ゆとり向けjQueryみたいだな
837 名前:デフォルトの名無しさん [2016/05/15(日) 09:46:31.39 ID:T9TBOpYO.net] >>827 貴方と同じ環境を再現出来ない私にはわからない コンソールから該当コードをクリックしてジャンプすれば分かるのでは? ブラウザの拡張機能が怪しい気はしますが、最低限の切り分けをしてから(こちらで再現できるだけの情報を集めてから)質問してくれ
838 名前:デフォルトの名無しさん mailto:sage [2016/05/15(日) 23:20:40.72 ID:/tOCUDfL.net] >>810 >var foo = Array(); var foo = []; このように空配列リテラルを使う Array()を、new 無しでも、コンパイルエラーにならないだろ。 function など他のオブジェクトでも、new 無しでエラーにならないから危険! new有りなら、オブジェクトを作成して、new無しなら、primitiveになるとか、 ちょこまか意味を変えたりしていて、JSははまるよ。クソ言語w リテラル表記があるものは、必ずリテラルを使うこと。 {}, [], 数値、文字列、ブール、function など
839 名前:デフォルトの名無しさん mailto:sage [2016/05/16(月) 04:34:07.48 ID:JUreB/WS.net] 情弱に悪質な嘘を教えるとか最悪だな。
840 名前:デフォルトの名無しさん mailto:sage [2016/05/16(月) 10:15:18.62 ID:9paZkQVY.net] var宣言頭にまとめて書いてる人もfor文のループ変数だけはそこで宣言してるの多いけど これなんか理由あるの? どうせブロックスコープないんだしわざわざここでvar書いてまでやる必要ないと思うんだが
841 名前:デフォルトの名無しさん mailto:sage [2016/05/16(月) 10:19:46.50 ID:Pz1/eYkg.net] >>832 for (var i;;) は関数スコープだと思うが、なぜブロックスコープだと思った?
842 名前:デフォルトの名無しさん mailto:sage [2016/05/16(月) 10:23:35.60 ID:OMrrj/i+.net] ちょっと水かぶってくる
843 名前:デフォルトの名無しさん mailto:sage [2016/05/16(月) 10:39:19.24 ID:QOX8tKrr.net] うそつけよ 普通に巻き上げるだろ
844 名前:デフォルトの名無しさん mailto:sage [2016/05/16(月) 10:53:16.63 ID:NmJqda0z.net] >>835 誰も巻き上げの話はしてないと思うが、誰にいってるんだ?
845 名前:833 mailto:sage [2016/05/16(月) 10:56:52.51 ID:Pz1/eYkg.net] あー、「ブロックスコープない」か 読み間違えてた、すまん >>832 ブロックスコープはES6のlet文で定義できるので将来的にlet文に入れ替える事を見越して for(var i;;) と書く事はある
846 名前:833 mailto:sage [2016/05/16(月) 10:58:33.27 ID:Pz1/eYkg.net] ちなみにブロックスコープ的に使わないのならforでなく、whileを使うな、俺は var宣言は関数の始めに纏めるからforを使う理由がなくなる
847 名前:デフォルトの名無しさん mailto:sage [2016/05/16(月) 11:00:43.97 ID:5XiTKntP.net] このようにこんな時間はアスペしかいないので会話が成立しないのです
848 名前:デフォルトの名無しさん mailto:sage [2016/05/16(月) 11:24:39.21 ID:doSrVBRT.net] >>835 はさすがにアホだと思った
849 名前:デフォルトの名無しさん mailto:sage [2016/05/16(月) 12:19:48.45 ID:W2dty7+B.net] 間違いは誰にでもある ただし、間違いを正さない人は信用を失う 間違いを横目に嘲笑する人も同じ
850 名前:デフォルトの名無しさん mailto:sage [2016/05/16(月) 12:25:50.69 ID:k9DH3bKO.net] 真っ正面から笑えばいいわけですね ハハハ
851 名前:デフォルトの名無しさん mailto:sage [2016/05/16(月) 12:46:25.09 ID:mni4SpUN.net] + JavaScript の質問用スレッド vol.119 + [無断転載禁止]©2ch.net echo.2ch.net/test/read.cgi/tech/1457452716/ 次スレはここでいいのかな
852 名前:デフォルトの名無しさん mailto:sage [2016/05/16(月) 17:28:20.34 ID:/Amsl+oX.net] echo.2ch.net/test/read.cgi/hp/1456250334/994 より > どれも使うとこでは使ってるが 今回使わなかった理由になってないが > JSで他のといっしょに変えるときに便利な場所で変えてる そういうのはCSSで定義しておいてid,class,属性で入れ替えるのがベター 振る舞い(JS)の中でデザイン(CSS)を埋め込む設計は好ましくない > localStorage関連は使えないと普通にエラー出るが? getItemの仕様を読む限りでは例外を発生させる記述が見つからないが、どんな条件で例外が発生する? https://triple-underscore.github.io/WebStorage-ja.html#dom-storage-getitem
853 名前:デフォルトの名無しさん mailto:sage [2016/05/16(月) 17:59:53.18 ID:OpsyH8jx.net] >>844 localStorageが無い環境の話をしてるんだと思うんだが canvasのwidthをCSSとかあまりにも馬鹿げてる
854 名前:デフォルトの名無しさん mailto:sage [2016/05/16(月) 19:55:20.62 ID:WK3gL2Wm.net] はいローカルルール Javascript はweb制作管理板へ + JavaScript の質問用スレッド vol.130 + echo.2ch.net/test/read.cgi/hp/1463395557/
855 名前:デフォルトの名無しさん mailto:sage [2016/05/16(月) 22:36:06.05 ID:4gQeSxod.net] >>845 そういうのはtry-catchではなく if (typeof localStorage === 'object') で対応するものだと思うが
856 名前:デフォルトの名無しさん mailto:sage [2016/05/17(火) 09:04:33.01 ID:iJoQH+/I.net] あるサイトにログイン(ユーザ名、パス入力、ボタン押下)した後に、ログイン後のメニューボタンを押下するという処理を自動化したいのですが、可能でしょうか?
857 名前:デフォルトの名無しさん mailto:sage [2016/05/17(火) 09:11:31.07 ID:4p4kNHWE.net] 可能だから頑張って
858 名前:デフォルトの名無しさん mailto:sage [2016/05/17(火) 09:33:40.05 ID:74/nDTTZ.net] >>848 メニューボタンの一個くらい自分で押せよ
859 名前:デフォルトの名無しさん mailto:sage [2016/05/17(火) 09:36:24.29 ID:iJoQH+/I.net] ある画面のロードを監視する方法がわかりません。 ボタン押したりするのはできるんですが。
860 名前:デフォルトの名無しさん mailto:sage [2016/05/17(火) 09:37:18.03 ID:iJoQH+/I.net] >>850 1000回とか繰り返すので勘弁してほしいです
861 名前:デフォルトの名無しさん mailto:sage [2016/05/17(火) 09:44:11.70 ID:74/nDTTZ.net] >>852 一秒に3回クリックすれば5分くらいで終わるだろ。手でクリックしろよ。
862 名前:デフォルトの名無しさん mailto:sage [2016/05/17(火) 13:32:19.05 ID:VlcJbzE+.net] >>167 は null, '' しか考慮していない時点でダメ "123hoge" を撥ねない時点で期待通りに動かない(自然数以外も代入されうる)
863 名前:デフォルトの名無しさん mailto:sage [2016/05/17(火) 13:58:39.65 ID:3b4WOCVF.net] >>847 それはそうだが>>844 はエラーや例外が発生しないって言ってるから反論しただけ
864 名前:デフォルトの名無しさん mailto:sage [2016/05/17(火) 23:33:51.85 ID:tk+UiW/4.net]
865 名前:f="../test/read.cgi/tech/1457452716/848" rel="noopener noreferrer" target="_blank">>>848 Ajaxで可能。 静的なら色々問題あり。 [] [ここ壊れてます]
866 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 01:38:27.01 ID:0cJyFiRr.net] >>851 ユーザースクリプトを探しているのかい?
867 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 01:44:52.11 ID:LETtJAKk.net] メニューボタン1000回押すとかワロス
868 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 06:29:07.76 ID:mIb5QxnS.net] そんなUIは嫌だな
869 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 06:57:28.13 ID:7AJ9I4s1.net] Visual Studio Codeを使用しながら、正規表現を勉強しているところなのですが、 半角の\が、バックスラッシュになってしまって入力できません。 どうすればいいんでしょうか?
870 名前:860 mailto:sage [2016/05/18(水) 07:14:44.20 ID:7AJ9I4s1.net] すみません、たぶんバックスラッシュでいけるっぽいですね……
871 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 09:12:39.49 ID:a+LRsQV1.net] >>856 ありがとうございます。 試したらクロスドメインの問題をクリアしなければいけませんでした。 まあ、サーバー側に用意したらいけそう。 話つけるのがちょっと面倒。
872 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 09:22:43.30 ID:a+LRsQV1.net] >>857 外部からサイトに対する1連の操作を自動にする方法を探しています。(クライアントから実行できるのをユーザースクリプトという?)
873 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 11:00:49.04 ID:b7PveHVL.net] >>848 ,862 普通は「あるサイト」側で外部からログイン出来るようにAPIを用意する
874 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 11:06:01.29 ID:l6XhguKG.net] 当然工数は確保する前提でお願い
875 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 12:28:09.51 ID:a+LRsQV1.net] >>864 あくまでテストなので外部に公開する機能は基本的に設けないでテスターが工夫する感じです
876 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 12:33:48.44 ID:b7PveHVL.net] >>866 https://ics.media/entry/5759
877 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 12:39:49.80 ID:a+LRsQV1.net] ありがとうございます。 ただ、javascriptとかクライアントサイドの技術を学びたいのでツールは使いたくありません。 ひたすらテスターとして現場に送り込まれて、手作業ばっかでまったく成長しないので。
878 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 12:40:41.91 ID:T1Rn
] [ここ壊れてます]
879 名前:Kav0.net mailto: ド低脳にSeleniumは高度すぎんよ [] [ここ壊れてます]
880 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 12:42:36.58 ID:T1RnKav0.net] >>868 馬鹿じゃねーのか ここは問題を解決する場であってお前の道楽に付き合うところじゃねえぞ 脳なしじゃなくてただの馬鹿だったな
881 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 12:47:14.84 ID:a+LRsQV1.net] >>870 seleniumは使えるのでいいです。 テスターなんで開発環境とかないんで、jsvascriptがいいです。
882 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 12:51:02.81 ID:Zje/v9g4.net] 解答を聞いてばかりでも成長はしないと思いますがどうでしょう?
883 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 12:57:26.01 ID:b7PveHVL.net] >>871 ブッマークレットなりコンソールでコードを叩くなりすればいいのでは?
884 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 13:21:34.56 ID:LRw1LBCt.net] >>868 テスターなら、試験仕様通りに手でやってね。 試験仕様に、Seleniumでテストする、スクリプトでテストするって書いてあればそうすればいいけど。 こんな意識のテスターに金払ってると思うと寒気がしてくる。 良くて、そのコードが手作業と必ず一致すると保証する試験してもらうよ、って言われるんじゃねえの?
885 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 13:32:22.46 ID:xnaxo8GZ.net] 使うかどうかはプロジェクト次第として WebUIのテスターならseleniumは常識的に使えて欲しい
886 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 13:44:50.07 ID:t5tbrB4/.net] >>875 テストの内容にもよるが、selenium自体そんなに難しくないだろw テストスクリプトも殆どパターン化されているし
887 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 15:01:09.89 ID:a+LRsQV1.net] >>874 じゃあまずその手作業が正しかったかどうか証明する必要があるな。 動画でも撮るのか?
888 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 15:20:32.99 ID:mAdSi+vM.net] はい ただのアスペでしたね
889 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 15:36:47.31 ID:LRw1LBCt.net] >>877 だから、方法をテスト仕様で縛って、 ステップ毎のエビデンス提出してもらうんでしょ。 本来の状態では保証されてる、ってかされてる様にエビデンス取るんだよね。 あなたが本来やるべき事が、即ち証明なの。 それを、方法を変えられたら品質保証出来ないから、その保証すべきだよねって話。 目の前にある事の消化も理解も出来てない状態で、横着しないで。
890 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 15:38:15.47 ID:hllzSfm6.net] ほんとこれ>>874
891 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 18:29:35.91 ID:a+LRsQV1.net] >>879 テスト仕様書俺が作るので
892 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 18:34:11.73 ID:X9YKyKZO.net] 無能が多すぎてうんざり
893 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 18:46:00.68 ID:LRw1LBCt.net] >>881 であれば、仕様承認取れればいいんじゃないの? 俺ならツールの仕様とか、スクリプトの仕様とか出してもらうけど。
894 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 19:22:13.20 ID:Q3cKTCnY.net] ゴミ相手すんのやめろ 少しでも脳味噌が残ってるならな ゴミだけがゴミの相手しろ
895 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 19:33:03.96 ID:a+LRsQV1.net] 1年ぐらいテストしかしてない。 死にたい。
896 名前:デフォルトの名無しさん [2016/05/18(水) 23:04:57.22 ID:PaBg5Suu.net] >>885 どうぞどうぞ
897 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 08:52:44.75 ID:F9dbx1t6.net] ヒントを元に調べる行動力がない時点でダメだな
898 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 12:47:27.50 ID:kgA9a3Ct.net] こんな感じのセレクトボックス実装したいんだけど、おすすめのライブラリない? i.imgur.com/rsdYlaA.jpg
899 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 13:40:32.96 ID:Gndv5tvj.net] コレくらい自作しろ
900 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 14:33:31.92 ID:XceO64sZ.net] 自作するとどうせスマホでは押しにくいとかなるから こういったのはブラウザのデフォルトの挙動に頼るのがベスト
901 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 17:47:12.09 ID:iQHXc9JV.net] letは非推奨なので使ってはいけないんですか? varとconstだけ使えばいいってことですか? https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Deprecated_and_obsolete_features#let
902 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 18:33:51.98 ID:oGDIanH4.net] >>891 let ブロックおよびlet 式は非推奨です。 https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/let let文 let hage = 5; let式 let (hage = 5) console.log(hage); ←非推奨 letブロック let (hage = 5) { console.log(hage); } ←非推奨
903 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 18:43:50.85 ID:N4p5+HHg.net] 同じキーワード使い回すのはやめろォ C#のusingテメーもだ
904 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 18:46:44.53 ID:LwVosxPn.net] >>890 もっともらしい意見
905 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 19:35:45.59 ID:j7aj50YW.net] let it be.
906 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 21:04:55.44 ID:d6QVDzJQ.net] これに関してはmozillaが悪い
907 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 00:46:31.23 ID:hipHCKAv.net] 全く悪くない。 mozillaがlet文含めて多種多様な新機能の実証実験を進めてくれたからこそ今があるんだ。 ただ単にその成功物がlet文で、失敗物がlet式だったってだけ。 これに関して悪いもクソもない。
908 名前:デフォルトの名無しさん [2016/05/20(金) 00:48:02.78 ID:H7cAs/1H.net] jQueryのセレクタはid以外を指定する場合、検索のコストがかかるから できるだけキャッシュしたほうがいいってきいたんだけど、 どういうスタイルで書くのがいいの? ↓みたいな書き方でいいの?クロージャとかグチャグチャになってメモリリーク起きそうなんだけど $(function() { //いろんなところで使う要素をキャッシュ var $link1 = $('.link1'); var $list1 = $('ul'); var $form1 = $('form'); $link1.click(function() { showList() }); function showList() { ・・・・ $list1.show(); } function postForm(data) { $form1.find('.names').val($list1.text()); ・・・・ } });
909 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 07:11:39.43 ID:Wd6dbEDs.net] 頭おかしい。 余計な手間かけるようになるくらいならライブラリ使わなきゃいいだけ。
910 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 08:43:27.72 ID:Q8wuf6+k.net] >>898 2回以上参照する値は変数にキャッシュする イベントハンドラ関数も同様 それから、変数のスコープ範囲をよく考える 全ての場所から参照できるようにグローバル変数化するのはDOMツリーから参照するよりは速いが、賢い手段とはいえない クロージャや引数を使ってスコープ範囲を狭くしろ event.dataやFinction#bindを使いこなせ
911 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 09:34:42.32 ID:b4YdUNc7.net] >>898 検索のコストが問題になってからやるべきこと。 HTMLがシンプルであれば、全要素が少ないから たとえ全要素を捜査するようなものでもコストは低くなる。 キャッシュの前にやるべきことは、チェーンを使うことだ。 そしてイベントハンドラの中では$(this)を使うのは当然として、 $(this).find('・・・')を使えば、thisの中の要素のみを調べるから これもid以外でも要素数が少ないから速くなる。 キャッシュ以前にそもそも検索自体を無くすことが第一。 その後で検索のコストが問題になるならば キャッシュすることを考えろ。
912 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 09:42:42.61 ID:gZ6OuKvF.net] あと、contextを付ける
913 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 09:44:50.19 ID:0SZSpLq/.net] >>902 なんで?
914 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 10:28:40.39 ID:+mY5/2X3.net] let a = 1;見たいのは良くてそれ以外のletを使うなってことですか気をつけます
915 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 10:31:34.87 ID:+mY5/2X3.net] あと特定のオブジェクトにキーを送信できるinitKeyboardEvent()なんですが https://developer.mozilla.org/ja/docs/Web/API/KeyboardEvent#initKeyboardEvent() これも非推奨なんですよ JavaScriptで非推奨ではない方法ってありませんか? 目的はテスト用にkeydownイベントハンドラを動かしたいからです。
916 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 12:57:07.02 ID:lJQ06Hkz.net] >>898 ローカル関数内でvarしてたらキャッシュにならない。 グローバルでvarしないと。 ただし要素の内容が変更されたときに 必ず更新してあげないといかんね。
917 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 13:25:36.56 ID:uAQMGuDV.net] いろんなところで使う固定値を定数化して広いスコープに置いて保守性高めるって、プログラミング全般でよくやると思うんだけど、JavaScript+jQueryにおいてはパフォーマンスの問題が起きるまではやるなってこと? 代わりにセレクタ文字列を定数化するにしても、$(selector)するたびに検索コストかかるんならjQueryオブジェクトの方を定数化(キャッシュ)しとけばいいじゃんってのは自然な考えだと思うけど。
918 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 13:58:44.21 ID:WbkkTWqu.net] >>903 context 配下の要素が検索対象になるからだろう jQuery('.hoge', element);
919 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 14:20:12.83 ID:QEbnF3Vk.net] 1か0でしか物を考えられない池沼の臭いがする
920 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 14:29:40.19 ID:xL1EKSbm.net] >>909 すげーっ それって、2進数じゃんww むしろ、CPU的思考ができるってことかwwww
921 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 14:46:10.42 ID:SdkEgw4M.net] >>907 その考え方でいいと思う jQueryはメソッドチェーンで変数の数を減らせるが、メソッドチェーンは好みがありそうだな
922 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 14:47:52.90 ID:SdkEgw4M.net] >>906 そんなことはない スコープチェーン上に変数があればいい >>898 のはさすがにキャッシュになってないとは思うが
923 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 18:42:24.79 ID:3WWxWns1.net] >>905 init系は全部非推奨。今はコンストラクタを使う。
924 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 20:02:55.90 ID:ZmS5TVH1.net] >>905 非推奨を避けるなら仕様書を読まないと https://w3c.github.io/uievents/#interface-keyboardevent https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/KeyboardEvent
925 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 20:19:39.26 ID:qe62nTAD.net] >>905 このへん。 https://developer.mozilla.org/en-US/docs/Web/API/Event/initEvent ただし、テストには向かんよ。 「なぜかイベントが発火しない」 「画面に見えているものと触ってるものが違うのでイベントが起こらないはず」 「イベントハンドラを殺してあること自体の試験」 って試験だけ手でやるくらいなら、テストフレームワーク使って。 一回、珍しいケースですが…って検出した(つもりになってる)報告受けて調べたら 「キーボードイベントの帳尻が合ってないからイベントを拾わなくなる」 だった事があって、こっちの工数無駄にした事とかかなり責めた。 そういうはっきりしない状態に陥ったら安全側に倒れて、イベント拾わなくなるのは仕様だしね。
926 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 23:24:25.98 ID:b4YdUNc7.net] >>907 「早すぎる最適化は諸悪の根源である」という言葉を知らなければモグリだよ。 jQueryにかぎらず、プログラム全般において早すぎる最適化をしてはいけない。 それからこれは「固定値を定数化して保守性を高める」という話じゃない。 あんたが言ってるのは、マジックナンバー、つまり数値じゃ意味がわからないときに 限って定数化するって話だ。 もともとセレクタにはわかりやすいID または クラス名が使われている。 $('#search-form') というものを var serch_form = '#search_form'; $(search_form)としたって、 保守性は高くなってないし、var $serch_form = $('#search-form')としても保守性は変わらない。 どうせID名が変われば、変数名も変わる。 一つの関数内で同じjQueryオブジェクトを何度も使うならば・・・つまりこういうコード function foo() { $('#search-form').on(・・・); $('#search-form').attr(・・・); $('#search-form').css(・・・); } 短い名前を割り当てるのは理にかなっている。 function foo() { var $form = $('#search-form'); $form.on(・・・); $form.attr(・・・); $form.css(・・・); } だけど広いスコープで短い名前を割り当てるのは保守性の面から見て良くない。 短いスコープの中でのみ通用する話。そしてこれは知っての通りメソッドチェーンを使うことで変数は不要になる。 (つづく)
927 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 23:29:45.35 ID:b4YdUNc7.net] そして、 var $forms1 = $('.forms'); //・・・(1) function foo() { var $forms2 = $('.forms'); //・・・(2) } この(1)と(2)は意味が違う。(1)は最初に実行した時の要素をずっと指し示めしているのに対して、 (2)は現在のDOMの状態から新たに検索する。 DOMは変化するもの(言い方を変えるとグローバル変数のようにどこで誰が変更するかわからない)と言う 前提に立てば、最新のDOMの状態を参照した方がいい。 もともと早すぎる最適化をするのは、悪い習慣であることに加え 最適化をするリスクを考えると、問題にならない限りやらないほうがいいし、 そもそもちゃんとしたjQueryの書き方をしていれば、jQueryオブジェクトを キャッシュするなんてことが必要になることが少ない。
928 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 23:33:28.30 ID:b4YdUNc7.net] 訂正 > 最適化をするリスクを考えると、 リスクというより、jQueryオブジェクトをキャッシュするというのは 挙動を変えてしまう行為って言ったほうがいいかな。
929 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 23:46:06.92 ID:b4YdUNc7.net] それにしても「早すぎる最適化は諸悪の根源である」っていう 言葉を知らんっていうのは本当に恥ずかしいことだよ。 それだけは強く言っておきたい。 もし反論したくなったら、何か書く前にこの言葉でググってからにしてくれ。
930 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 00:11:02.85 ID:IZ4o6nB+.net] >>916 保守的なコードが最適化したコードと同じなだけで、主軸は保守性って書いてあるのになぜクヌースの言葉が出るのか? 保守性の悪いコードは往々にしてアルゴリズムにも難がある事が多いのでパフォーマンスも悪くなる場合があるってことでしょ
931 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 00:23:02.83 ID:q2Zh6d9K.net] なぜでるのか?って「早すぎる最適化」の話をしているからだよ。 保守的かどうかは全く関係ない。 保守性の話がどうしてここで出てくるのか? 早すぎる最適化をすると、保守性が下がるという話なら 意味はわかるがね。
932 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 00:24:56.22 ID:q2Zh6d9K.net] 説明が分かりにくいか? わかりやすく言おう。 変数に入れてキャッシュすることは 早くすること(最適化)にはつながるが、 保守性は下がる。
933 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 00:35:02.60 ID:hclWowah.net] 基本的にキャッシュって諸刃だからね ブラウザキャッシュですら邪魔になることもあるし
934 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 00:46:08.12 ID:TJV+wjVx.net] 現実的には、一月かかって最適化しても、0.1秒も速くならないことが多い
935 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 00:58:37.95 ID:tbwSFfzJ.net] なぜ変数に入れることが保守性が下がることになるのか、さっぱり伝わってこない 普通は人間の目で見てわかりやすいように変数を宣言する パフォーマンスUPは二の次
936 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 01:01:16.37 ID:rd5jwdZc.net] >>924 お前が無能なだけなんじゃね
937 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 01:14:22.95 ID:tbwSFfzJ.net] 変数を使わずに書いてみた 初見で読む気が失せるレベルである for (var i = 0; i < document.getElementById('hoge').tBodies[0].rows.length; ++i) { for (var j = 0; j < document.getElementById('hoge').tBodies[0].rows[i].cells.length; ++j) { document.getElementById('hoge').tBodies[0].rows[i].cells[j].classList.add('foo'); console.log(document.getElementById('hoge').tBodies[0].rows[i].cells[j].firstChild.data); } }
938 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 01:16:18.17 ID:tbwSFfzJ.net] × 変数を使わずに書いてみた ○ 変数を使わずに書いてみた
939 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 01:17:11.33 ID:tbwSFfzJ.net] >>928 で訂正文を間違えた × 変数を使わずに書いてみた ○ 出来るだけ変数を使わずに書いてみた
940 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 01:56:39.03 ID:NEdgpV5s.net] >>927 可読性が下がる上に、ループ上限数にカウンタはありえないんじゃないかな。 セレクタ使えば'hoge'の下の要素を全部、も書ける(#hoge > table :first-child > tr >td)んだし。 まあ俺なら'foo' を足しうるものに、中身無しの要素つけといて、その要素持ってるもの全部、って取る。
941 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 02:14:55.63 ID:tbwSFfzJ.net] >>930 適切なサンプルでなかったかもしれんが、table to array とか、二次元構造のまま扱いたい場合がある Array#forEach を使ってもいいが、for文を2段重ねてゴリゴリやるのが好きなんだよな 対象の実装が許すなら for-of を使いたいところだ 何にしても可読性の為に深部のDOMノードを変数に束縛する必要があると思う
942 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 02:16:02.33 ID:hclWowah.net] >>925 >>927 キャッシュの話じゃなかったの? ローカル変数は寿命が短いから保守性は問題にならないよ
943 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 02:40:07.59 ID:tbwSFfzJ.net] >>932 >>927 と下記コードを比較してどちらが可読性に優れているかという話 var cell = document.getElementById('hoge').tBodies[0].rows[i].cells[j]; cell.classList.add('foo'); console.log(cell);
944 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 03:14:31.41 ID:RrD1FkH/.net] >>933 なんかちげーwww
945 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 03:35:25.29 ID:t6RB8tdY.net] 普通に作ればこんなところか for (var i = 0, rows = document.getElementById('hoge').tBodies[0].rows, l = rows.length; i < l; ++i) { for (var j = 0, cells = rows[i].cells, m = cells.length, cell; j < m; ++j) { cell = cells[j]; cell.classList.add('foo'); console.log(cell.firstChild.data); } }
946 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 04:48:47.21 ID:q2Zh6d9K.net] >>927 > 変数を使わずに書いてみた > 初見で読む気が失せるレベルである えとさぁ、なんでいま関係ない話してるわけ? 前提忘れたの?ねぇ?わざと? 今はキャッシュの話をしていたよね? "ローカル" 変数に入れることで見やすくすることは キャッシュとは別の話だって言ったよね? あんた馬鹿なの? 変数に入れることは見やすくなるが、それは見やすくするためにやることであって キャッシュは関係ない。キャッシュを活かすためにはローカル変数じゃすぐに消えてなくなるから意味が殆ど無い。 jQueryのキャッシュをローカルで?ローカルでやるならばチェーンを使えばいいって言ったはずだ。 だからjQueryでローカルでキャッシュするなんて意味がない。 わかりやすくするためにローカル変数を使うのはありだって言ったが、 これは俺がすでに言ったこと。キャッシュのためではないとも言ったはずだ。 えとさ、何回同じことを言わせるわけ?w
947 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 05:10:11.50 ID:q2Zh6d9K.net] ちなみにこれをjQueryで書いてみようか? for (var i = 0; i < document.getElementById('hoge').tBodies[0].rows.length; ++i) { for (var j = 0; j < document.getElementById('hoge').tBodies[0].rows[i].cells.length; ++j) { document.getElementById('hoge').tBodies[0].rows[i].cells[j].classList.add('foo'); console.log(document.getElementById('hoge').tBodies[0].rows[i].cells[j].firstChild.data); } } いきなりjQueryで正しく書くと違いすぎて読めないだろうからw 似たような形にある程度だけ書き直してみる。 そうそう、jQueryを正しく使えば、キャッシュなんていらないと言った。thisを使えとも言ったはずだ。 わかりやすくするための変数がいらないとは言ってないが、結局減るけどな。 $('#hoge').find('tbody').first().find('tr').each(function() { $(this).find('td').each(function() { $(this).addClass('bar'); console.log(this.firstChild.data); }); }); さらにjQuery化 $('#hoge tbody:first-child tr').each(function() { $(this).find('td').each(function() { $(this).addClass('bar'); console.log(this.firstChild.data); }); });
948 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 05:10:34.91 ID:q2Zh6d9K.net] さらにjQuery化 $('#hoge tbody:first-child tr td').each(function() { $(this).addClass('bar'); console.log(this.firstChild.data); }); もう一つおまけに $('#hoge tbody:first-child tr td').addClass('bar').each(function() { console.log(this.firstChild.data); }); これをわざわざ変数に入れたくなるかい?w キャッシュすることも不要だろw
949 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 05:14:38.23 ID:q2Zh6d9K.net] あ、barのままだったw クラスとしてfoo追加するコードを参考してとっておきながら、 新たなjQueryのコードをbarで書いてたから直し忘れた。
950 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 05:23:11.23 ID:q2Zh6d9K.net] >>931 > 何にしても可読性の為に深部のDOMノードを変数に束縛する必要があると思う 話すり替えるな。いまキャッシュの話だったはずだ。 「早すぎる最適化は諸悪の根源である」って話をしているのに なんで可読性の話にすり替える? 連想ゲームでもやってるのか? キャッシュは変数に入れる → 変数に入れるならば、目的は全部同じ キャッシュのためじゃないだろ。しかもそれはローカル変数ででいいだろ。 「説明用変数の導入」を俺は否定してないんだよ。 むやみにキャッシュのために、広いスコープの変数に入れておくのが 早すぎる最適化だって言ってる。普通はやってはいけない。 どうしても必要なときだけやる。 だから >>898 ができるだけキャッシュするとか言ってるから、 できるかぎりやらないが正しいと訂正してる。それが「早すぎる最適化」だからだ。 > jQueryのセレクタはid以外を指定する場合、検索のコストがかかるから > できるだけキャッシュしたほうがいいってきいたんだけど、 早すぎる最適化じゃない使い方は最初から否定していない。 それはそれとして、jQueryではメソッドチェーンを使えば、 最適化じゃない「説明用変数」すらも無くせるから ローカル変数であっても、いったん変数に入れておくことは殆ど無いと言ってる。
951 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 07:46:43.16 ID:XRbWBdK9.net] >>922 速くするための最適化と 早い段階での最適化を近藤していませんか?
952 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 07:49:03.87 ID:+h4mdsTD.net] >>916 >どうせID名が変われば、変数名も変わる。 うそだろ・・・? 仮に100箇所で $('#search_form')してたとして '#search_form'→'#search_form1'に変えた時に 100箇所直さなくていいように var $form = $('#search_form'); するんだろ・・・ 普通の「固定値」なら100箇所じゃなくても2〜3箇所でも使ってるところがあった時点で 変数に入れるだろ
953 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 08:11:20.66 ID:EoA45sOs.net] 話がキャッシュとか最適化とか保守性とかごっちゃになってるけどさ 複数箇所で使われてる固定値のjQueryオブジェクトなら 広いスコープで変数に入れて(擬似)定数にしといたほうが保守性もいいしキャッシュも効いて一石二鳥だよね?何か問題ある? ↓ でも、それってJSのクロージャの仕組みを考えるとメモリーリークとか危なくね? ってことでしょ? 実際メモリーリークは起きるの?
954 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 08:35:24.16 ID:FusMkK2d.net] フロントエンジニアって程度が低いらしいけどここまで酷いの?
955 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 08:37:16.66 ID:86JuHo21.net] >>936 ローカル変数がキャッシュではないと思ってるのはお前だけ (1) 関数A、関数Bで要素Cへ1回ずつ参照する (2) 関数Aで要素Cに2回参照する (1), (2) の参照コストの総計(2回)は変わらない 関数Aの中でローカル変数を使って要素Cへの参照回数を1回に抑えるのは意味がある
956 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 10:26:05.39 ID:q2Zh6d9K.net] >>942 > var $form = $('#search_form'); するんだろ・・・ それをやっていいのは、ローカル変数だけだ。 広いスコープで$formとあっても、それがなにか区別付かない。 それは、"保守性を下げる" 今はキャッシュの話をしている。 ローカル変数だとキャッシュとしての効果は ローカルだけにとどまる。 そしてjQueryを使えばメソッドチェーンが使えるので ローカルで変数に入れる必要はない。 何度も言ったことだ
957 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 10:27:55.15 ID:q2Zh6d9K.net] >>941 > 速くするための最適化と > 早い段階での最適化を近藤していませんか? 速くする最適化でも 軽くする最適化でも ○○する最適化でも どれも「最適化」だ。 これらの「最適化」を早いうちからするなって言うのが、 「早すぎる最適化は諸悪の根源である」という言葉だ。
958 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 10:29:34.18 ID:q2Zh6d9K.net] >>945 > ローカル変数がキャッシュではないと思ってるのはお前だけ ローカル変数がキャッシュではないと言ったことは 一度もない。 jQueryはメソッドチェーンを使えるから、 ローカル変数にキャッシュしないくてよいという話だ。 あとローカル変数ってわかってるか? 別の関数では共有できないぞw
959 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 10:31:56.21 ID:q2Zh6d9K.net] あと、いまはjQueryオブジェクトの話をしている。 $(セレクタ)のコストがかかるから「いったん変数に入れておくキャッシュ」の話だ。 忘れるなよ? 別の話にすり替えるな。
960 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 11:12:30.21 ID:hclWowah.net] キャッシュの結論としてはやらないほうがいいんだろうな innerHTMLとかinputのvalueとかキャッシュしても 他の場所から実体を書き換えられたら整合性狂うからね そこまでケアしてあげるとなると費用対効果が合わないと思う
961 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 11:18:11.26 ID:q2Zh6d9K.net] >>950 > キャッシュの結論としてはやらないほうがいいんだろうな その通り。 というとどっかの馬鹿が変数に入れるなということなのか!?とか言い出すんだよな(苦笑) 「変数に入れるとキャッシュの効果もありまぁす」じゃねーんだよw 楽な方法をとった結果、たまたまそうなる話なんかどうでもいい。 キャッシュを理由に変数に入れておくべきか?とか言ってるから キャッシュを理由に変数に入れるなんてことは、 「入れるべきもの」ではなく逆に「入れないべきもの」であって 必要になってからやれという話だと言ってるのに。
962 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 12:03:04.42 ID:oKW2aYRF.net] 整合性がどうのこーのって、実装の問題だろ。 問題をゴチャゴチャにするなよ。 馬鹿大杉だろ。スレ読む気も起きんが。
963 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 12:13:36.28 ID:rd5jwdZc.net] >>950-951 一切更新しない気なのか?
964 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 12:43:50.40 ID:ATvI0r3K.net] 誰か病院紹介してやれよ
965 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 12:49:10.28 ID:HhzhPZLm.net] お前が行ってる所でいいんじゃないかな
966 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 12:49:16.18 ID:q2Zh6d9K.net] >>953 キャッシュを更新しても無駄だぞw だからキャッシュを使わない方がいい。
967 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 12:51:52.14 ID:q2Zh6d9K.net] >>952 整合性を保つには、シンプルな実装が一番いい。 だから、必要もないのに余計なキャッシュなんか するべきじゃないって話をしているんだよ。
968 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 13:11:46.29 ID:3KjPC0qs.net] このスr流れが早すぎてなんかの質問をしたから確認に来たんだけど流れが早すぎてどこで質問したか何の質問したか忘れる
969 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 13:26:02.02 ID:XOGjEe4x.net] >>948 > ローカル変数がキャッシュではないと言ったことは一度もない。 おまえが>>936 で「"ローカル" 変数に入れることで見やすくすることはキャッシュとは別の話だって言ったよね?」といったことに対してキャッシュとして機能する事例(>>945 )で反論しただけ 日本語が読めない人の相手は本当に疲れるな
970 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 13:29:04.39 ID:XOGjEe4x.net] >>947 > これらの「最適化」を早いうちからするなって言うのが、 > 「早すぎる最適化は諸悪の根源である」という言葉だ。 その通りだが、逆に言えば最後に最適化してもいいので、それは最適化テクニックを否定する格言ではない Charles Cook は「時期尚早な最適化」と称しているが、「しかし逆にシステムレベルのソフトウェアを設計するときは、性能問題を常に念頭に置くべきだ」ともいっている jquery.jsやjQuery pluginはそれに近い立場にあるので常に最適化に気をつかうべきだろう
971 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 13:51:27.17 ID:XRbWBdK9.net] プログラム全体の処理速度に大きく影響するレベルの本格的な最適化の話と、ちょっとしたローカル変数に値を代入する話をごちゃ混ぜにしているのがおかしいだろ。クヌース先生も呆れている。
972 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 14:02:20.57 ID:XOGjEe4x.net] >>937-939 ドヤ顔で披露した割には最後のコードも問題があるな > $('#hoge tbody:first-child tr td').addClass('bar').each(function() { > console.log(this.firstChild.data); > }); 子孫セレクタを使っているのでコストが重く、ネストされたtable要素でおかしくなる addClass, each で二重走査してるのが無駄 forEach 系で実装可能なのは改めて教えてもらわずとも分かっている 繰り返し処理するのにわざわざ関数呼び出しするのが煩わしいだけ >>940 説明用変数はキャッシュとしても機能するので同じ事 そもそも、俺は説明用の為だけに変数を定義することはしない 同じオブジェクトを2回以上参照するから変数を定義するだけだ それはキャッシュでもあり、説明用変数でもある 人間は document.getElementById('hoge').tBodies[0].rows[i].cells[j]; のような長い名前を何度も見て同じものと即座に認識することは出来ない これが1回だけ参照するなら変数にはしない 2回以上登場するから同じ名前を何度も読まなくて済むように、同じオブジェクトを何度も参照しなくてすむように変数を定義する
973 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 14:16:15.05 ID:+6m5wOVw.net] IDコロコロするやつのレスなんて信憑性0
974 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 14:16:40.41 ID:q2Zh6d9K.net] >>959 > おまえが>>936 で「"ローカル" 変数に入れることで見やすくすることはキャッシュとは別の話だって > 言ったよね?」といったことに対してキャッシュとして機能する事例(>>945 )で反論しただけ だから、それをするなって>>951 で書いたんだよw > というとどっかの馬鹿が変数に入れるなということなのか!?とか言い出すんだよな(苦笑) > 「変数に入れるとキャッシュの効果もありまぁす」じゃねーんだよw > 楽な方法をとった結果、たまたまそうなる話なんかどうでもいい。 やっぱりという感想しかねーよw 最初の>>898 の話は「検索コストがかかるという理由で変数に入れたほうがいいですか?」だ。 スタート地点は「変数に入れない状態」その状態から初めて「検索コスト」だけを理由に 「変数に入れたほうがいいか」って質問だろ。 だからそれはやるなって俺は言ってるんだが、 お前の反論(?)は、(別の理由で)「変数に入れた状態」から初めて 「キャッシュの効果もありまぁす」じゃねーかw 全く議論になってないんだよ。
975 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 14:18:39.39 ID:q2Zh6d9K.net] >>962 > 子孫セレクタを使っているのでコストが重く、ネストされたtable要素でおかしくなる ネストされた〜は単に > を付け忘れただけ。 で、いきなりコストの話をすんな。 「早すぎる最適化は諸悪の根源」だ。 それで問題がある場合に限って、最適化すればいいだろ。 HTMLが十分にシンプルであれば、コストが重いといっても この程度じゃ1回あたり10nsも差は出ないから。
976 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 14:21:45.75 ID:q2Zh6d9K.net] >>960 > Charles Cook は「時期尚早な最適化」と称しているが、「しかし逆にシステムレベルのソフトウェアを設計するときは、性能問題を常に念頭に置くべきだ」ともいっている 念頭に置くのと、実際に行動するのは別の話。 この2つを区別できてないやつが多いんだよなw 念頭に置いて、問題なるんじゃね?って思って最初から最適化してしまうのが 「時期尚早な最適化」 念頭に置いた上で、問題が起きてから改善すればいい話だと俺は言ってる。
977 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 14:40:58.65 ID:q2Zh6d9K.net] 少し言葉が足りなかったら補足。 念頭に置いた上で、問題が起きてから改善すればいい話だと俺は言ってる。 ここで、念頭に置くというのは、問題が起きてから改善すればいいが その改善がしづらくなるような設計にはしないということ。 あとから簡単に問題を改善できることならば、 あとから問題を改善すればいい話。 念頭に置くというのは、最初に改善してしまうのではなくて、 改善しにくい方向にはしないということ。
978 名前:デフォルトの名無しさん [2016/05/21(土) 15:33:15.09 ID:gfKVobxg.net] src属性の特定の数字を取得した後そのリンクを自動でクリックさせるuserjsを書きたいのですがどう記述して良いのかさっぱりわかりません。
979 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 16:34:58.52 ID:FusMkK2d.net] じゃ諦めましょ
980 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 16:35:02.87 ID:KBCgSbCY.net] >>968 取得はドム原理主義者得意の引っこ抜き。 発火タイミングはカーソルクリックや当たったら。 読み込み後発動発火。 スクロールで表示されたら発火(その場合、表示中の現在位置を取得が必要)
981 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 16:39:21.48 ID:qqwYRUOU.net] >>968 どういう事?contentに探したいものを含むaタグに、clickイベントを発火させればいいのでは? キャッシュ論が続いているから思うけど、なるほどnodeのスレでjs使いがバカにされる訳だな。 domアクセスを最低限にしたいからキャッシュさせるさせない、セレクタの結果を保持するってその発想自体気が触れてる。 だから、変数とpost内容の不一致とかわけわからん類の障害出すんだろ。 中身になるべきものを持っといて、全部jsで書け。初期コンテンツだけ置いとけ。readyでもいで差し替えろ。 そうすりゃ差分なんか自分が知ってるんだから、どう更新すべきか自明だろ。
982 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 17:02:31.50 ID:q2Zh6d9K.net] > 中身になるべきものを持っといて、全部jsで書け。初期コンテンツだけ置いとけ。readyでもいで差し替えろ。 > そうすりゃ差分なんか自分が知ってるんだから、どう更新すべきか自明だろ。 その説明じゃ誰にも通じないだろうなw 全部jsで書けとか言ってるから、逆に面倒になってるだけだろう。
983 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:57:20.03 ID:qpbh63BA.net] >>964 するな、はおまえの勝手な持論 DOMのキャッシュだけで「最適化が時期早々」の結論に持って行く流れがおかしい 必要なタイミングで最適化すれば問題はないのだから そして、その時に様々な最適化の手法を知っているべきであって「早すぎる最適化」を理由に最適化テクニックを覚える機会を失うのは本末転倒 タイミングは重要だが、テクニックとしては知っておくべき >>965 おまえは何かといえば「早すぎる最適化」しかいわないな それはミスした時の言い訳に使われるものじゃないぞ コストよりもセレクタが正しく機能しない事の方がに問題
984 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 22:48:21.57 ID:q2Zh6d9K.net] >>973 > コストよりもセレクタが正しく機能しない事の方がに問題 だからそう言ってるだろ。 問題になってない検索コストのために最適化することで セレクタが正しく機能しない(可能性がある) 正しく機能させるために追加で考えなくちゃいけなくなるので 早すぎる最適化は何も良いことがない。
985 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 22:53:03.77 ID:q2Zh6d9K.net] >>973 > 必要なタイミングで最適化すれば問題はないのだから だからそう言ってるだろ。 > jQueryのセレクタはid以外を指定する場合、検索のコストがかかるから > できるだけキャッシュしたほうがいいってきいたんだけど、 とか言ってるから、それは必要なタイミングで最適化するべきことであって 通常は、できるだけキャッシュなんてことをする必要はない。と言ってる。 誰も変数に入れることが最適化のテクニックじゃないとか言ってない。 これを「最適化のテクニックなんだ。ほー。知らなかったー」とか思ってるのはお前だけ。 こっちも元レス人も最適化のテクニックだと知った上で、 元レスの人「できるだけやったほうが良い?」 俺「できるだけやらないほうが良い」 という会話をしてる。 お前は議論の内容から数歩遅れてるんだよw
986 名前:デフォルトの名無しさん [2016/05/22(日) 07:40:36.92 ID:LUJui5ls.net] 初心者ですが、ためしにある.jsファイルとか 書いてみて、動作確認しようにも連携するファイルがまだできていないので、本当にできているのかいないのか、検討もつきません。 1つ目のファイルが動作確認で動くのかもわからないまま、他の連携ファイルを書くことは疑心暗鬼が増大しすぎて出来なくなってしまいます。 自分が書いたJavaScriptは動くのかを確認する方法がありましたら教えてください。
987 名前:NAS6 ◆n3AmnVhjwc [2016/05/22(日) 08:35:04.93 ID:KRZX8LQR.net] 検証用のテストコードを作ればいいのに、なんでそうしないの?
988 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 08:57:55.90 ID:JfPxy53K.net] >>974 > 問題になってない検索コストのために最適化することで > セレクタが正しく機能しない(可能性がある) おまえが>>938 セレクタの問題点を何も理解してないことはわかったのでもういい
989 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 11:41:58.58 ID:Tdpnvle1.net] >>974 > これを「最適化のテクニックなんだ。ほー。知らなかったー」とか思ってるのはお前だけ。 おまえは読解力を身に着けた方がいいんじゃね? > 元レスの人「できるだけやったほうが良い?」 > 俺「できるだけやらないほうが良い」 アホか 「必要なタイミングで最適化した方がいい」が正だろ やるかやらないかはその時に判断するもので「やらない」の結論を出すのは時期早々なんだよ 「早すぎる最適化」を持ち出してその結論なるんじゃ、おまえは「早すぎる最適化」の何を理解したんだ?といわれても仕方ないぞ
990 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 11:42:40.25 ID:7nFY/y9y.net] そろそろ死ねよクソカス
991 名前:デフォルトの名無しさん [2016/05/22(日) 12:12:36.77 ID:+7XP2PmG.net] >>977 検証用テストコードの存在を知らなかったからです。 少しくぐってみます。ありがとう。
992 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 12:32:37.42 ID:WwOYSBmy.net] >>979 はぁ? お前日本語読解力ないなw できる限りやったほうが良い。の問いにYESって答えたら できるかぎりやってしまうだろw だからNOだよ。やらないほうが良い。 で、お前は反論するの? しないなら黙ってろよw
993 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 12:34:37.15 ID:WwOYSBmy.net] > やるかやらないかはその時に判断するもので「やらない」の結論を出すのは時期早々なんだよ 結論出さなくても、どちらかを書かないといけないだろw 結論が出てない状態なら、最適化をやらない方を選べって言ってるんだよ。 早すぎる最適化は諸悪の根源だからだ。
994 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 12:48:36.51 ID:XAOP4iva.net] 無駄に長文はkenokabeを彷彿とさせるからヤメロ
995 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 12:53:36.96 ID:CHy0uo/r.net] NG突っ込んどけ
996 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 16:25:24.06 ID:5k8BO1OF.net] >>976-977 スタブのような、テストに都合のよい、返り値を返す関数を作る 関数から、10が返ってきたと想定する a = 10; ここで、テストでa、つまり10を使う JSにも、JavaのJUnitみたいな、テスティング・フレームワークがあるのでは?
997 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 16:43:20.80 ID:X0ga1YPw.net] 「早すぎる最適化」は初めから全ての最適化を施すと保守性が著しく落ちるから何よりも先にプロトタイプを完成させた後にボトルネックとなるコードを探して最適化しましょう、という理論。 一般的には速度よりも厳密性、堅牢性、安全性、前方互換性、後方互換性あたりがより重要視されるからね。 ただし、これは保守性が下がらなければ最適化を施してもいいという事でもある。 代表的なのでは array.length を変数にキャッシュするテクニックがあるね。 ループ回数が10万回とか、著しく大きな回数参照される場合に大きな速度差として現れる。 >>945 は参照回数の重要性を諭してくれているけど、ようするにローカル変数かグローバル変数かはどうでもよくて参照回数が多いところを最適化すべきなんだよね。 ボトルネックが初めから経験的についてわかっていれば、「早すぎる最適化」理論のタイミングを待たずして最適化を施すことも出来る。 結論としては>>898 への答えは「経験的にボトルネックと分かる場所には即座について最適化しましょう。そうでなければ、プロトタイプを作ってからボトルネックを探しましょう。」 蛇足だけど、厳密性を上げることで結果的に速度的な最適化が施される場合もあって>>962 のセレクタの指摘がそれ。 '#hoge>tbody:first-child>tr>td' を指定する事で>>927 と等価になり、>>938 では別の要素を拾ってしまう危険性がある。 厳密性を上げることで保守性が下がるわけでもなし、修正すべき箇所だと思うよ。
998 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 17:36:54.53 ID:FTGg1fS8.net] 一昨日から蛇足続きですけどそれは…
999 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 17:45:35.33 ID:Y6WruITb.net] array.lengthを変数に入れるなんて言うのは最適化のテクニックなのか? 誰でもやるぞ。
1000 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 17:53:12.31 ID:tpad688i.net] すごーいつづきはぜひぶろぐかなんかひらいてかいたほうがみんなみられていいとおもうー();
1001 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 18:09:24.31 ID:WwOYSBmy.net] >>987 > 結論としては>>898 への答えは「経験的にボトルネックと分かる場所には即座について最適化しましょう。 > そうでなければ、プロトタイプを作ってからボトルネックを探しましょう。」 何汎用的な話にしてるんだよw わざとらしいな。今はjQueryのセレクタの話だろ。 >>898 の話は経験的にボトルネックと成りえない場所だから、 それを「できるだけキャッシュしたほうがいい」と言ってることに対して 経験的にボトルネックにならないから「できるだけしないほうがいい」と言ってるんだが。
1002 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 18:11:58.37 ID:WwOYSBmy.net] >>989 今はarray.lengthの話はしてない
1003 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 18:14:27.64 ID:BAs222Jl.net] うるせーから埋める
1004 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 18:15:11.70 ID:E7LBxgcJ.net] あ
1005 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 18:15:40.12 ID:nPHdXwiF.net] あ
1006 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 18:15:56.89 ID:0PCmMNra.net] あ
1007 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 18:16:13.55 ID:5hn9uytB.net] あ
1008 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 18:16:30.05 ID:2Z+XxbZ+.net] あ
1009 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 18:16:46.61 ID:ax9WOfgG.net] あ
1010 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 18:17:03.03 ID:yL49bMPd.net] あ
1011 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。 life time: 74日 17時間 18分 27秒
1012 名前:1002 [Over 1000 Thread.net] 2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。 運営にご協力お願いいたします。 ─────────────────── 《プレミアム会員の主な特典》 ★ 2ちゃんねる専用ブラウザからの広告除去 ★ 2ちゃんねるの過去ログを取得 ★ 書き込み規制の緩和 ─────────────────── 会員登録には個人情報は一切必要ありません。 月300円から匿名でご購入いただけます。 ▼ プレミアム会員登録はこちら ▼ premium.2ch.net/ pink-chan-store.myshopify.com/
1013 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています