+ JavaScript の質問用スレッド vol.119 + [無断転載禁止]©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2016/03/09(水) 00:58:36.45ID:S0itb4sM>>2-5のテンプレを読んだ上で質問してください。
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
0002デフォルトの名無しさん
2016/03/09(水) 01:00:06.15ID:S0itb4sM【環境】OS, 実行環境をバージョンと共に記入してください。
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
1レスに収まらないならコード投稿サイトを利用してください。
http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/
■前スレ
+ JavaScript の質問用スレッド vol.118 + [転載禁止](c)2ch.net
http://echo.2ch.net/test/read.cgi/tech/1429634108/
■過去スレ全集(Web制作)
http://www2.atpages.jp/mirror/2ch/javascript/
http://usamimi.info/~mirrorhenkan/2ch/javascript/ (閲覧のみ)
■テンプレ案(Web制作)
http://fiddle.jshell.net/fH4cC/167/show/light/
■関連スレ
ECMAScript デス 4
http://peace.2ch.net/test/read.cgi/tech/1325448978/
JavaScript ライブラリ総合質問所 vol.4
http://peace.2ch.net/test/read.cgi/hp/1400834117/
CSS初心者スレッド=13th=(c)2ch.net
http://peace.2ch.net/test/read.cgi/hp/1423959729/
Canvasについて語ろう
http://peace.2ch.net/test/read.cgi/hp/1305093769/
0003デフォルトの名無しさん
2016/03/09(水) 01:00:44.46ID:S0itb4sMhttp://fiddle.jshell.net/vSqKr/43/show/
■開発者ツール(Developer Tools)の基本的な使い方 (全部は http://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 型の中身をそのまま表示してくれます。)
0004デフォルトの名無しさん
2016/03/09(水) 01:01:12.81ID:S0itb4sM◆ Standard ECMA-262
http://bclary.com/2004/11/07/ (ECMAScript 3 HTML版)
https://web.archive.org/web/20140715002617/http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (ECMAScript 3 和訳)
http://www.ecma-international.org/ecma-262/5.1/ (ECMAScript 5.1 HTML版)
http://tsofthome.appspot.com/ecmascript.html (ECMAScript 5.1 和訳)
http://people.mozilla.org/~jorendorff/es6-draft.html (ECMAScript 6 有志HTML版)
http://kangax.github.io/es5-compat-table/ (ECMAScript 5 compatibility table)
http://kangax.github.io/es5-compat-table/es6/ (ECMAScript 6 compatibility table)
◆ HTML Standard (HTML5)
http://www.whatwg.org/specs/web-apps/current-work/multipage/
http://momdo.s35.xrea.com/web-html-test/spec/WD-html51-20130528/Overview.html (HTML5.1 部分訳)
http://www.hcn.zaq.ne.jp/___/WEB/WebStorage-ja.html (Web Storage 和訳)
◆ Document Object Model (DOM) / CSS Object Model (CSSOM)
http://www.hcn.zaq.ne.jp/___/WEB/DOM4-ja.html (DOM Standard (DOM4) 和訳)
http://www.w3.org/TR/DOM-Level-3-Events/ (DOM3 Events)
http://www.w3.org/TR/uievents/ (UI Events)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-ja.html (CSSOM 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-view-ja.html (CSSOM View Module 和訳)
◆ その他のWeb関連仕様
http://domparsing.spec.whatwg.org/ (DOM Parsing and Serialization - innerHTML等)
http://www.hcn.zaq.ne.jp/___/WEB/XHR-ja.html (XMLHttpRequest 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/File_API-ja.html (File API 和訳)
http://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)
http://msdn.microsoft.com/ja-jp/library/yek4tbz0.aspx (JavaScript)
http://msdn.microsoft.com/ja-jp/library/cc427807.aspx (JScript)
http://msdn.microsoft.com/ja-jp/library/cc409712.aspx (DHTML)
0005デフォルトの名無しさん
2016/03/09(水) 01:01:55.31ID:S0itb4sM◆ JavaScript Garden (ja)
http://bonsaiden.github.com/JavaScript-Garden/ja/
◆ JSON (JavaScript Object Notation)
http://www.json.org/json-ja.html
■諸注意
vol.115でlodashを不必要に推奨して啓蒙する行為が多く確認されており、ライブラリ系の質問はvol.116から禁止されました。
vol.115,116ではライブラリ禁止する発言が見られた直後にライブラリを許可する意図で次スレを立てる行為が確認されています。
本スレッドでライブラリ許可を求める発言が確認された場合は不要な争いを避ける為、スルーすることを推奨します。
ライブラリの質問はライブラリスレへ誘導し、誘導行為への反論はスルーしてください。
0006デフォルトの名無しさん
2016/03/09(水) 03:00:01.13ID:6uZQGjqP↑ ↑ ↑ ↑ ↑ ↑
0007デフォルトの名無しさん
2016/03/14(月) 08:46:07.23ID:RZ1GsRz+0008デフォルトの名無しさん
2016/03/14(月) 10:15:53.45ID:h0SaP8VW0009デフォルトの名無しさん
2016/03/14(月) 10:50:06.69ID:t/84a/RD0010デフォルトの名無しさん
2016/03/14(月) 11:03:34.88ID:h0SaP8VW0011デフォルトの名無しさん
2016/03/14(月) 11:20:27.58ID:JjlziuNG0012デフォルトの名無しさん
2016/03/20(日) 19:33:23.36ID:0939kaIS0013デフォルトの名無しさん
2016/03/20(日) 20:03:50.21ID:evsTqtHC0014デフォルトの名無しさん
2016/03/21(月) 04:13:33.83ID:lwkXzPK7Promiseに対応していない古いブラウザでやるなら
bluebirdというライブラリを使うといい。
標準のPromise機能に加え便利メソッドが増えている。
0015デフォルトの名無しさん
2016/03/21(月) 07:35:25.86ID:fN+PxOXs具体的には画像のダウンローダーを作りたいです。
下位階層まで根こそぎ取ってくるようなものです。
node.jsで作れるとあったのですが
0016デフォルトの名無しさん
2016/03/21(月) 07:36:57.38ID:lwkXzPK7○○言語で△△は作れますか?
作れない言語なんてまず無いよ。
0017デフォルトの名無しさん
2016/03/21(月) 08:47:44.94まんま本出てるから大丈夫よ
0018デフォルトの名無しさん
2016/03/21(月) 09:22:30.77ID:Xz9aFOH3ライブラリを使わずにって書いてあるのが読めない人ですか?
0019デフォルトの名無しさん
2016/03/21(月) 09:35:52.01ID:lwkXzPK7読めないんじゃなくて、読まない。
0020デフォルトの名無しさん
2016/03/21(月) 09:51:19.79ID:Xz9aFOH3つまり、ヴァカってことですね。
0021デフォルトの名無しさん
2016/03/21(月) 09:52:34.56ID:lwkXzPK7それは論理的じゃないな。
なぜ読まない=馬鹿なのか?
0022デフォルトの名無しさん
2016/03/21(月) 10:11:23.87ID:Xz9aFOH3馬鹿は口を閉じてるといいよw
0023デフォルトの名無しさん
2016/03/21(月) 10:21:00.800024デフォルトの名無しさん
2016/03/21(月) 10:25:47.94ID:lwkXzPK7了解
0025デフォルトの名無しさん
2016/03/21(月) 10:42:07.02ID:Xz9aFOH3馬鹿は口を閉じてるといいよ
0026デフォルトの名無しさん
2016/03/21(月) 11:57:05.09ID:Q2tTgw280027デフォルトの名無しさん
2016/03/21(月) 15:29:23.97ID:lwkXzPK70028デフォルトの名無しさん
2016/03/21(月) 22:05:08.28ID:iER/zWdnなんでIDないの?
0029デフォルトの名無しさん
2016/03/21(月) 22:51:19.14ID:gUE5p+TD0030デフォルトの名無しさん
2016/03/21(月) 22:57:43.40ID:hs33rQ/Zクローラーは、Rubyだろ。
paiza.IO で、それっぽいコードをよく見るけど
まあ、Electron(Node.js + Chromium)でやりたいなら、やれば?
0031デフォルトの名無しさん
2016/03/21(月) 23:22:13.08ID:isb2gyBM保存ボタンを押すとcookieを保存して、読み込みボタンを押すとcookieが読み込まれる
というページを作りたいです。
javascriptでnameを一つ一つ指定して保存するような感じでなら出来たのですが、
今後要素が増えるたびにcookieの方も調整するのが面倒だと思いました。
ページ全体の状態をまるごとcookieに保存するのに簡単なコードの書き方などありますでしょうか?
jQueryでも何か簡単な方法はないかと探しているんですが初心者なのでいまいちわからないです
よろしくお願い致します。
0032デフォルトの名無しさん
2016/03/21(月) 23:31:41.43ID:hs33rQ/Zせいぜい、1KB以下まで
HTML5のWeb Storage でオフライン環境に、キャッシュを保存する
0033デフォルトの名無しさん
2016/03/22(火) 01:14:15.87ID:UN51cu0Y0034デフォルトの名無しさん
2016/03/22(火) 01:20:20.54ID:rdrmg4XV0035デフォルトの名無しさん
2016/03/24(木) 00:38:34.81ID:YyzBD89/aのpromiseが終わったらbを実行
bのpromiseが終わったらcを実行
cのpromiseが終わるまでaの呼び出し元で待機
みたいな処理をネスト控えめに書けますか?
0036デフォルトの名無しさん
2016/03/24(木) 00:50:23.16ID:QUxdzUznそれが出来るのがプロミスだろうが!
0037デフォルトの名無しさん
2016/03/24(木) 01:10:42.04ID:Dc6NU6wkそのコード位置からの同期処理の再開を指すならasync/await使わないと無理
0038デフォルトの名無しさん
2016/03/24(木) 02:23:12.67ID:vscoeD/vJavaScript構文を改良したものなんだから、
async/awaitでできるならばPromiseでもできるんだよ。
0039デフォルトの名無しさん
2016/03/24(木) 14:33:45.16ID:yOLyGMcJ作れるとしたらデメリットは有りますか?
遅いですとか
0040デフォルトの名無しさん
2016/03/24(木) 14:49:26.54ID:v9bzQn8Llet ar = [];
let br = ar;
ar.unshift(0); とか ar.push(0); とかしても br は ar と常に同じ配列を参照してる事は保障されてる?
0041デフォルトの名無しさん
2016/03/24(木) 15:17:29.36ID:yOLyGMcJ0042デフォルトの名無しさん
2016/03/24(木) 22:40:22.01ID:sBlWvTvYJavaScriptのコードとして書いた部分はUIスレッドで実行されるって保証されてるの?
C#で言うとBeginInvokeした時のよう考えていいのだろうか
p = 非同期API();
q = 非同期API();
p.done(A);
q.done(X);
p.done(B);
と書いた場合に別スレッドで実行されるのはあくまで非同期APIだけで
AとBとCはPromise使おうがsetTimeoutしようが単に後回しにされるだけで結局全部UIスレッドで実行されるから絶対に衝突しないって事でいいの?
0043デフォルトの名無しさん
2016/03/25(金) 01:13:56.64ID:Y9GDVUzX作れる
デメリットは変換に使うプラットフォームの仕様やバグに付き合う必要があること
>>40
されてる
その場合brが参照しているのはarじゃなくて配列自身
>>41
作れる
>>42
だいたい最終行の理解で合ってる
シングルスレッドでレンダリングとキューの消化を交互に繰り返してる感じ
0044デフォルトの名無しさん
2016/03/25(金) 11:11:25.08ID:eOfUcnNeどうすればよいでしょうか?
ちなみにコントローラはjsです
0045デフォルトの名無しさん
2016/03/25(金) 21:00:38.71ID:N0KH+ld00046デフォルトの名無しさん
2016/03/26(土) 13:53:31.01ID:GwvfWp/jAndroid 5.1.1 Google Chrome で再現できない
https://jsfiddle.net/nL82196v/
現象を再現可能なコード、対象ブラウザ名及びバージョンは?
0047デフォルトの名無しさん
2016/03/26(土) 15:24:40.02ID:KP7AUrYIwin側のプロンプトを使うんですか?
0048デフォルトの名無しさん
2016/03/26(土) 16:39:24.78ID:hZGT0ViJというと?
0049デフォルトの名無しさん
2016/03/26(土) 19:19:26.98ID:2IjmMYr5閉じて再び開いたときに元の状態に戻したい
なんとかなりませんかねこれ
0050デフォルトの名無しさん
2016/03/26(土) 21:28:37.50ID:AMZqaLeODOMの内部状態は再現できないのでどうにもならない
最初からなんとかするように作れ
0051デフォルトの名無しさん
2016/03/26(土) 22:31:52.28ID:5qdFWVjA商品一覧で商品のタイトルにspan id="dealTitle"
がそれぞれ使われてるんですけど、idって重複していいんですか?
0052デフォルトの名無しさん
2016/03/26(土) 23:56:34.06ID:nOSHwcxNRoR, CakePHP などのフレームワークでは、
フォーム送信のvalidateで、入力エラーがあると、
フォームに入力した内容も、消されずにそのままになっているけど、
これはサーバーサイドだからな
クライアント側で、前の画面を保存するには、
入力内容をファイルで保存するしかない
0053デフォルトの名無しさん
2016/03/27(日) 03:48:09.52ID:HhHg2DAXだから最初からそう言ってんだよ出しゃばり
0054デフォルトの名無しさん
2016/03/27(日) 07:23:56.73ID:60dasars0055デフォルトの名無しさん
2016/03/27(日) 09:50:21.72ID:MdJCnp0YそしてViewの状態をModelから関数的に復元できるように設計にしなければならないと
0056デフォルトの名無しさん
2016/03/27(日) 10:03:52.53ID:HhHg2DAX開始時は全てが変更とみなす
これでDOMイベントもwebsocketもstorageイベントも全てに対応だ
0057デフォルトの名無しさん
2016/03/27(日) 10:25:36.38ID:/vjbvHhCvar ret =org.replace( /(全)(\d+)(件)/g, "$1" +"/"+ ("$2"-0+1)+"/"+"$3" )
ret の値
期待→ 全/101/件・・・_全/121/件..._全/46/件_'''
実際→ 全/NaN/件・・・_全/NaN/件..._全/NaN/件_'''
正規表現の置換ですが "$2”を 数値に変換して値を1増やすことができません。
parseInt、Numberを使ってもおなじでした。
解決方法ご存知の方がいましたら教えていただければ幸いです。
0058デフォルトの名無しさん
2016/03/27(日) 12:19:54.26ID:x3ePCErEそういうのはブラウザ側に任せるべき領分(セッションの復元)だと思うのだけど。
どうしてもやりたいなら、
- focusの記録(localStorage)
-スクロール位置の記憶(localStorage)
- JavaScript機能の状態をhashに記録(pushState)
- ログイン状態の記録(Cookie、サーバサイド処理)
0059デフォルトの名無しさん
2016/03/27(日) 12:24:40.83ID:UR7Ecaqc文字列じゃなくて関数突っ込んでその第三引数を変更するのがいいと思うよ
0060デフォルトの名無しさん
2016/03/27(日) 12:25:14.33ID:x3ePCErEreplaceのコールバック関数で受け取るか、while, execでキャブチャした変数から作り直すか
006157
2016/03/27(日) 14:39:03.13ID:/vjbvHhCこんな感じでしょうか?
var org ="全100件・・・_全120件..._全45件_'''"
var ret =org.replace( /(全)(\d+)(件)/g,
function(
matchText,
ref1,
ref2,
ref3,
position,
self)
{
return ref1+((ref2-0)+1)+ref3;
}
ひとまず、期待通りの動きができています。
アドバイスありがとうございました。
0062デフォルトの名無しさん
2016/03/27(日) 16:17:42.83ID:wSRwnaYPvar my = require('絶対パズ/request');
console.log(my);
としてもモジュールにアクセス出来ないというエラーが出るんですが、なぜでしょうか?
他の問題でしょうか?
あと、requestモジュールは、インストールはされている状態なのでしょうか?
0063デフォルトの名無しさん
2016/03/27(日) 18:10:03.43ID:s1WEC1Fp無駄な変数が多いな。
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)
0064デフォルトの名無しさん
2016/03/27(日) 18:54:15.04ID:UR7Ecaqcまずバンドルされてるのはhttpね
次にパズじゃなくてパス(Path)
そんでglobalのモジュールは名前だけでrequireできる
nodeスレのテンプレに初心者向けのリンクがあるから目を通すといいよ
0065デフォルトの名無しさん
2016/03/27(日) 19:49:01.73ID:bXTz64zw0066デフォルトの名無しさん
2016/03/27(日) 20:32:51.88ID:+zvcgvl1Promiseで使われてる
0067デフォルトの名無しさん
2016/03/27(日) 20:42:59.04ID:HhHg2DAXどうしたらそんな馬鹿な結論に
0068デフォルトの名無しさん
2016/03/27(日) 21:44:33.38ID:bXTz64zw自作クラスにイベント定義しようとして方法をググったらdocument.createEvent使えって書いてあったからそういうもんなのかなと
.NETみたいな汎用的なマルチキャストデリゲートはないのかな
0069デフォルトの名無しさん
2016/03/27(日) 21:59:43.14ID:mBj9pM3F因みにdocument.createEventは古過ぎて非推奨なやり方。
今はEventコンストラクタを使う。
0070デフォルトの名無しさん
2016/03/27(日) 23:43:22.80ID:HhHg2DAXjsは元からdelegate的にthis付けて関数渡せるからいらん
と言うかそう言う意味のイベントなんて
わざわざ言語に入れてる方が珍しい
スレッディングが問題ならsetTimeout
0071デフォルトの名無しさん
2016/03/27(日) 23:59:58.48ID:HhHg2DAX0072デフォルトの名無しさん
2016/03/28(月) 00:15:44.30ID:2h3yopdGnode.addEventListener(...
とか書くの超だるいじゃん
node.onxxx += (e) => xxx();
node.onxxx += ...
って書ければいいじゃん
つかDOM要素以外はaddEventListenerが定義されてないからそこから書かなきゃだしもうやだ
0073デフォルトの名無しさん
2016/03/28(月) 00:33:41.97ID:qkrUQjq7node.addEventListener("xxx", xxx);
0074デフォルトの名無しさん
2016/03/28(月) 00:43:14.68ID:jP0nw9w8nodeならEventEmitterを使えばいいよ。
EventEmitter2とかならブラウザでも動くらしいけど
このスレに居るやつはブラウザで動くJavaScriptのことしか
知らないから、よく現実的ではない回答がでてくるので注意。
0075デフォルトの名無しさん
2016/03/28(月) 00:45:19.83ID:jP0nw9w8> この言語ってイベントはdomにしかないのか
DOMは言語じゃない。
ブラウザが用意しているライブラリにすぎない。
0076デフォルトの名無しさん
2016/03/28(月) 02:04:57.93ID:NypY0af3var 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に値が入る方法を教えて下さい。
0077デフォルトの名無しさん
2016/03/28(月) 04:22:27.57ID:+hSVfs2fsetTimeoutもD(B)OM APIだから。
JobキューによるイベントループがES言語レベルで定義されたのはES2015からで、
それにアクセスできるのはPromiseしかない。
他は全部外様な物。
>>76
コールバックを勉強
0078デフォルトの名無しさん
2016/03/28(月) 07:34:18.85ID:Kq+xA51Mブラウザについてだけ言ってるレスってどれ?
0079デフォルトの名無しさん
2016/03/28(月) 07:38:22.67ID:Kq+xA51Mタスクキューはイベントとは別
そもそもそれ自体は簡単に実装できるし
0080デフォルトの名無しさん
2016/03/28(月) 14:08:14.84ID:bQjH0a26どうもありがとうございます。
そっちのスレも見てみます
0081デフォルトの名無しさん
2016/03/28(月) 14:12:43.07ID:AqyD+FoJグロバル変数
008276
2016/03/28(月) 15:21:37.64ID:NypY0af3コールバックって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を使ったやり方では違うんですかね?
マニュアルを何度も見たのですが、この辺がよくわかりません・・・
0083デフォルトの名無しさん
2016/03/28(月) 15:29:23.31ID:8nd4zd+D0084デフォルトの名無しさん
2016/03/28(月) 15:35:31.52ID:UwAduPwe同期通信にしないと返り値はとれないよ
0085デフォルトの名無しさん
2016/03/28(月) 16:19:51.96ID:3hfk1W8Aそりゃ同期的なものなら幾らでもできるが、
DOMイベントとか一般的な非同期なイベントはESの範囲では表現できない。
ただしPromiseを活用することでできる。
0086デフォルトの名無しさん
2016/03/28(月) 17:12:03.19ID:5Y2MOZMB代入するまで処理を停止させるんですから、まさに同期通信の挙動ですよね
他の方もいってますが、同期通信にしては?
0087デフォルトの名無しさん
2016/03/28(月) 17:18:33.22ID:To6NOCCD素朴な疑問なんだが、dataに代入してるその部分でalert(もしくはalertにあたる処理)しちゃいかん理由があるのだろうか?
008876
2016/03/28(月) 17:31:19.89ID:NypY0af3クラスや関数の中でJSONのデータを取得して、それを関数外から参照したいのです。
なんか根本的に間違ってるんですかね・・。
JSONファイルの内容って非同期通信以外でも取得できるのかも・・。
とにかく、>>76のコードではどうやっても無理という結論で良いのでしょうか?
0089デフォルトの名無しさん
2016/03/28(月) 17:44:30.66ID:szf/wSg3流れを良く追ってないが、
> 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);
で呼び出す。
0090デフォルトの名無しさん
2016/03/28(月) 17:45:50.00ID:3hfk1W8A非同期を使うとそのようには書けない
ただジェネレータやasync/awaitを使って同期的に書くことは出来る
おまけで言うなら
onreadystatechangeではなくonloadを使い、
JSON.parseではなくresponseType='json'を使うのが今流
そしてさらにモダンなのがfetch
どのみち非同期的な書き方に慣れたほうがいい
0091デフォルトの名無しさん
2016/03/28(月) 18:09:19.03ID:UwAduPwejQuery ajaxを使った方がいいと思う
学習目的なら流してね
009276
2016/03/28(月) 18:19:55.16ID:NypY0af3かなり詳しくありがとうございます。以下の様なコードに変更しました。
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をした場合は表示されません。
関数外から参照するのは無理なのでしょうか?
009376
2016/03/28(月) 18:22:49.16ID:NypY0af3フリーのプラグインなど、jQuery使っていないものがありまして、
そういうプラグインをカスタマイズして、JSONファイルの内容を参照し、
そのプラグインに組み込みたい、というのが最終目的です。
ですので、非同期通信やJavascriptの基礎から勉強しているのですが、
理解が乏しく、皆さんのアドバイスを正確に受け取れていない状態です・・・
0094デフォルトの名無しさん
2016/03/28(月) 18:31:35.81ID:szf/wSg3> 関数外から参照するのは無理なのでしょうか?
my_callback()もfunc()の外側なんだが・・・。
つまるところ、自分が参照したい全ての所から参照できる変数global_dataを作って、
> var data = JSON.parse(xmlhttp.responseText);
のかわりに
> global_data = JSON.parse(xmlhttp.responseText);
とやればいいだけの話。
ただし問題は、いつglobal_dataにデータが設定されるかわからない所。
0095デフォルトの名無しさん
2016/03/28(月) 19:45:04.22ID:UwAduPwevar 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を使った方がいいと思うけど
0096デフォルトの名無しさん
2016/03/28(月) 19:48:00.76ID:UwAduPwe誤:x = JSON.parse(xmlhttp.responseText);
正:x = JSON.parse(xhr.responseText);
0097デフォルトの名無しさん
2016/03/28(月) 20:51:31.44ID:To6NOCCD手続き型っぽい書き方あきらめたらどうだ?
returnする目的って、要はその下でなんか呼びたいんでしょ?
フリーのプラグインとやらを、そこで初期化したらどうなの?scriptタグ書くとかして。あんまり勧めないけど。
プラグインって何なの?
0098デフォルトの名無しさん
2016/03/28(月) 21:12:37.35ID:surT/WgLfetchのポリフィルを使ったほうがベター。
0099デフォルトの名無しさん
2016/03/28(月) 21:13:11.47ID:Kq+xA51Mいや実装できるよ何をおっしゃてるのか…
0100デフォルトの名無しさん
2016/03/28(月) 21:43:03.94ID:surT/WgL何をどう使えば実装できると言うの?
簡単でいいから教えて。
0101デフォルトの名無しさん
2016/03/28(月) 22:07:15.35ID:To6NOCCDjQueryのasync:falseとか言われるよ。
0102デフォルトの名無しさん
2016/03/28(月) 22:36:17.91ID:5Y2MOZMBあなたのやりたいことは同期通信だからopenの第三引数をfalseに設定する
https://developer.mozilla.org/ja/docs/Web/API/XMLHttpRequest#open()
通信が終わるまでスクリプトの実行を停止するからUI的に美しくないけどね
0103デフォルトの名無しさん
2016/03/28(月) 23:31:36.73ID:+LUEdcB2後方互換性のために今はまだコンソールへの警告だけで利用できるが、
いつ例外を吐くようになっても文句は言えない。
https://xhr.spec.whatwg.org/#sync-warning
010476
2016/03/28(月) 23:45:17.88ID:NypY0af3この方法で出来ました!!まさに求めていたとおりです!
全体を関数に入れた変数にしてreturnすればよかったんですね。
コードの良し悪しはあるかと思いますが、
自分としては目的の動作が出来たので前に進めました。
皆さん、親身になってアドバイスして頂き、本当にありがとうございます。
今後も精進していきます。
0105デフォルトの名無しさん
2016/03/29(火) 00:04:17.83ID:QYd4S8TLそれ非推奨。
chromeなんかだと、そのうち例外出して落とすからって言ってる。
0106デフォルトの名無しさん
2016/03/29(火) 00:22:53.72ID:CiYiwfo2同期を教えて助けたつもりになっているアホも
だからお前らはゆとりのままなんだよ
0107デフォルトの名無しさん
2016/03/29(火) 00:34:20.46ID:K66wvvFn0108デフォルトの名無しさん
2016/03/29(火) 02:00:12.73ID:YkBe3d8Cジャヴァスクに親和性高いパターンとかあるのか
0109デフォルトの名無しさん
2016/03/29(火) 02:28:56.54ID:oBN7G4CBバグが起きにくい、安全で効率的なコーディングと、
間違いやすいポイントを解説
この本は、Scott Meyers の本より、わかりやすい
0110デフォルトの名無しさん
2016/03/29(火) 04:22:40.86ID:40DENoq9jQueryを使った方が楽って結論になるんだよな。
クロスブラウザのAjax通信+Promiseになってるから
0111デフォルトの名無しさん
2016/03/29(火) 04:24:33.66ID:UIi8OIdeアホかいな
配列と定期的なループで実装できるだろ
実際タスクキューなんて大半がそうなっとるわ
0112デフォルトの名無しさん
2016/03/29(火) 04:26:21.27ID:UIi8OIde0113デフォルトの名無しさん
2016/03/29(火) 06:04:51.79ID:coyYjSQU0114デフォルトの名無しさん
2016/03/29(火) 09:53:30.62ID:yarEvdglここを見ていると能書きばっかりでガックリ
0115デフォルトの名無しさん
2016/03/29(火) 10:12:35.49ID:ISdoAk/Z0116デフォルトの名無しさん
2016/03/29(火) 10:29:19.12ID:NT5SVIu7能書き以下の文句のみ書く奴もわからんけどね。
理論を現実化するって何なんだ?
コールバックするものを同期的にどうしても値を返したい、ってそれか?
0117デフォルトの名無しさん
2016/03/29(火) 10:46:38.03ID:z/ezpeX2なるほど。将来的に廃止予定だから警告や例外を発しても良い仕様なのね。勉強になった。
0118デフォルトの名無しさん
2016/03/29(火) 10:46:56.26ID:yarEvdgl失礼、能書きじゃなくて薀蓄かな
覗いてみた個人的感想として流してくれたらいいんだけど
質問に対して>>95のように回答してから薀蓄を並べる方が良いのでは?
ってことですよ
0119デフォルトの名無しさん
2016/03/29(火) 12:09:31.03ID:NT5SVIu7俺書いたけどね。
コードじゃなくて考え方だけど。
理解できないコードよりも余程為になるように書いてるつもり。
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とか使うしかねーんじゃないの?
0120デフォルトの名無しさん
2016/03/29(火) 13:24:26.66ID:ZJ5WWFRIそれは非同期通信でJSONデータを取得しての分岐処理だよね
質問の主旨は変数に通信でJSONデータを格納することだよ
0121デフォルトの名無しさん
2016/03/29(火) 13:34:39.47ID:kWaaro/J0122デフォルトの名無しさん
2016/03/29(火) 13:35:38.58ID:NGEgZfA0それは途中どういう手段を用いようが同期処理という (UIを止める処理だけを同期処理と言う訳じゃない)
コールバック内で受け取った値はコールバック内で処理すべし
0123デフォルトの名無しさん
2016/03/29(火) 14:01:50.79ID:kZZssD4fその「定期的」なループがESの範囲では実現できないでしょ。
精々ビジーループしかできない。
それだと例えばDOMの変更をポーリングしてそれをイベントとすることはできない。
イベントとして実際重要なのは刹那の間処理を外部に受け渡して待つこと。
これができないとDOMイベント同じ使い勝手と効果のものは実装できない。
その刹那の間待つ定期的なループをESの範囲で実現しようとすればPromiseを使うしかないという話。
0124デフォルトの名無しさん
2016/03/29(火) 14:03:11.20ID:0EsoxiRuまったく石頭だわ
Storageに保存して外で使うことできるけどな
0125デフォルトの名無しさん
2016/03/29(火) 14:15:07.45ID:z/ezpeX2Promise で DOM Events 相当の機能を実現できる気が全くしないのだけど、
例えば、MutationObserver 相当の事を Promise で実装するにはどのようなコードを書く?
0126デフォルトの名無しさん
2016/03/29(火) 14:17:53.64ID:kZZssD4fPromiseを活用すればsetImmediateやnextTick相当の機能を実装できるから
それでポーリングすればいい。
0127デフォルトの名無しさん
2016/03/29(火) 14:23:21.29ID:NGEgZfA0いつStorageに保存されたかをどうやって知るんだよ
結局何らかの同期処理をすんだろ
0128デフォルトの名無しさん
2016/03/29(火) 14:32:13.22ID:zwegJ/ggイベントはPromiseの代わりになるが
Promiseはイベントの代わりになるとは限らない。
例えばダウンロードの進捗具合のように
定期的に発生するイベントはPromiseでは実現できない。
Promiseは状態が遷移したらそれ以降動かないからだ。
onreadystatechangeもStateが変わるたびに呼び出されるから
Promiseでは全てを実現できない。
まずこれが基本だから、これを理解してから喋れ
0129デフォルトの名無しさん
2016/03/29(火) 14:38:06.76ID:NGEgZfA0この中で状態をポーリングしてUIを更新すればちらつかずに更新できるし
スクロールにもきちんと追従できる
0130デフォルトの名無しさん
2016/03/29(火) 14:50:41.80ID:yLeRa/O1元の流れが
>>65-68
のような無茶な流れなので、実用上の話と思うと当然無茶がある
それと、基本的にイベントに当たるものを作る時の話だからね
簡単な例えではsetTimeout的な機能も作れない
勿論全てのタスクを登録してビジーループで回したり、
事ある度にタスク管理に処理を戻せばある程度は可能だが、
Promiseを使えば既存のsetTImeoutやcreateEventとほぼ同じ使い勝手・効果のものを
エミュレートすることができる
0131デフォルトの名無しさん
2016/03/29(火) 15:02:49.41ID:0EsoxiRu当たり前だろ、毎回非同期通信しないために
同期通信で格納することを前提で言ってるんだよ
キミの言うようなことを言ってたらグローバル変数も使えないよ
0132デフォルトの名無しさん
2016/03/29(火) 15:09:45.93ID:z/ezpeX2よくわからないんだけど、それで MutationObserver 相当の事が出来るのね
具体的なコードが欲しいんだけど
0133デフォルトの名無しさん
2016/03/29(火) 15:10:48.04ID:NGEgZfA0同期処理するんだったら何もStorageを出さなくてもいいよ
普通にグローバル変数を使えばいいんだから
なんでStorageを出した?
0134デフォルトの名無しさん
2016/03/29(火) 15:16:11.37ID:0EsoxiRu論点をずらしてるんじゃないよ
石頭だって言ってるんだよ
日本語OK?
0135デフォルトの名無しさん
2016/03/29(火) 15:21:23.12ID:NT5SVIu7変数に格納してんじゃん。。
getJsonに渡してる匿名関数のコメントの三行目の代入はグローバルにだよ。
そっから好きなスクリプトタグ書けって言ってんの。
0136デフォルトの名無しさん
2016/03/29(火) 15:26:38.39ID:0EsoxiRuもっと逆上って言えば、質問者の意図する回答をしていないから荒れるんだよ
>>76の問に対して、>>95の回答 これで普通は解決なんだよ
あとは個々の主観ばかりの与太話にしか思えないよ
0137デフォルトの名無しさん
2016/03/29(火) 15:28:19.14ID:NT5SVIu7日本語読めないからコードかけって言われて、
コード書けって言われたからコード書いたらコードリーディングも出来なくてて、
ド低能にも程があるわ。
0138デフォルトの名無しさん
2016/03/29(火) 15:30:38.77ID:NT5SVIu7アホか。
非同期通信で、一つずつ次の作業をするのは、
同期通信にほかならんだろ。
.then().then....
は全部非同期だよ。順番に呼んでるだけで。
そもそもグローバル変数に保存してるしな。
0139デフォルトの名無しさん
2016/03/29(火) 15:34:40.10ID:NGEgZfA0いや突然Storageとか言って引っ込みつかなくて顔真っ赤にしてるのはわかったよw
0140デフォルトの名無しさん
2016/03/29(火) 15:38:22.94ID:z/ezpeX2この処理の肝はコールバック関数で受ける事であってグローバル変数やStrageだとかは完全な蛇足
>>76を完全に満たすには>>95の同期処理しかないわけだけど、現実的には非同期処理の方が望ましいからね
0141デフォルトの名無しさん
2016/03/29(火) 15:39:09.01ID:Z5Jc75xQ非同期XHRはJSのコールバックや非同期処理の良い勉強になるから
自分で色々調べて練習しろっていうのが最良の答えじゃね
0142デフォルトの名無しさん
2016/03/29(火) 15:43:56.03ID:0EsoxiRuお前が顔真っ赤なだけだろ?w
>>76が、味噌ラーメンを注文したんだから、
塩分多いから、やっぱりチャーシュー麺、醤油の方が美味しいよ、
味噌は塩分多いから...
など、どうのこうの言っているのと同じ
味噌ラーメンを食いたい人には味噌ラーメンを食わせば良いんだよ
さあ仕事するわ
0143デフォルトの名無しさん
2016/03/29(火) 15:52:51.17ID:NGEgZfA0シメはラーメンかよwwお前にふさわしいよw
0144デフォルトの名無しさん
2016/03/29(火) 16:29:40.76ID:zwegJ/gg> Promiseを使えば既存のsetTImeoutやcreateEventとほぼ同じ使い勝手・効果のものを
> エミュレートすることができる
setIntervalはどうやって作るの?
0145デフォルトの名無しさん
2016/03/29(火) 16:33:27.36ID:kWaaro/Jajaxでdata collection取得
↓
画面に反映
↓
ユーザが何か操作
↓
data collection更新
↓
ajaxでpost
って普通だと思うけど。
0146デフォルトの名無しさん
2016/03/29(火) 18:18:43.36ID:NT5SVIu7つくづくアホだな。
あたたかい水下さい→そんなもんねえよ、その代わり湯をやるよ。ってくらい的外れな事に現実的な回答を返してるよ。
米粉で作ったラーメン下さい→なんの事かわからんけど、米粉で作るのはフォーで、こういうの。
ラーメンはこういうの、って答えてるんだよ。
塩分が多いとかそんな問題じゃなくて。
食いたいものが物として現実解では有り得ないよ、って指摘。
何も読めてないのか、もう振り上げた拳が降ろせないのかわからんが、
新しい知識を素直に取り入れるのもプロだよ。
0147デフォルトの名無しさん
2016/03/29(火) 18:21:00.48ID:zwegJ/ggつまり熱い水。
0148デフォルトの名無しさん
2016/03/29(火) 18:22:02.75ID:NT5SVIu7そうだね。知ってるよ。
同じように、日本語で言う同期的な処理を、javascriptではコールバックで行うんだよ。
0149デフォルトの名無しさん
2016/03/29(火) 18:24:59.77ID:kWaaro/J> 同じように、日本語で言う同期的な処理を、javascriptではコールバックで行うんだよ。
それは初耳
0150デフォルトの名無しさん
2016/03/29(火) 18:25:56.86ID:NT5SVIu7まぁ、Promiseの実装でも見てみれば?
0151デフォルトの名無しさん
2016/03/29(火) 18:32:13.69ID:kWaaro/J非同期処理だって、コールバックで処理するだろと思っただけ
0152デフォルトの名無しさん
2016/03/29(火) 18:39:58.03ID:BL4JYHChこれ以上相互理解は出来ない
話は終わり
0153デフォルトの名無しさん
2016/03/29(火) 19:50:19.09ID:cRlulqCL実際の通信の方が終わっても一旦イベントループ勧めないと状態が更新されないのな
やっぱりfetchとawaitでも使うしかないか
0154デフォルトの名無しさん
2016/03/29(火) 20:13:48.80ID:CiYiwfo2理由:他の文句言っている奴は少なくとも「技術的観点」から物を言っているが、
こいつは感情的なことを言っているだけ。
てか俺はむこうのキチガイBBA = ID:NypY0af3 = ID:yarEvdgl じゃないかと思っているんだが。
とにかく回答が欲しい、それについては煽ろうが他人の指摘を無視しようがお構い無しだろ。
低脳っぷりも似ている。
そもそも質問も見覚えがあるんだが。
お前らが何をしたいのか分からんが、回答先と回答内容はちゃんと選べよ。
お前らのためにもならないぞ。
回答すればいいってものじゃないんだよ。
>>119
挑発に乗るな。お前のためにもならないぞ。
どうみても>>76は一行も理解しておらず、コピペでしかないだろ。
だから76は何とかしてコードを書かせたいだけなんだよ。自ら学ぼうなんて微塵も思っていない。
そもそも回答に不服があるのなら、かっこいい回答を自分で書けば済む話だ。
それも出来ない癖に文句を言っている時点で察せ。
そもそも「車輪の再発明」をあれほど嫌うお前らが何故「回答の再発明」を嬉々としてやるのか意味不明だ。
どうやらお前らゆとりは何故「車輪の再発明」が駄目なのか理解できていないようだ。
これは「回答の再発明」だと思われる案件は、無視したほうがいい。
多分それがお前らのためにもなると思う。
0155デフォルトの名無しさん
2016/03/29(火) 20:21:42.04ID:cRlulqCLWebの進歩は日進月歩で何が最良かは日々変わるので、
それを確かめることが無意味ではないということと、
車輪の再発明は初心者が技術を磨くためには有用で、
その教え方としてどうするのが良いのかを議論するのも無駄ではない。
だからこそ皆話し始めて話を続けているわけで
0156デフォルトの名無しさん
2016/03/29(火) 20:40:04.88ID:z/ezpeX2「車輪の再発明をしなくていいから車輪が何かを知っている必要はないんだよ」と主張する輩もいるけど、違うと思うな
0157デフォルトの名無しさん
2016/03/29(火) 21:48:07.43ID:D22lADAw0158デフォルトの名無しさん
2016/03/29(火) 22:55:48.280159デフォルトの名無しさん
2016/03/29(火) 23:20:15.85ID:CiYiwfo2「再発明」は自習に「有用」で、君が「教え方」を学びたいのなら、
君がやるべき事は、MDNを再読することだ。
それが「車輪の再発明」におけるライブラリコードリーディングに該当する。
少なくともここで "sleep" とか言い出して余計に混乱させることではない。
それにお前らも分かっていると信じたいが、「車輪の再発明」と同様、
お前ら以上にJavaScriptを知っている連中が、お前ら以上に時間をかけて丁寧に説明しようとした結果がMDNだ。
もちろん誤字脱字訂正も為されている。(デバッグ済)
だからそれ以上の説明をここでサクっと出来ることは稀だ。
ライブラリ推進派なら、MDNの説明を使える部分はさくさく引用して終わりにするべきだ。
糞みたいな説明されても質問者も迷惑だろ。
お前らは結果的にお互いに足を引っ張り合っていることに気がついていない。
「同期XHR」なんて明らかに間違いだし、そもそも非同期で書けないようではJavaScriptではやっていけない。
そこで躓いたら、インストールするしかないんだよ。
こいつは非同期以前にクロージャ、スコープ、グローバルも分かってない風だし、
「最初からやりなおせ」が正しい解答だ。
ここで間違った「同期XHR」を教えるのは、一時的には解決になるものの、長期的に見ると遠回りになる。
お前らもそういった「長期的に見て遠回り」のことばかり教えられ、
結果的に時間の割に成長せず、低レベルにとどまっているように見える。
まるきり分かってないような奴は、「最初からやり直せ」で追い返すべきだ。
それが本人のためにも、君らのためにもなるんだよ。
0160デフォルトの名無しさん
2016/03/29(火) 23:25:54.24ID:zwegJ/gg0161デフォルトの名無しさん
2016/03/29(火) 23:27:50.39ID:h9Hf6Oqwそうでないのだから、別に慣れ合いを楽しんだっていいでしょ
0162デフォルトの名無しさん
2016/03/29(火) 23:52:24.48ID:NT5SVIu7データが来てから、何かを行う、
これを同期的な処理と言わずなんと呼ぼうか。
他の処理とは非同期だけどね。
って言葉遊びだよ。
なんかすまなんだ。
>>154
人間、コピペから始めるもんだよ。
小1のひらがな書き取りから漢字ドリルから、読書感想文から文学作品に至るまで。
それがナンセンスだよ、と言われて、考え方を示唆されて、それでも分かんなくて例を出されて、アホさを痛感すれば多少は学ぶだろ。
だからクソ叩くけどね。
0163デフォルトの名無しさん
2016/03/30(水) 00:30:36.08ID:Op2rn9Lq> それが「車輪の再発明」におけるライブラリコードリーディングに該当する。
「車輪の再発明」は何のコードを読まず、一からコードを書くことを指すものだと思うが、コードを読んだらそれはただのコピペプログラミングではないのかね
「車輪の再発明」をするならPolyfill系が実用的かつ内部動作を知る機会を得られてお勧めだな
Selectors APIとかclassListとか仕様書とにらめっこしながらコードを書くのは割と楽しい
0164デフォルトの名無しさん
2016/03/30(水) 08:02:34.29ID:rLuvgVFw少なくとも現代社会では君のような奴は必要とされない。
0165デフォルトの名無しさん
2016/03/30(水) 09:03:18.80ID:BnXnDw8Qここでは必要なことだよ
0166デフォルトの名無しさん
2016/03/30(水) 11:19:35.17ID:dKie64pY現代社会ではじゃなくてIT土方企業ではの間違いだろw
自ら学習せずしてどうやって技術力を高めるのか?
お前のように自分の価値を自分で貶める輩がいるから日本の技術者は給料が低いんだぞw
0167デフォルトの名無しさん
2016/03/30(水) 11:42:46.78ID:5NyBO0m8また、プロとは呼べない
0168デフォルトの名無しさん
2016/03/30(水) 12:41:28.81ID:rLuvgVFwですね。
0169デフォルトの名無しさん
2016/03/30(水) 12:47:47.70IT技術より業界のしきたり?慣習?を理解する方が大変
人に聞かないと判明しないし…喫煙所でコーヒー奢ったり…
0170デフォルトの名無しさん
2016/03/30(水) 12:54:55.38ID:yO7JBNvwその為には自分がやりたかった事を他人に振ることもするし
逆に時間を作って自分がやりたい車輪の再発明もする
ただプロジェクト自体は必ずうまく行くから誰も文句は言わない
それが出来る奴
0171デフォルトの名無しさん
2016/03/30(水) 13:06:33.19ID:iiS6Zli9プロに夢見すぎ
金が稼げてればプロ
0172デフォルトの名無しさん
2016/03/30(水) 14:37:03.78ID:Op2rn9Lq生産性が下がるから勉強しないというのは本末転倒
0173デフォルトの名無しさん
2016/03/30(水) 15:00:52.65ID:rLuvgVFw詭弁は他でやるといいよ
0174デフォルトの名無しさん
2016/03/30(水) 16:04:19.16ID:aZ4nzpeDquerySelectorみたいなもので全体に対して検索書けるようなAPIはあるのでしょうか?
0175デフォルトの名無しさん
2016/03/30(水) 16:16:36.25ID:cWDvBnb1何回も同じ質問をするな
0176デフォルトの名無しさん
2016/03/30(水) 16:23:20.36ID:Op2rn9Lqdocument.evaluate
0177デフォルトの名無しさん
2016/03/31(木) 11:29:17.02ID:ymqhTLQ0違うだろ、本職でも稼げない奴は沢山いる
0178デフォルトの名無しさん
2016/03/31(木) 11:36:31.72ID:fi72UJLfありがとうございますXPathってもしかして結構便利なんですかね。
とりあえず目的のことができました。ありがとうございます
0179デフォルトの名無しさん
2016/03/31(木) 11:52:08.55ID:AghJqbjM稼げてない奴は「自称プロ」
0180デフォルトの名無しさん
2016/03/31(木) 12:46:18.71ID:z7eByYkq「npm should be run outside of the node repl in your normal shell」
というメッセージが出るんですが、これはどうすれば回避出来るのでしょうか?
0181デフォルトの名無しさん
2016/03/31(木) 13:05:54.63ID:7B1LSXi4どっから落として実行したのか知らんけどインストーラー使っとけって
0182デフォルトの名無しさん
2016/03/31(木) 13:08:58.74ID:z8vLV66oというかその文章で教えてくれてるじゃん。どうして読まないの???
npmコマンドはnodeのreplで使うものじゃない。
各OSの標準シェルから叩くもの。
0183デフォルトの名無しさん
2016/03/31(木) 13:11:32.09ID:z8vLV66oどアホ
stackoverflowを参照するなら上の方の+5,6のそういう回答じゃなくて
+30付いてる方にしろよ
0184デフォルトの名無しさん
2016/03/31(木) 13:14:41.63ID:7B1LSXi4ちょっと待てよ!
件のはそもそもnpmが使えないからnodeからnpm iしてみたらって話でしょ
恐らく>>180は同じケースだろうからああレスしたんだよ
0185デフォルトの名無しさん
2016/03/31(木) 13:25:08.83ID:mJpDHBVP「商用利用可だが著作権の明記が必要」と解説しているサイトに書いてあったのですが、これはソースに書いておけば良いということなのでしょうか
それともスクリプトが実行されるページ内に表示する必要があるのでしょうか
よろしくお願いします
0186デフォルトの名無しさん
2016/03/31(木) 13:47:11.71ID:yy0681Er0187デフォルトの名無しさん
2016/03/31(木) 13:55:36.38ID:7B1LSXi4そのライブラリだとCC2.5だけど本来ソフトウェア向きのものではないから微妙だな
CCの趣旨では使用したドキュメント内で著作権表示が行われることを想定しているから
Webサイトで使うならページ中にクレジット表示入れるのが無難だと思う
0188デフォルトの名無しさん
2016/03/31(木) 14:29:30.30ID:mJpDHBVPなるほど
ソフトウェア向きではないんですね…
ありがとうございます 助かりました
0189デフォルトの名無しさん
2016/03/31(木) 16:23:25.76ID:z7eByYkqありがとうございます
プロンプトでやったら出来たっぽいです
どこにインストールすればいいのかわかりませんが
0190デフォルトの名無しさん
2016/03/31(木) 16:57:04.95ID:fi72UJLf<p><a>123</a>abc<a>efg</a></p>
に対して以下のxpathを試してefgの部分は取得できたのですが
//*[text()="abc"]/*[text()="efg"]
できればabcの部分(条件を満たすエレメントの先頭要素)を取得したいのですが
どう書けばいいのでしょうか?
0191デフォルトの名無しさん
2016/03/31(木) 17:10:45.04ID:acvfOefzefg取れたならそいつの親の子じゃないの?
0192デフォルトの名無しさん
2016/03/31(木) 18:09:57.76ID:fi72UJLf//*[text()="abc"]/*[text()="efg"]/..//*
とすると
<a>123</a>, <a>efg</a> が取れるんですがテキストノードが何故か除外されてしまいます。
0193デフォルトの名無しさん
2016/04/01(金) 00:55:35.78ID:o32zNHl2ちゃんとユニットテストしたいときってどーしてんの?
0194デフォルトの名無しさん
2016/04/01(金) 01:01:52.29ID:6H5rXnFjユニットテストはアプリケーション層以下で行う
賞味期限が切れたら殆どが使い捨てられる運命にあるプレゼンテーション層でユニットテストは作業者の負担になるだけ
0195デフォルトの名無しさん
2016/04/01(金) 03:20:39.57ID:0Q+2ltBpそれ以外ではまともに書いたことがないね。
それが長期に渡って発展され続けて、かつ構造の変わらないものでないとテストを書く意味は薄い。
テストってのは一番はいつの間にか壊れてたってのを防ぐためのものだからね。
一発ものだったり、バージョンが上がる度に要件が結構変わりそうなものでは費用対効果が悪い。
まあある程度変化が落ち着いてから改めて書くってのはありだと思う。
でももうこれ以上発展させなくなった時に書いても仕方がない。
成長過程のちょうど中ほどで書くというのがベストなんだろうけど見通すのはなかなか難しい。
0196デフォルトの名無しさん
2016/04/01(金) 03:43:30.09ID:0hX+vVN6テストってのはいつの間にか壊れてたを防ぐものじゃないだろ。
これはこういう動きをすると保証しますって物じゃないの?
0197デフォルトの名無しさん
2016/04/01(金) 05:49:03.45ID:xgn0cw4K>プレゼンテーション層
OSI参照モデル?
0198デフォルトの名無しさん
2016/04/01(金) 06:53:34.67ID:LDlR2m0j0199デフォルトの名無しさん
2016/04/01(金) 07:13:59.22ID:2GR9s30vJavaScriptのネストしまくってダラダラ書くスタイル嫌い
オブジェクト指向と言いつつモジュールとか機能の単位とかの概念と合わない
0200デフォルトの名無しさん
2016/04/01(金) 07:22:16.84ID:0P46FgGjXPath って直接いじったりするもの?
何かのライブラリを通して、使うものじゃないの?
Groovyなら、XmlParser, XmlSlurper とか、イベントベースのSAX, StAX を使うと、
クロージャでコールバック関数を書ける
Groovy学習14 XmlSlurperによるXMLの解析
ttp://symfoware.blog68.fc2.com/blog-entry-1183.html
0201デフォルトの名無しさん
2016/04/01(金) 08:16:46.78ID:BBjX6NvIhttps://developer.mozilla.org/ja/docs/Web/API/document/evaluate
0202デフォルトの名無しさん
2016/04/01(金) 09:20:32.97ID:QIAaDLEb御意、見出しのない辞書のようなモノ
見るだけでウンザリ
0203デフォルトの名無しさん
2016/04/01(金) 09:30:23.42ID:CHPnKeLy言い方見方を変えただけで実際はほぼ同じ事のように見えるが
0204デフォルトの名無しさん
2016/04/01(金) 09:38:12.97ID:7UmkX6sZ違うよ。
壊れてるのを検出するためのものじゃなくて、
壊してしまうことを検出する為のもの。
0205デフォルトの名無しさん
2016/04/01(金) 11:58:37.72ややこしいロジックをまとめたクラスにはユニットテストするけど
CasperJSでテストして動けばええやろと言う態度です
0206デフォルトの名無しさん
2016/04/01(金) 13:15:45.37ID:QIAaDLEbバカの一つ覚え
0207デフォルトの名無しさん
2016/04/01(金) 13:33:28.72ID:BBjX6NvI>>195だとヒューリスティックスキャンのように読める
0208デフォルトの名無しさん
2016/04/01(金) 17:45:36.67ID:8p2KsOzxその2つも実際はそんなに変わらないと思うが、
どちらかと言うと自分は後者のニュアンスで言ってる。
0209デフォルトの名無しさん
2016/04/01(金) 19:53:09.41ID:xvbiumjAそうみたいね
JavaScriptはアプリケーション層だと思うけど
0210デフォルトの名無しさん
2016/04/01(金) 19:55:30.67ID:ADMr3fbYMVVMはバインダが無いから上手く行かなそう
MVPとMVCだとどっちが良いんだろう
0211デフォルトの名無しさん
2016/04/02(土) 02:29:36.95ID:d3CGaqY7そしてMV何かは拘る必要はない。
これから標準的にオススメされていくのはRxJS 5にあるようなObservableを使ったパターンだが、
別になんだって良い。
0212デフォルトの名無しさん
2016/04/02(土) 09:03:53.56ID:uByagQKe0213デフォルトの名無しさん
2016/04/02(土) 11:20:30.330214デフォルトの名無しさん
2016/04/02(土) 13:24:45.76ID:7QV6Y65Ddescendant::text()[.="abc"]
https://jsfiddle.net/kgr5ybkq/
0215デフォルトの名無しさん
2016/04/02(土) 15:06:34.57ID:NSyOUFVIMVVMじゃない。
React.jsは何パターンなんだろね。
0216デフォルトの名無しさん
2016/04/02(土) 18:45:38.17ID:kcrpe57e変形Observableじゃないか?
あいつらのやった一番偉大な事は、ありきたりな物の組み合わせに名前をつけて定義するって事だと思ってる。
「こんな形の、向かい合った辺の組み合わせが平行な四角形」に、「平行四辺形」って名前をつけると、みんな頭の中にちゃんと平行四辺形が浮かぶようになるような感じ。
そもそも、クラサバアプリのwinmainとコントロールとUIスレッドの組み合わせと全く同じで、なんの発明でも無いからな。
0217デフォルトの名無しさん
2016/04/02(土) 18:46:04.82ID:aCJgiZndバインダ書くのがめんどくさいからフレームワーク無しでMVVMはまず無理
MVPは非同期処理が貧弱なせいで書きにくい
MVCなら簡単
UIイベント.done(サーバ通信().done(モデル更新).done(UI更新))
これだけで全てが上手くいく
0218デフォルトの名無しさん
2016/04/02(土) 19:05:21.28ID:MErRnMko厳密にMVなにかを言うのは難しい
0219デフォルトの名無しさん
2016/04/03(日) 10:42:42.99ID:YP3p5dYq0220デフォルトの名無しさん
2016/04/03(日) 11:17:51.87ID:rmt1T5Kd何が違うんでしょうか?
どちらを使うのでしょうか?
0221デフォルトの名無しさん
2016/04/03(日) 12:14:21.00ID:kdjOntdl0222デフォルトの名無しさん
2016/04/03(日) 12:24:41.11ID:7jlo6lqN�@開発時にはモジュール単位でファイルを切って
ファイル間の依存関係がある場合はscriptタグの追加によって依存先を読み込む
�A開発時にはモジュール単位でファイルを切って
公開する前に全ファイルを結合してしまう
プログラマ的な感覚だと�@がしっくりくるんだけどscriptタグ追加とファイルのロードが非同期的なため扱いにくく通信回数も増えるなどデメリットがある
�Aはちょっと気持ち悪いし結合の手間がかかる点と不必要なコードも結合してしまう点が良くない
なにかいい方法ないですかね
0223デフォルトの名無しさん
2016/04/03(日) 12:25:15.68ID:6MQCRpaJちゃんとしたい時には匿名関数は使わない
一部を除いてほぼ全ての関数に名前を付ける
0224デフォルトの名無しさん
2016/04/03(日) 15:30:11.54ID:OaDtSrzOnode はコマンドで、node.exe はたぶん実行ファイル
Linuxではターミナル(端末)を起動すると、bash などのシェルが起動する。
そのシェルで、node などのコマンド名を打ち込むと、
環境変数の探索パス(PATH)の順番に、例えば、こういうディレクトリの順番で、
/usr/local/sbin/:/usr/local/bin:/usr/sbin/:/usr/bin/:/sbin:/bin
そのコマンド名が登録されているかどうかを探す
数個あるどの探索パスにも、そのコマンド名が登録されていなければ、
そのコマンド名は存在しないので実行できない、というエラーになる
端末で、which node と書けば、nodeコマンド名が、
どこの探索パス内にある、どのプログラムを指しているか、わかる。
つまり、どこかの探索パス内にある、node.exe
0225デフォルトの名無しさん
2016/04/03(日) 18:55:00.49ID:rmt1T5Kdつまりwindowsについているプロンプトの方を使って、nodejsを実行するということですよね。
コマンドなしならnode.exeの方からも操作出来るってことですよね。
すっきりしました。ありがとうございます。
0226デフォルトの名無しさん
2016/04/04(月) 04:17:01.68ID:HKTiO3l50227デフォルトの名無しさん
2016/04/04(月) 09:07:46.39ID:zlday2Sk言っちゃ駄目だよ
自己満足してるんだから
0228デフォルトの名無しさん
2016/04/04(月) 15:11:29.01ID:kC7w/ICjどういうことでしょうか?
0229デフォルトの名無しさん
2016/04/04(月) 19:11:54.27ID:NjHEg+Kd<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がオンになっている場合これだとブラウザでページを読み込むときに
一瞬ちらっと無効化されているというテーブルが表示されてしまいます
このちらつきを解消する方法はありますか?
0230デフォルトの名無しさん
2016/04/04(月) 19:40:36.90ID:u65DNVI0noscriptつかえやカス
0231デフォルトの名無しさん
2016/04/04(月) 19:48:15.98ID:23c2ZC8Hmodernizrを使えばいい。
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に変更するスクリプトを書くだけ。
0232デフォルトの名無しさん
2016/04/04(月) 22:37:38.34ID:aA7d4T8TJavaScriptを使って解決するなら
document.styleSheetsを書き換えれば良い
最も、内容的にはnoscript要素が妥当な気がするが
0233デフォルトの名無しさん
2016/04/05(火) 08:20:53.68ID:F8KWDDTedisplay.hidden
0234デフォルトの名無しさん
2016/04/05(火) 10:04:36.42ID:OVtadeSC0235デフォルトの名無しさん
2016/04/05(火) 10:25:58.75ID:iKLx8/tNdisplay: none にしておいて$().readyでshow()とかで十分
0236デフォルトの名無しさん
2016/04/05(火) 11:25:54.14ID:vndmlNk/ところで満足できた?
0237デフォルトの名無しさん
2016/04/05(火) 23:22:21.68ID:gGzP1w2ishowじゃなくてhtmlかbody要素に対するaddClassとかにしてください。
showとか使うと、showしたいものが増えるたびに
コードが増えていって目障り。
っていうか、jQueryを使うまでもなく一行のscriptで十分
ready時にやることじゃない
0238デフォルトの名無しさん
2016/04/05(火) 23:49:48.18ID:wlptsMO2このようなコードだと「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バイトのファイルとなるのですが、解決方法ありませんでしょうか?
0239デフォルトの名無しさん
2016/04/06(水) 00:11:19.27ID:QegkB/wbJavaScriptのスレ、こういうのも多いよな。
何故だかは分からんが。
0240デフォルトの名無しさん
2016/04/06(水) 03:03:48.81ID:kRFLofHq探したけどここが一番適切かなという気がしたので、そのときは誘導かけてもらえると嬉しいです
現在JavaScript勉強中なのですが、どうしてもES5の仕様が苦手というか混乱してしまう感じで、調べたところES6/CoffeeScriptなどが魅力的に思えました
ただ、ES6はまだ対応が不十分なようですし、CoffeeScriptは初心者が手を出すのは推奨できないようなことも聞きます
いずれにせよES5は一通り確認はするつもりですが、実際の開発にこれらを用いるのは推奨されがたいことでしょうか?
0241デフォルトの名無しさん
2016/04/06(水) 03:08:36.42ID:q1HrDxSzaddclassはどのタイミングでやるんですか?readyですか?
0242デフォルトの名無しさん
2016/04/06(水) 03:45:58.88ID:eDxTjoz1何か勘違いしている気がするが、script-off時には表示してscript-on時には表示しないコンテンツ制御の話でscriptで非表示にすると一瞬見えてしまう問題への対処だぞ
あなたの説明だと逆に読める
0243デフォルトの名無しさん
2016/04/06(水) 04:50:52.54ID:SC9yOBng何が勘違いだと思ったの?
0244デフォルトの名無しさん
2016/04/06(水) 04:53:21.71ID:SC9yOBngそれコード量変わらなくない?
0245デフォルトの名無しさん
2016/04/06(水) 05:12:41.13ID:7tA2KQf1jQuery使うなら原則としてreadyでやらないといけなくなる。
だけどこの場合はそこまで遅らせる必要がない。
jQueryを使わなければそれよりも早い段階で処理を行える。
readyはDOM構築後なので厳密に言えば画面に表示されてから少し遅れて発動する。
>>244
addClassはHTMLかbody要素につける。
だからshowしたいものが増えても一つだけでいいし
何よりCSSで見た目を処理できる所が優れている。
0246デフォルトの名無しさん
2016/04/06(水) 07:58:50.48ID:BFsTf7eA漏れは、乃木坂46の755を見るけど、
一瞬前のページが見えるし、勝手にスクロールが動く。
最近の投稿も見れない
この会社、バグが多すぎる
>>240
RoRは、CoffeeScript だったかな?
0247デフォルトの名無しさん
2016/04/06(水) 10:34:16.16ID:kxGSeBFyES6(今はES2015)はほぼchromeで動くしそのまま書けるよ。
個人的にはTypeScriptこそ初心者向きな気がする。
ライブラリの使い方をIDEが教えてくれるようになる。
ただしnpmの使い方とかnode.jsのエコシステムの勉強も必要になるけど
0248デフォルトの名無しさん
2016/04/06(水) 12:39:08.17ID:eaJ/kAxlブラウザアプリを作ってますが、ブラウザの切り替えが面倒です。
0249デフォルトの名無しさん
2016/04/06(水) 13:12:21.73ID:y1UF9DzIElectronでいっその事作ってみては?
0250デフォルトの名無しさん
2016/04/06(水) 14:05:21.20ID:eDxTjoz1そのやり方の場合、show() が入る余地がない
https://jsbin.com/jotugupeha/edit?html,output
ちなみに、CSS採用なら>>232,234でも良くて特にclassに拘る理由はないはず
0251デフォルトの名無しさん
2016/04/06(水) 16:02:40.09ID:kRFLofHq>>246
RoRは未経験ですがRubyが好きなのであの雰囲気に惹かれたという部分はあります
>>247
古いブラウザとかに配慮しろという話だったのでしょうか?
仕事でやるわけではないので、あまり気にしなくていい程度ならそれの方が好ましいですね
TypeScriptも確認してみようと思いますが、その場合はVisualStudio推奨です?
0252デフォルトの名無しさん
2016/04/06(水) 17:29:23.15ID:nw3yxtcqまあいいか
今V8がES.nextを見据えた型付構文のテスト実装してきてるけど
そんなにTSと差異ないしね
ただし、デコレータやらジェネリックやら、
なんでもTS独自の機能使うときは
きちんとES.next標準の流れに近いものか定期的に確認した方がいいね
変なのに慣れても仕方ないから
0253デフォルトの名無しさん
2016/04/06(水) 18:35:37.93ID:kRFLofHq何か微妙だったりするのでしょうか?
新旧いろんな情報が交錯しててうまく判断できずにいたのですが、自己判断できるようになるまで余計なことしない方がいいとかならばそうします……
一応最終的にはHTML5と組み合わせてアプリケーション作れると嬉しいなと思っているのですが
0254デフォルトの名無しさん
2016/04/06(水) 19:34:51.87ID:u2n9JpiE自己満足、少々分かったくらいで満足せず、
色んな情報を常に収集し、試して分別を付けていくほうが良いと思うよ
0255デフォルトの名無しさん
2016/04/06(水) 20:49:12.92ID:eDxTjoz1仕事でなくともIE11-をサポートしないのはお勧めしないが…。
「IE閲覧不可、Google Chrome, Firefox をインストールしてください。写真者お断り。」な注意書きを書く事に躊躇がないなら止めないが。
http://kangax.github.io/compat-table/es6/
0256255
2016/04/06(水) 20:55:04.63ID:eDxTjoz1○ 初心者お断り(別のブラウザをインストールできるリテラシーのある人だけ閲覧して下さい)
0257デフォルトの名無しさん
2016/04/06(水) 21:09:16.73ID:kRFLofHqありがとうございます
そうですね、無理のない程度に頑張ります
>>255
あ……思った以上に厳しい
すみません、あんまりブラウザごとの際に明るくなくて
0258デフォルトの名無しさん
2016/04/06(水) 21:14:41.83ID:/OWN3IzCモダンブラウザ前提で作って、レガシーブラウザでは動くとこだけ動けばOKってスタンスは全然アリだと思うよ
0259デフォルトの名無しさん
2016/04/06(水) 21:29:03.79ID:eDxTjoz1Windows 7以上なら8.1にアップグレードしてEdgeへの乗り換えを促す事は出来るが。
0260デフォルトの名無しさん
2016/04/06(水) 21:40:22.43ID:/OWN3IzC現在となってはレガシーとしか言いようが無いし、
仮にIE12が出たとしても自動アップデートされず標準の流れに付いていけないものは
モダンブラウザと同等にはもてはやせず、まともに相手にできないだろう
「モダンブラウザのベースライン」に加えてそういうIE11とかを相手にするとそのとき倍労力がかかるのに加え、
知識を保持するという面でも相手にする個数倍労力がかかる
結局無難な面倒を見る落とし所は「モダンブラウザのベースライン」と「JS OFF」の2つ
それにES5がギリギリ使えるIE9や古めのモバイルブラウザを加えて3つにするかどうか
最初からIE11を下限で開発することが決まってでもいないかぎり、
合理的にどうわけてもIE11はもはやモダン側には入らない
0261デフォルトの名無しさん
2016/04/06(水) 21:56:00.60ID:iUuTyWAf機械音痴の人は他のアプリのインストール方法も知らんし、新しいUIになじめる自信がなくてWindows Upgradeも怖くてやらん保守派の人は大勢いる。
そもそも、Windows VistaはWindows8にUprade出来ないしな。
0262デフォルトの名無しさん
2016/04/06(水) 22:00:57.68ID:kxGSeBFy>TypeScriptを今から始めるのはねぇ……
今からTypeScript始めるのってなんか問題あるかな?
ES2015+型って感じでいいと思うけど。
RxJSもTypeScriptでライブラリ自体書き直してるらしいし
React.jsもTypeScript使ったほうが書きやすい。
MacでもVisualStudioCode+TypeScriptの環境が使い勝手がいい。
型情報を集めるためのエコシステムがまだ不便なところがあるのが問題といえば問題かも。(TypeScriptは既存のJSライブラリを型付で扱うために別途型情報を管理する必要がある)
0263デフォルトの名無しさん
2016/04/06(水) 22:25:53.00ID:qvzg5VgEこれからの一年で型付構文やらデコレータやらジェネリックが
標準にどういう仕様で入るか細かなとこまで見えてくる
それによっちゃTSのそれらの仕様も一部古いものとされたり変更されるかもしれない
とういうか、いくらTSがES.nextを見据えたものとはいえ、
それらの型に纏わる部分はTSが理想とする独自の世界を気づいているから
標準の軸とずれるのは間違いない
だから今は取り敢えずそこら辺はおいといて、無難なES.nextのトランスパイラで我慢しておいて、
型周りの標準仕様が粗方定まってトランスパイラが受け入れるようになってから
使っていくほうが良いのではないかと思ってね
0264デフォルトの名無しさん
2016/04/06(水) 22:39:45.70ID:QegkB/wbいや、かなり紛らわしかったが、俺が言いたかったのは質問しっぱなしの馬鹿が多いということだ。
それはさておき、755見てみたが、まあ許容範囲じゃないか?こちらでは大した実害は無い。
このtwitterモドキ、何がいいのかは分からないが、これはおいておくとして、
上下逆だから、どうしても何らかの仕掛けが必要になる。
スクロールがずれるのは画像ロードがスクロール指定と非同期だからだ。
これを対策することは出来るが、スクロールがカクカクになるから今のほうがましだろう。
一瞬前画面が見える原因はXHRで中身だけ差し替えているからであり、
対策すると結局もっさりになるので大して意味が無い。
> 最近の投稿も見れない
これはtwitter_widgetが上手く動作しておらずアップデートされないということか?
こちらではよく分からない。
0265デフォルトの名無しさん
2016/04/07(木) 00:08:51.64ID:6pgtk04X常に最新の仕様を使いたいと思わずES2015の範囲で使っておけばいいのでは?
ES2015の範囲ならTypeScriptはES2015+型という理解で問題ないと思う。
俺的には 静的言語によるIDE補完機能 > 最新の仕様を使いたい
だけどこの辺は好みなのかな?ES2016で便利な仕様ってなんかあったっけ?
0267デフォルトの名無しさん
2016/04/07(木) 09:02:52.62ID:X1sRymbk何を使うべきかそれを全くの初心者が判断するのは厳しいだろう
それとES仕様はもう2016が固まってる時期で
次は2017と次から次に進んでいる
TSがES+αとして取り入れていたαの部分が
その「型」も含めてそろそろ2017や2018の辺りで標準に取り入れられそうだし
仕様はもうすぐ今年度一杯で細かいとこまで確定して行きそうということが重大
まあ仕様も大事なんだがそれと同じくらい実装状況も大事
つまり生きた今の、これからのJavaScriptの感じというのが最も大事で基準になるものであって
その点V8が型の実装を始めたというのは、
どこも実装に手を出してない他のES.nextの機能に比べると遥かに現実感が強く
TSの立ち位置や価値観に対して、まだ軽微だが無視できない影響を与えていると言って良い
0268デフォルトの名無しさん
2016/04/07(木) 09:08:24.98ID:WOcBPxvvこれで解決
0269デフォルトの名無しさん
2016/04/07(木) 09:09:44.79ID:X1sRymbkV8は標準に取り入れられるよりもずっと速く実装を仕上げてくるだろう
O.oの件の反省がなければデフォルトで有効にしてくるくらいの勢いかもしれない
O.oの二の舞いになるかどうかは見ものである
0270デフォルトの名無しさん
2016/04/07(木) 19:09:45.36ID:9u6CMKZB0271デフォルトの名無しさん
2016/04/07(木) 19:55:06.94ID:yj5lmIW7https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/observe
http://www.html5rocks.com/ja/tutorials/es7/observe/
0272デフォルトの名無しさん
2016/04/07(木) 21:19:11.33ID:9u6CMKZBありがとうございます
0273デフォルトの名無しさん
2016/04/08(金) 01:13:27.67ID:zB1D6Ii9クライアントコードとサーバーコードに同じような検証コードを2回も書くのが無駄な工数に感じるのでこんな事をしています
0274デフォルトの名無しさん
2016/04/08(金) 01:47:47.44ID:g+7B4ruNそれがnodeが出てきた一つの理由じゃないかな。
ところでロケール送ってメッセージそのものを返してもいいとは思うけど。
0275デフォルトの名無しさん
2016/04/08(金) 08:43:38.59ID:NMN4wPSn変ではないが、クライアント側での検証は通信せずに検証出来るメリットがなくなっている。
一つずつ入力の度に検証するのならsubmitするまで検証結果が分からないという事態は防ぐことができるが。
どちらにしてもサーバサイドで検証アルゴリズムを持って行きたいのならサーバサイドからpattern属性に正規表現を埋め込んで適切なフォームを生成→JavaScriptで検証させるのが妥当じゃないかな。
0276デフォルトの名無しさん
2016/04/08(金) 16:37:31.31ID:Y8o95cYYjQueryで中のコンテンツを切り替え可能なタブを作って、タブをクリックして表示切り替えされる中のコンテンツを入れるdivの一つにWebエディタを実装したいのですが、
正常に機能せず、エディタ部分をクリックしても反応せず、書き込みができない状況でレンダリングされてしまいます。
エディタはJavascriptで書かれているace.jsです。
【環境】mac, Rails, local
【何をしたのか】
サンプルコードの、
#box divにace.jsを表示させようとすると動作せず、
#tabmenu ul liに置くと正常に動作します。
正常に動作しないエディタ部分の画像=>http://imgur.com/MhQjdbw
【エラーメッセージ】
Chomeのデベロッパーツールでこのようにエラー表示されています。
GET http://localhost:3000/dirname/src-noconflict/ace.js 404 (Not Found)
【期待する結果】
サンプルコードの、#box divにaceエディタが正常に表示され書き込めるようにしたいです。
正常に動作したエディタの状況=>http://imgur.com/EPokymv
【サンプルコード】
http://imgur.com/4NYKoYI
jQueryのタブ切り替えが阻害要因のように思いますが、どのようにすればエディタが正常に機能するようになるのでしょうか?
0277デフォルトの名無しさん
2016/04/08(金) 17:27:19.92ID:pozyeBOI0278デフォルトの名無しさん
2016/04/08(金) 18:25:41.87ID:KJJF2NFcなぜ消すので?
0279デフォルトの名無しさん
2016/04/08(金) 21:22:05.88ID:Y8o95cYY解決しました。関係ないと思ってたCSSが影響してました。
0280デフォルトの名無しさん
2016/04/09(土) 01:00:37.29ID:pEHBzpIW[
{title:'hogehoge'},
{title:'fugafuga'},
{title:'piyopiyo'},
…
と続いていく配列で、それぞれのオブジェクトに通し番号(の要素)を一括で追加して、
[
{rank:1, title:'hogehoge'},
{rank:2, title:'fugafuga'},
{rank:3, title:'piyopiyo'},
…
0281デフォルトの名無しさん
2016/04/09(土) 01:01:21.06ID:pEHBzpIW実際に内包するオブジェクトは数百個もあるため単純なループではすぐにブラウザがフリーズしてしまうのですが、Web Workerを使うほどのものなのか疑問に思い、質問させていただきました。
Web Workerを使うのが最も良いのであればそのまま使うのですが、標準の関数やjQueryに用意されている、もしくは別の方法があるのであれば教えて頂きたいです。
0282デフォルトの名無しさん
2016/04/09(土) 01:13:09.00ID:tonuQmGl数百個ごときならどんな方法でもフリーズなんてしない。
本当にフリーズするのなら他の部分がいろいろと糞なだけ。
最近多いけどね、こういう初心者。
0283デフォルトの名無しさん
2016/04/09(土) 01:18:00.15ID:pEHBzpIWフリーズというのは数秒〜数十秒間画面が固まる、または応答なしのウィンドウが出るという状態を指していました。言葉不足ですみません…
処理時間が長いと画面に反映できない処理で使うため、画面が固まらない、かつ出来るだけ高速に行いたいのですが、最適な方法というものはあるのでしょうか?
0284デフォルトの名無しさん
2016/04/09(土) 01:36:40.47ID:tonuQmGlその動作はフリーズと称していい。
ただ、お前はJavaScriptの速度を勘違いしている。
JavaScriptはいわゆるスクリプト言語の中では最速だ。
その操作なら1msかからないはず。
それ以上かかるのなら、お前のプログラムがバグっているだけ。
で、俺が言いたいのは、初心者が「遅いんですけど」と言うときは大概バグでしかないということ。今回も。
そもそも数百個の配列なんて小さい方だ。(初心者的には大きいと感じるのは分かるけど)
だからそのレベルの初心者なのを自覚してちゃんとデバッグしろということ。
0285デフォルトの名無しさん
2016/04/09(土) 01:48:15.06ID:IbDbD1ux楽なのはArray#map、速度重視なら環境によるがforかwhileによるループ
ただ>>284の言うようにこのケースなら本来はほとんど一瞬で終わるはずだから
現在のやり方を見直したほうがいいと思う
0286デフォルトの名無しさん
2016/04/09(土) 04:37:41.51ID:r3WiJsdm.のコスト高いんだから
0287デフォルトの名無しさん
2016/04/09(土) 06:45:26.33ID:r6y5A1ZIお前は人間性に問題がある
0288デフォルトの名無しさん
2016/04/09(土) 07:17:21.95ID:tonuQmGlそんなんだからお前らはゆとりのままなんだよ
ところで、ゆとり的には俺のどの言い方が気に入らず、どう言ってほしかったんだ?
0289デフォルトの名無しさん
2016/04/09(土) 08:44:32.02ID:Q5Od8ZThwhile, Array#map の2択(おそらく前者が速い)だと思うが、titleのデータはどこから引っ張ってくる?
初めからrankを持つ静的データを定義するなり、サーバサイドで処理をさせるのは不可能?
2次元配列とか、フォーマットを変更することは出来ない?
0291デフォルトの名無しさん
2016/04/09(土) 09:14:08.74ID:H1is7YF7{title:'hogehoge'},
{title:'fugafuga'},
{title:'piyopiyo'},
…
[
{rank:1, title:manko[0]},
{rank:2, title:manko[1]},
{rank:3, title:manko[2]},
…
0292デフォルトの名無しさん
2016/04/09(土) 09:16:16.71ID:H1is7YF7[
{rank:1, title:manko[0].title},
{rank:2, title:manko[1].title},
{rank:3, title:manko[2].title},
…
0293デフォルトの名無しさん
2016/04/09(土) 11:14:18.39ID:3zJg02z1> ところで、ゆとり的には俺のどの言い方が気に入らず、どう言ってほしかったんだ?
ゆとりじゃない人に、
ゆとり呼ばわるすることをやめることだねw
そんなんだからいつも適当にあしらわれるんだよw
0294デフォルトの名無しさん
2016/04/09(土) 12:00:38.42ID:tonuQmGlゆとりじゃないと言い張るつもりなら、それ相当の書き込みをしろよ。
俺から見れば、>>287,293 は典型的ゆとりの反応だよ。
技術的観点は全く無く、感情論で不満を述べているだけ。嘘や言い逃れだけ上手い。
旧世代はこの場合にこの反応は無い。
お前の回答ってどれなのさ?
0295デフォルトの名無しさん
2016/04/09(土) 14:00:31.47ID:ovBUPKju「フリーズする原因がrankの挿入処理にある」と切り分けできてる?
rankの挿入処理を外して高速に動作するならわかるけど、そのコードを公開した方がクリティカルな回答が得られるかと
0296デフォルトの名無しさん
2016/04/09(土) 14:15:09.08ID:uqse8tS2Android端末でも画面がフリーズしなかった
既出だが、切り分けが出来てないんじゃないかね
0297デフォルトの名無しさん
2016/04/09(土) 17:35:50.57ID:2XO/HUgQねえねえおじいちゃん、ゆとりってなあに?
0298デフォルトの名無しさん
2016/04/09(土) 17:54:48.85ID:3zJg02z1俺からすれば、お前こそゆとりの反応に見えるんだがw
理由は「技術的観点は全く無く、感情論で不満を述べているだけ。嘘や言い逃れだけ上手い。」
0299デフォルトの名無しさん
2016/04/09(土) 18:34:16.31ID:CDqAKEr+前向きな考えはまるでないのだから放っておいてやれ
0300デフォルトの名無しさん
2016/04/09(土) 19:42:31.61ID:VRMolwpG大きな型付数値配列をメモリとして取って、
そこに読み書きするという形で全てを表現するといい
ようするにasm.jsちゃんだ
そこまでする必要が無いのであれば書きやすいどんな方法でも良いと言える
0301デフォルトの名無しさん
2016/04/09(土) 19:48:42.91ID:nMheNy6L答まで書いて理解して貰えなかったアホの事思い出すわ。
答まで書いて理解できなかった奴はまた答だけ聞きに来るんだろうな。
また聞きに来なくても、ああこれは似たやつだなって思えるように解説書いてるのに。
0302デフォルトの名無しさん
2016/04/09(土) 20:03:30.82ID:nX2uL7WFGUI部分に差異があるのはある程度仕方ないと思いますがインフラ関係ない部分に非互換性があるのは解せません
0303デフォルトの名無しさん
2016/04/09(土) 20:18:13.39ID:0Bzp/bzzそりゃ多少独自拡張があった時代もあるし、バージョンが違うのも当然あるが、
現在はコアの部分は一通り互換性取れてると言って良いと思うが
0304デフォルトの名無しさん
2016/04/09(土) 21:28:30.58ID:3zJg02z1> jsはなぜこんなにも互換性がないのでしょうか
JavaScriptは多くの会社が作ってる。
こんな言語は他にはない。
一体何と比べてるのか?
RubyとjRubyの互換性のなさよりは
jsの方がずっと高い互換性があるだろう。
0305デフォルトの名無しさん
2016/04/09(土) 22:39:27.82ID:tonuQmGlID:pEHBzpIW = ID:H1is7YF7
ID:r6y5A1ZI
ID:3zJg02z1
ID:2XO/HUgQ
ID:CDqAKEr+
IDがころころ変わっているので何人かは同一人物のはず
ゆとりはまず「正しい回答」をするところから始めろ。
文句だけ言うのではなくてね。
とはいえ、どうやらこのスレでは人間性に問題のない非ゆとり(自称)が回答してくれるらしい。
今後は知っていても様子を見ることにする。
あと、詭弁論法を使うのは止めろ。それは本当にお前らの為にならない。
結果的に足を引っ張り合っていることに気づけ。(長期的視点で)
てか、ゆとりには「ゆとり」ってこんなに効くんだな。正直驚いたよ。
それから、ゆとりはまずJavaScriptの前に日本語をやり直したほうがいい。
0306デフォルトの名無しさん
2016/04/09(土) 23:13:29.34ID:FC44HapC0307デフォルトの名無しさん
2016/04/09(土) 23:59:46.74ID:tonuQmGlこの状況で質問者が回収しに来ないってありえないだろ。
だから質問者はIDを変えて一生懸命俺を叩いている。
詭弁まで用いている。これはかなり悪質だ。
どうにも俺の回答、「明らかに見当違いだからさっさとデバッグしろ」が気に入らないらしい。
だとすると、普通に解答つけている奴はシロだ。
実際、回答している奴で俺に噛み付いてきている奴はいないだろ。
技術板でこういうおかしな荒れ方をするのはJavaScriptだけだ。
ほぼアフィカスだと思う。慣れてない奴は気をつけてくれ。
0308デフォルトの名無しさん
2016/04/10(日) 00:04:28.09ID:k5ZTlTQGその止まるというソースをまず出してみなよ
>>307
失せろゴミ
0309デフォルトの名無しさん
2016/04/10(日) 00:05:29.49ID:crqXdUCC0310デフォルトの名無しさん
2016/04/10(日) 00:06:05.67ID:aYwa2P4c自分を妄言の根拠の一つに入れるのは本当に勘弁して頂きたい
0311デフォルトの名無しさん
2016/04/10(日) 00:17:27.35ID:1TEKUIpj周りとの技術レベルの落差に気づかずに噛み合わず、一人でゆとりゆとり言ってるからすぐ分かる
0312デフォルトの名無しさん
2016/04/10(日) 00:17:27.56ID:ipc8Qm5p最近はC++押しもひどいで
0313デフォルトの名無しさん
2016/04/10(日) 00:56:56.99ID:jv2fHTjL多分その「C++押し」って奴とは違うと思うが、
C++相談室がとんでもないことになっていたことは知っている。
ただ、俺はあれはありだと思ってるんだよね。
連中、基本的に相手の「技術的」穴に対して、
「俺のほうが詳しい」っていうスタンスでやたら攻撃的なわけだけど、
匿名掲示板で技術論議なんだからあれも一つの形だよ。よくもまあそこまでとも思うけど。
ここはクレクレアフィカス君が自分の望んだ回答(デバッグ済みのコード)が出てこないときに
煽って叩いて相手をたきつけてコードを出させようとしているだけでしょ。
自分で学ぶ気なんてなさそうだし、それ以前にコードも書いてないんだと思うよ。
そもそも日常的に書いていたら速度の見当くらいつくだろうし。
だから今回は結局コードなんて出てこないに1000ペリカ。
そもそもあれだけのことでフリーズするようなコードを書くほうが難しい。
単にフリーズするだけなら簡単だけど、
10回のループならサクッと終わらないといけないんだからね。
ところでC++相談室見直してみたら、ワッチョイなんだが、ここも次からそうしないか?
てかあれ板限定ではなかったんだな。
0314デフォルトの名無しさん
2016/04/10(日) 01:24:54.95ID:k5ZTlTQGワッチョイ入れたらお前も自分がいかに馬鹿だったか自覚するだろうしな
0315デフォルトの名無しさん
2016/04/10(日) 03:52:05.46ID:aIGeP9fV> IDがころころ変わっているので何人かは同一人物のはず
全く違う。
そういう「思い込みで文句を言う」ってところが
ゆとりっぽいんだよな。おまえは。
0316デフォルトの名無しさん
2016/04/10(日) 04:21:27.070317デフォルトの名無しさん
2016/04/10(日) 04:24:37.47ID:TYHBJi84相手に誠実な会話を期待するならこちらも誠実であるべきだよ。
0318デフォルトの名無しさん
2016/04/10(日) 07:23:06.28ID:R8UfCYNBjavascriptの話ししろよ
いくらレスしても解決するわけもなくいつまでも煽りつづけるだけなんだろ
これだから質問系スレには質問したくないと思われてるんだよ
0319デフォルトの名無しさん
2016/04/10(日) 07:31:48.59ID:aIGeP9fV0320デフォルトの名無しさん
2016/04/10(日) 09:25:12.46ID:nxfYQog6元々、このスレの中身はない
0321デフォルトの名無しさん
2016/04/10(日) 09:35:29.99ID:x5LK7jRP+ JavaScript & jQuery 質問用スレッド vol.5 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1452081417/
0322デフォルトの名無しさん
2016/04/10(日) 17:14:19.24ID:x8V2YJyC0323デフォルトの名無しさん
2016/04/10(日) 22:29:15.24ID:gp229ozf頭が固い人が常駐していて話が合わないわ
0324デフォルトの名無しさん
2016/04/10(日) 22:31:31.50ID:2nCcxZVq0325デフォルトの名無しさん
2016/04/10(日) 22:47:05.98ID:jv2fHTjLID:k5ZTlTQG、ジョブチェンジ (= ID:pEHBzpIW = ID:H1is7YF7) (= ID:2XO/HUgQ)、アフィカス
ID:aIGeP9fV (= ID:3zJg02z1 = ID:r6y5A1ZI)、アフィカス
ID:1TEKUIpj
(ID:CDqAKEr+)
ゆとりには幼稚園児ほどの知能しかないから、お菓子さえくれれば大満足。
間違っていることでも、やさしく教えてくれさえすればいい。
そりゃ永遠とゆとりのままな訳だよ。ポストゆとりの出現で駆逐されることを願う。
同期XHRを教えるなんて明確な間違いだし、
今回も結局俺の「明らかに見当違いだからさっさとデバッグしろ」以上のものは無いだろ。
そりゃそうだ、これが正解なのだから。
まあ分かった、ゆとりにとっては間違った内容でも優しければ正解なんだよな。
歯磨きは面倒だからやらなくていい。
注射は痛いから打たなくていい。
勉強は面倒だからしなくていい。
非同期は難しいから書けなくていい。
デバッグは面倒だからやらなくていい。掲示板で煽ればデバッグ済みのコードが出てくる。
こんな価値観の奴がはびこれば国が滅ぶ。
出来れば自殺して欲しいね。それがお前らゆとりが出来る最大の貢献だよ。
0326デフォルトの名無しさん
2016/04/10(日) 22:53:20.51ID:SsCYllssお前は犯罪者になりかねないけど大丈夫?
0327デフォルトの名無しさん
2016/04/10(日) 22:56:16.39ID:6Gk/Jc3OHTMLCollectionやNodeListになぜ配列と同等のメソッドが定義されてないのか理解に苦しむ
それ以外は独自拡張満載、未だにキャプチャリングフェーズ未対応、handleEvent未対応、標準APIとの動作の違い...etc
気になる現象が多数あるんだよな
0328デフォルトの名無しさん
2016/04/11(月) 04:15:11.76ID:QsR4QMdK下手に付けるといろんな言語との不一致で余計分かりにくくなる。
まあ最近のquery()とかが返すElementsならArrayを継承してるし、
NodeListもiterableにされる感じだし、
それでなくともArray.from()使えばいいだけだからね。
0329デフォルトの名無しさん
2016/04/11(月) 09:45:48.71ID:ql5kNjs+0330デフォルトの名無しさん
2016/04/11(月) 10:09:39.80ID:nkOUJN5N0331デフォルトの名無しさん
2016/04/11(月) 11:21:43.35ID:ZXdKwmPgDOMとECMAScriptが別定義なのは理解してるが、「NodeListはStandard ECMA-262 6th Editionもしくは上位版のArrayを継承する」と定義して良かった気がしないでもない
それでなくとも、Map.prototype.forEachのようによく使うメソッドだけでも配列とは別に定義して欲しかった
query,Elementsの存在ははじめて知ったが、どの仕様定義?
使ってみたいんだが、該当仕様が見つからなかった
0332デフォルトの名無しさん
2016/04/11(月) 12:57:35.79ID:nmed7NL6車輪の再発明やオレオレライブラリが好きな人種にはすごくいい言語だ
0333デフォルトの名無しさん
2016/04/11(月) 14:15:42.99ID:ORuOCkHy0334デフォルトの名無しさん
2016/04/11(月) 15:08:25.05ID:/4tKcoWK0335デフォルトの名無しさん
2016/04/11(月) 16:41:03.10ID:jGs+gPDIgugure baka
0336デフォルトの名無しさん
2016/04/11(月) 16:50:55.08ID:ql5kNjs+いや、JavaScriptにセンスがないから
jQueryのようなライブラリが発生するんだが
0337デフォルトの名無しさん
2016/04/11(月) 17:11:13.08ID:ExJ+musA0338デフォルトの名無しさん
2016/04/11(月) 17:17:01.76ID:rdw4J+ev> jQueryって最初はこりゃ良いやって思うけどだんだん使わなくなるよね
そう?
AngularJSやReactは導入するのが大変で
ウェブアプリを作るならまだしも、
ウェブサイト、つまりHTMLにJavaScriptで軽く動きを
つけるぐらいならjQuery使うのが楽だけど。
0339デフォルトの名無しさん
2016/04/11(月) 18:05:55.51ID:3648G8MMJSでArrayやビルトインクラスが真に継承できるようになったのはES6から。
ES6以前、それも大昔に定義されたNodeListをいまさらそのように変えるのは良くない
メソッドが定義されているかで処理を分けるのはまだ表の方法とされているが、
それ以外の方法を使わなければならないのはダーティーさが増す。
よってArrayを継承する新たなメソッドが作られた。
作られたのだが、ブラウザ連中が何時までたっても実装に踏み込まず
(ビルトインサブクラスの仕組みをDOMなど外部の環境から適応出来るようにするのは
JSエンジンとDOM管理コード双方の大幅な改修が必要で手間)
Firefoxに至ってはJS内に限ってもまだ完全なサブクラス化を提供しやがらないので
この前ひとまずコミットアウトされた。
https://github.com/whatwg/dom/commit/10b6cf1ba02806220d5461a3bdb7939728b73635
0340デフォルトの名無しさん
2016/04/11(月) 18:15:36.42ID:oAFnNIvt0341デフォルトの名無しさん
2016/04/11(月) 18:20:46.53ID:ql5kNjs+無理
0342デフォルトの名無しさん
2016/04/11(月) 18:43:57.62ID:3648G8MM0343デフォルトの名無しさん
2016/04/11(月) 19:58:27.61ID:rf8a3oqmvar php = "<?php include(\"resist.php\") ?>"
new_select.innerHTML = php;
これだとPHPの記述がコメントになるんだけど
どうすればいいの
0344デフォルトの名無しさん
2016/04/11(月) 21:43:59.89ID:Dip4Tgpn0345デフォルトの名無しさん
2016/04/11(月) 21:51:32.95ID:/KA1eOwrinnerHTML ぐらい読めないのか?
0346デフォルトの名無しさん
2016/04/11(月) 22:58:33.39ID:rf8a3oqm<?php
include("resist.php");
?>
ボタンを押すことで上をhtmlに追加して
データベースから取得して表示するresist.phpを作動させるみたいなイメージで>>343を書いたんだけど
他に良いやり方が思い付かない
どなたか無知の僕にご教授を……
0347デフォルトの名無しさん
2016/04/11(月) 23:04:19.31ID:Dip4Tgpn発想が大分おかしいからまずPHPがどういう仕組で動いているのか調べた方がいいよ
続くようならPHPの質問スレで聞いてね
0348デフォルトの名無しさん
2016/04/11(月) 23:07:07.59ID:CbAg4Lxb0349デフォルトの名無しさん
2016/04/11(月) 23:09:08.63ID:rf8a3oqm勉強しなおします……
0350デフォルトの名無しさん
2016/04/11(月) 23:16:17.41ID:XNNO/Nee結局、>>328の「最近のquery()とかが返すElementsならArrayを継承してる」は実装も仕様もないものを指していたのか
0351デフォルトの名無しさん
2016/04/11(月) 23:55:11.50ID:ACs+zaq9勘違いしてほしくないが、重要なのはNodeListはイテラブルにするに留めて
Arrayを継承する別の何かを用意するというような方向性であり
それから得られる、今はArray.fromを使うと良い、
将来的には[...list]がDOMを含む大体のArrayLikeの展開に使える立ち位置になるんだなということに始まる
様々なこれからコードを書いていく、またライブラリやフレームワークを作っていく上での指標であって、
メソッドが仕様に載ってるか載っていないかは些細なこと
実際仕様は「Old-style」の名残が残ってるように、Elementsの案は無くなったわけではなく水面下に潜っただけ
あるないの1か0かではなく、各アイディアがどのような立ち位置かをメーリングリストやらを見て
大局的に把握しないと行けない
0352デフォルトの名無しさん
2016/04/12(火) 01:37:52.02ID:gsam7bTJコロコロ変わるからだめなんだよ。
jQuery等のライブラリを使えって言うのはそういうこと。
書き方は今と一緒でもバージョンが上がれば内部的に新しい書き方を使ってくれる。
0353デフォルトの名無しさん
2016/04/12(火) 06:57:04.68ID:64alg/wnそれは勿論そうだが、それより一歩先の話をすると
ライブラリを選ぶにも作るにも完全に気分の赴くままよりは、
これからの標準の流れに沿うものであるべきだと自分は思ってる
例えば2年くらい前ならPromiseが細かいメソッドはどうなるか分からないけど
振る舞いのタイプはもう分かっていたわけで、
それならjQueryのDeferredではなくA+系の方を使うかという選択ができる。
将来的には循環ができ皆で今の標準を作っていくExtensible Web構想が理想。
まあそれがしっかりするには東京オリンピックの頃までかかるだろうが、準備は今から必要。
0354デフォルトの名無しさん
2016/04/12(火) 09:27:07.71ID:8rWfNdXR現時点で何がベターなのかが重要
Firefoxみたいにどんどんと落ちぶれるよ
0355デフォルトの名無しさん
2016/04/12(火) 10:24:12.73ID:gsam7bTJ> それなら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+互換に変化した。
急に変化されることは難しいので、ゆっくり連続的に変化させていくことが重要。
言い換えると変化させていけるのであれば、すぐに切り捨てる必要もないんやで。
0356デフォルトの名無しさん
2016/04/12(火) 11:17:05.41ID:pmgBJfnyそういう意味では jQuery は適度にコードも読めて楽だった
0357デフォルトの名無しさん
2016/04/12(火) 11:18:03.72ID:9GLSOaWr策定段階で仕様が削除されるのは良くある事だし、別にいいさ
問題は「なぜ削除された仕様を>>328で持ち出したのか」
>>331にわざわざ仕様書を調べる時間をとらせて申し訳ないと思わないのか
0358デフォルトの名無しさん
2016/04/12(火) 11:46:23.82ID:FTpyWeJjその他の多くの人は最新仕様を追っても消耗するだけ
最新仕様を使うことは目的じゃない。
0359デフォルトの名無しさん
2016/04/12(火) 12:09:30.610360デフォルトの名無しさん
2016/04/12(火) 12:10:42.76ID:vv/iXFzr0361デフォルトの名無しさん
2016/04/12(火) 12:15:39.55ID:t+8zPvsS0362デフォルトの名無しさん
2016/04/12(火) 12:33:51.88ID:FTpyWeJj0363デフォルトの名無しさん
2016/04/12(火) 12:41:36.39ID:t+8zPvsS削除された仕様が存在するかのように説明したのは酷いとは思ったが
0364デフォルトの名無しさん
2016/04/12(火) 14:25:17.42ID:zrhvNbq0>>328の確認不足だな
https://github.com/whatwg/dom/commit/10b6cf1ba02806220d5461a3bdb7939728b73635
0365デフォルトの名無しさん
2016/04/12(火) 17:50:48.81ID:YDME1+9mそりゃここまでのやり取りの結果からすれば言葉足らずな部分もあったかもしれないけれど、
別に何かの証明をしているわけではないし、
1レスの返答内に少しも隙を作っちゃいけないってのは厳しすぎないか?
そもそもこちらは一方的に何か正解のような物を押し付けて1レスで完結させようとしてたわけでもなく、
それに関する話題で話しかけたかったわけ。
こちらが言った事に対して>>328が無視するかも知れないし、どこにどう食いついて来るかは分からない。
今回はElementsに食いついてくれて、それで仕様書を調べてくれて、見つからないという返事を返してくれた。
ああ、それなら自分がそれに関するより深い返答を返そうという流れは不誠実かい?
まあ正直に言うとElementsで誘った部分もあったけど、それは悪意ではなくテクニックとしてやっただけだし
実は削除されていた!なんて知らんかって急遽偉そうに取り繕った誤算もあったけど
結果的に話題を展開することができて満足してるよ。スマンな。
0366デフォルトの名無しさん
2016/04/12(火) 18:13:30.66ID:ac/sujZjJavaScriptについて語るスレッドではない
本当に仕様がないな
バカ
0367デフォルトの名無しさん
2016/04/12(火) 19:16:35.13ID:FTpyWeJj> (10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
これらはJavaScriptに関する意見だ。
何の問題もない。
0368デフォルトの名無しさん
2016/04/12(火) 19:43:27.82ID:lq30kg7p客観的に見て阿呆は君だよ
質問形式が決まっててキッチリ一問一答が行われるスレならまだしも
ただぼんやりと流れているのが人間である我々の現実だし
質問に対して議論してはいけないと決まってるわけでもないし
もし間違いであるなら>>327は荒らしも同然で、そういうレスを一切するなということになってしまう
0369デフォルトの名無しさん
2016/04/12(火) 21:43:49.65ID:mC0fEeYIあなたは>>339で「Arrayを継承する新たなメソッド」とqueryなのかそれ以外の何かなのか分からないぼかした表現で誤魔化した
>>351の返答でようやくquery,elementsの事を指していたのだろうと想像がついた
間違いを犯してはいけないとまでは思わないが、間違ったら偉そうに取り繕う前に素直に訂正するのは当然だろう
0370デフォルトの名無しさん
2016/04/12(火) 22:27:14.03ID:h5oBzMsUってのはごまかしたわけではなく文字抜け
「Arrayを継承するクラス(Elements)のインスタンスを返すメソッド」
という方がより言いたいことにあっている
すぐに気がつきはしたが真反対のことを書いたわけでもなく、補完してくれることに期待できるレベルだし、
先の理論で、別に隅々まで神経質に仕上げなくともこういう会話のやり取りで指摘されたら
付け加えてあげれば十分思い訂正はしなかった
自分が取り繕ったのは削除されたのを知ってた風に装ったことだが、
勘違いしてほしくないがごまかしたのとは違う、
自分が削除されてたのを知っていたかどうかは別に>>327と始めた話の本質には関係がない
つまり知っていたとしても自分の言いたいことに変化はないので、そこに関して間違ったわけではない
だから削除されていたと知っていたとして話を一段落付かした。
これはテクニックであり、自分なりの「誠実さ」であり、ごまかしではない。
そして削除されてたと知っていたかどうかなどの話の展開になったので
そこでは確かに「間違った」ので、真実を公開し、かるぅく謝罪した
なぜかるぅくかはもう言わなくても分かるよな
0371デフォルトの名無しさん
2016/04/12(火) 22:28:06.16ID:FTpyWeJj0372デフォルトの名無しさん
2016/04/12(火) 22:29:23.74ID:fnwI8WJcJavaScriptにはもうウンザリ
0373デフォルトの名無しさん
2016/04/12(火) 22:43:48.78ID:FTpyWeJj> そろそろ他の言語もブラウザに乗せようよ
それをやったのはマイクロソフトだけなんだよな。
VBScript。他のブラウザはそういうことをやらなかった。
まあ単純に他の言語をのせるわけにはいかないからね。
セキュリティ的に言語標準でできることを制限しなければいけない。
例えばどの言語にもあるようなファイルの読み書きをブラウザ版では
使えないようにしないといけない。
0374デフォルトの名無しさん
2016/04/13(水) 03:28:48.11技術的などうこうより互換性とかセキュリティとか、テストの方が100倍大変なんでしょうね
0375デフォルトの名無しさん
2016/04/13(水) 07:42:05.79ID:GgADnCL9Web APIは今やJS依りになってきてるし
それを解決しようとしたのがDartだったけど
結局JSを改良していくのと比べて然程メリットがないと分かった
そういうAPIと関係ない部分を他言語で作ってwasmに変換してっていう時代は
これから来る可能性はあるけど、メインはJSのままだろうね
0376デフォルトの名無しさん
2016/04/13(水) 08:16:28.15ID:DCkaewxPこれからの世代に申し訳ない
0377デフォルトの名無しさん
2016/04/13(水) 08:36:54.94ID:N3hRKpiT生産性が低いのはお前なんですよwww
0378デフォルトの名無しさん
2016/04/13(水) 08:47:17.62ID:OPbsDvyCタイプ数の違いや、改行の数の違いは
生産性には全く結びつかない。
言語によって生産性は変わらず
ライブラリによって生産性は変わる。
0379デフォルトの名無しさん
2016/04/13(水) 08:49:52.79ID:OPbsDvyC書き方が変わるだけで、生産性の向上には
つながることができなかった言語
0380デフォルトの名無しさん
2016/04/13(水) 09:56:55.91ID:DCkaewxPC#はJavaの3倍生産性が高い
0381デフォルトの名無しさん
2016/04/13(水) 10:11:47.50ID:N3hRKpiTそういう寝言は別に書かなくていいよ。
0382デフォルトの名無しさん
2016/04/13(水) 10:18:02.93ID:zGtnPLFLまあ.net FWはかなり良いのは確かだけど、逆に依存したらえらい目に合うと思うよ。
1989/01/08変更のファイルが残ってるような言語で開発してるけど、
1/10に役所に提出する書類に間に合わせるのに、FWの出荷待つとか無理だし、それが間に合わないと客が潰れるレベルの損失出るとかヤバいよ。
0383デフォルトの名無しさん
2016/04/13(水) 10:56:57.380384デフォルトの名無しさん
2016/04/13(水) 11:03:53.99ID:OPbsDvyC標準ライブラリの話はしていないよ。
標準じゃなくても良い。
ライブラリやフレームワークの有無で
生産性は大きく変わるが、言語の違いでは
生産性は殆ど変わらないって話。
0385デフォルトの名無しさん
2016/04/13(水) 11:25:41.89ID:/y2OU546その通りです。
自己満足の世界
0386デフォルトの名無しさん
2016/04/13(水) 12:48:23.40ID:u+HfQS9z0387デフォルトの名無しさん
2016/04/13(水) 12:51:05.79ID:u+HfQS9z0388デフォルトの名無しさん
2016/04/13(水) 13:00:30.95ID:OPbsDvyC十分なライブラリがそろっている状態では
ほとんど変わらん。
0389デフォルトの名無しさん
2016/04/13(水) 13:02:14.51ってコピペしてくるわけだから
またはググってコピペだから
あんまり変わらないかも
0390デフォルトの名無しさん
2016/04/13(水) 15:26:02.76ID:SBj4pmRf事前コンパイルみたいにnew RegExpで正規表現オブジェクトを作って使いまわしてコスト低減、ってあんまり見ないんだけど
これなんか問題あったりする?あるいは効果なかったりする?
0391デフォルトの名無しさん
2016/04/13(水) 15:42:37.87ID:DCkaewxPクライアントJavaScriptはUIとネットワークの世界の言語だからほぼ無意味だろうね
0392デフォルトの名無しさん
2016/04/13(水) 17:53:01.31ID:sN8Fln5rnew RegExpじゃなくて正規表現リテラルでも事前に作って使いまわしてコスト削減されるのは変わらないと思うけど、実装の最適化次第かな
var i = 0, reg = /^p/, string = 'pattern';
while (i++ < 50000) {
reg.test(string);
}
0393デフォルトの名無しさん
2016/04/13(水) 21:10:15.40ID:7l1cW0emまだまだこれからの分野
0394デフォルトの名無しさん
2016/04/13(水) 21:55:02.11ID:g3cnBes/オブジェクト内に含まれる正規表現が空オブジェクトに変換されてモヤッてしただけなんだけど。
Dateもいっそ"Date(〜)"でいいのではないかなと。
0395デフォルトの名無しさん
2016/04/13(水) 22:22:20.53ID:7l1cW0emそんなことを言ってたらキリがない
0396デフォルトの名無しさん
2016/04/13(水) 22:51:56.96ID:g3cnBes/0397デフォルトの名無しさん
2016/04/14(木) 14:42:53.97ID:J1EObEvzスマホサイトでボタンを押すと画面外からメニューが出るものを作っています
具体的にはメニューのdivのpositionのleftを100%にして画面右にはずしておいて
トップにfixedしたボタンをクリックでJSを動作させてleftを50%に書き換えてアニメーションさせてます
ただこの書き方だとコンテンツの途中、スクロールした状態でボタンを押すと
メニューが横から出てくると同時にコンテンツがトップまで戻ってしまいます
コンテンツのその場でメニューを出したいのですがこれは何が原因で上に戻ってしまうのでしょうか?
0398デフォルトの名無しさん
2016/04/14(木) 14:58:42.01ID:SPtT+geu0399デフォルトの名無しさん
2016/04/14(木) 15:02:45.14ID:JkBXQj6Pそれはこっちかな
(X)HTML/CSS/Dreamweaverの質問に優しく答えるスレ21©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1457595681/
0400デフォルトの名無しさん
2016/04/14(木) 15:14:54.24ID:bRZRCETqmath.piという関数が出てきますが、これはいったいどういう意味なんでしょうか?
始点は0で終点は360という書き方でも円はかけると思うのですが、これを使う意味が分かりません。
0401デフォルトの名無しさん
2016/04/14(木) 15:17:35.51ID:ettVKtfM0402デフォルトの名無しさん
2016/04/14(木) 15:28:29.14ID:J1EObEvzreturn false;書けば戻らなくなりました
JSでしたね
0403デフォルトの名無しさん
2016/04/14(木) 15:28:37.11ID:jsKKLFZFあなたは0と360と言う情報から円周上のxとyを全て求めて円を描くことが可能なのですか?
0404デフォルトの名無しさん
2016/04/14(木) 15:35:54.28ID:jrefqPbU角度の単位に一周を360度(直角が90度)になる馴染みのある単位系をなぜ使わないのか?
馬鹿なのか、死ぬのか、とまでは言わないが不便ではないか。という意味のご質問ですか?
角度の単位の代表的なものは、ご存知の一周を360度とするものです。
これは昔、一年が360日と考えられていたころに発明された60をベースにした単位(60秒=1分、60分=1時間)です。
他に、直角を100(単位はグラディアントとかグラードとか言う)とする、10進数こそ正義、という単位もあります。
プログラミング言語でよく使われる単位はラジアンで、半径に対する弧の長さの比を使って角度を表すものです。
これを使うと一周は円周率(pi)の2倍になります。
三角関数というもの(サイン、コサインなどなど)があり、は画像系のプログラミングでもよく使います。
で、この単位系(ラジアン)の便利なところは、三角関数の微積分で、100とか360のような係数が出たり消えたりしないことです。
0405デフォルトの名無しさん
2016/04/14(木) 15:36:41.24ID:bRZRCETq例えば、Math.PI*1.5としたら、円周率の1.5倍ということで半円ができるはずですが、
私の認識は間違ってるんでしょうか?
0406デフォルトの名無しさん
2016/04/14(木) 15:42:39.26ID:jrefqPbU扇型の中心角の話だとして、
半円(中心角180度)は、円周率の1倍、(piそのもの)になります。
円周率の1.5倍だと270度に相当し、円の3/4になります。
0407デフォルトの名無しさん
2016/04/14(木) 15:44:34.83ID:SppvdaVa普段使っている単位を使いたい気持ちはわかる
1.5が半円は間違えだ
0408デフォルトの名無しさん
2016/04/14(木) 16:22:09.26ID:MIl70kQk0409デフォルトの名無しさん
2016/04/14(木) 16:30:42.23ID:XpoLc8eO最近になってコンストラクタ関数にもプロパティを生やすことができるのを知り(クラス変数?)、
名前空間も綺麗に整うため、生成したインスタンスを格納する配列をコンストラクタ関数に
入れようと思っています。
このような設計は何か問題が無いか、アドバイスをください。
簡単なコードではやりたいこともでき、関数もオブジェクトならば問題無いような気がするのですが、
大きなコードを書いたらどこかで詰むんじゃないかと、不安なんです。
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();
0410デフォルトの名無しさん
2016/04/14(木) 17:00:55.17ID:bRZRCETq>>407
なるほど、円周率*1が180度を表すのですね。
ラジアンというものを調べてきます。
0411デフォルトの名無しさん
2016/04/14(木) 17:14:39.55ID:IJnJnibCないものの話をするのはやめてください
0412デフォルトの名無しさん
2016/04/14(木) 18:05:27.57ID:fy/Ek9QC何を持ってないと言ってるの?
0413デフォルトの名無しさん
2016/04/14(木) 18:32:10.48ID:h3KiwqePラジアンって中学の数学じゃなかったっけ、、、
いや数�Tだったか
0414デフォルトの名無しさん
2016/04/14(木) 18:33:19.79ID:MIl70kQk0415デフォルトの名無しさん
2016/04/14(木) 18:34:38.19ID:h3KiwqeP0416デフォルトの名無しさん
2016/04/14(木) 18:39:04.99ID:yvAyG8T7個人的な事情じゃなくて指導要領の問題
0417デフォルトの名無しさん
2016/04/14(木) 19:06:36.98ID:Y0ioTXAPおまえらどうせ授業なんて聞いてやしなかったんだろうし
0418デフォルトの名無しさん
2016/04/14(木) 19:44:33.43ID:uLJO6cEYES6で糖衣構文が出来た
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/class
0419デフォルトの名無しさん
2016/04/14(木) 19:44:44.31ID:yvAyG8T7特に弧度法は10年近く数IIから数学IIIに移されてた。文系だと数IIIはやらないしそうでなくてもなおざりにされることはよくある
さらに指導要領の遵守と教師の裁量と教師の趣味思考信条と授業の時間制限とまあ色々あるので…
もちろん忘れてるケースも多いだろうけど本当に教わってないケースも意外とあるから知ってる前提は中学レベルくらいに留めるのが無難かもね
0420デフォルトの名無しさん
2016/04/14(木) 20:10:23.25ID:IxiTROQl0421デフォルトの名無しさん
2016/04/14(木) 20:12:34.54ID:x1J0G4cD0422デフォルトの名無しさん
2016/04/14(木) 20:49:29.50ID:6J+p43e3関数のプロパティを使うのはいいが、設計思想に首を傾げるところが多い
・明らかにコンストラクタでないのに App (大文字から始まる名前)
・PersonにPersonのインスタンスを格納する不思議(Array.arrays = new Array をやってるようなもの)
0423デフォルトの名無しさん
2016/04/14(木) 21:09:35.74ID:XgnJW0xC中卒か?
0424デフォルトの名無しさん
2016/04/14(木) 21:13:45.57ID:VgjdRSr00425デフォルトの名無しさん
2016/04/14(木) 21:18:13.65ID:zHhupJkO0426デフォルトの名無しさん
2016/04/14(木) 21:35:42.71ID:/lnot8M5/ || ̄ ̄|| r( ゚ω゚ )ノ はーーーー!
|.....||__|| └‐、 レ´`ヽ
| ̄ ̄\三 / ̄ ̄ ̄/ノ´`
| | ( ./ /
ふゅーーーっ!
___ ∩ハ,,,,,ハ
/ || ̄ ̄|| _ ヽ( ゚ω゚ )∩ じょんッ!!
|.....|| ゚ω゚ || /`ヽJ ,‐┘
| ̄ ̄\三 / ̄ ̄ ̄/ ´`ヽ、_ ノ
| | ( ./ / `) )
___
∩/ || ̄ ̄||
_ ヽ|.....|| ゚ω゚ || 7
/`ヽJ ,‐┘/
´`ヽ、_ ノ
`) )
0427デフォルトの名無しさん
2016/04/15(金) 01:36:57.07ID:paMmofV4全く新しい概念・機能が入ってるから
0428デフォルトの名無しさん
2016/04/15(金) 02:06:22.81ID:goHZ67UEクラスAのインスタンスの集合を、クラスAに収納しているの?
そんなややこしいことをせず、単に普通のコンテナに入れればよいだけ。
そうしないと、便利なコンテナのメソッドが使えない
0429デフォルトの名無しさん
2016/04/15(金) 06:58:43.14ID:ypL17/E10430デフォルトの名無しさん
2016/04/15(金) 07:00:36.03ID:9VFl1+zB0431デフォルトの名無しさん
2016/04/15(金) 07:25:02.81ID:ypL17/E1読み方が違うんですね
0432デフォルトの名無しさん
2016/04/15(金) 07:32:43.52ID:RSig610Q0433デフォルトの名無しさん
2016/04/15(金) 12:14:37.10ID:nRwhaoVL察するに、インスタンスを生成したときに、自動的に管理されるようにしたい?
クラスで管理するのではなくて、管理するオブジェクトを別に作ればいいのでは?
クラスで管理すると、複数系統の管理ができない。
例えばPersonが人を表すと仮定して、地球の人と火星の人を別に管理しようとしても出来ないでしょ。
0434デフォルトの名無しさん
2016/04/15(金) 13:30:28.84ID:ypL17/E10435デフォルトの名無しさん
2016/04/15(金) 13:35:23.94ID:sM2G3xuL0436デフォルトの名無しさん
2016/04/15(金) 13:41:22.10ID:HeSDe1m10437デフォルトの名無しさん
2016/04/15(金) 13:48:20.94ID:cx5PLOSbデフォルトのJavaScriptではできない。
ブラウザのJavaScriptならDOMあたりを使ってできる。
>>435
なんで出来ると思ったの?
0438デフォルトの名無しさん
2016/04/15(金) 13:53:37.43ID:gXCAJEC6google.visualization.PieChart
0439デフォルトの名無しさん
2016/04/15(金) 14:02:06.59ID:q0YL4+kwデフォルトのjavascriptとは?
0440デフォルトの名無しさん
2016/04/15(金) 14:07:54.02ID:cx5PLOSbJavaScriptだろ
0441デフォルトの名無しさん
2016/04/15(金) 14:14:43.47ID:gq7S3zH10442デフォルトの名無しさん
2016/04/15(金) 14:22:28.54ID:Nh0RiUpt0443デフォルトの名無しさん
2016/04/15(金) 14:54:23.01ID:RMsg6cvq少しはてめえでがんばれや
0444デフォルトの名無しさん
2016/04/15(金) 15:02:42.56ID:wfLLyc7m内容のある回答で答えている人はみな穏やかですよ
>>443のような粗野で下卑た方とは違います
0445デフォルトの名無しさん
2016/04/15(金) 16:05:48.54ID:ypL17/E1http://edu.happy-kakurembo.com/entry/51
回答ありがとうございます。
このページの最後あたりのパックマンの絵は、arcに対してどのような指定をすればいいんでしょうか?
0446デフォルトの名無しさん
2016/04/15(金) 18:33:26.08ID:MBFKaPoJお前は本物の下種
0447デフォルトの名無しさん
2016/04/15(金) 20:56:44.07ID:CgWnf6JNあったっけ?
0448デフォルトの名無しさん
2016/04/15(金) 21:25:34.80ID:YAV9sBDZHomeObject、this未初期化、NewTargetとか。
0449デフォルトの名無しさん
2016/04/15(金) 23:12:26.62ID:goHZ67UEブラウザ上でのお絵描きは、HTML5のCanvas を使うのが一般的。
Canvasを調べたら?
0450デフォルトの名無しさん
2016/04/15(金) 23:38:52.79ID:cx5PLOSb0451デフォルトの名無しさん
2016/04/15(金) 23:42:08.84ID:XOash53W0452デフォルトの名無しさん
2016/04/16(土) 00:22:55.74ID:3KgdSRGk遅くなってすいません
助言に従ってインスタンスは管理用オブジェクト、あるいはコンテナに
入れてそっちでいろいろやろうと思います。
コンストラクタ以外の1文字目大文字は今までこっちの方がわかりやすいと思って
貫いていたのですが、Googleなどのスタイルガイドは小文字を推奨しているので
これも止めることにします。
独善的な部分が多くあったみたいで、どの指摘も参考になりました。
ありがとうございます。
0453デフォルトの名無しさん
2016/04/16(土) 02:48:50.71ID:MfNAX89g0454デフォルトの名無しさん
2016/04/16(土) 03:10:29.72ID:iaL+2UmD0455デフォルトの名無しさん
2016/04/16(土) 03:20:43.40ID:JpTn0h26ここでは話にならないと思ったら以下へ。
http://echo.2ch.net/test/read.cgi/tech/1449440793/
0456デフォルトの名無しさん
2016/04/16(土) 07:16:19.11ID:9WyxoOSEWeb制作板で批判が集中して「話にならん」といってプログラム板に逃げた人が立てたスレ
仕様に疎いようでまともなレスも「おまえはわかってない」で一蹴するような人だからお勧めしないな
0457デフォルトの名無しさん
2016/04/16(土) 08:31:06.50ID:SqNX4mZ2http://echo.2ch.net/test/read.cgi/tech/1449440793/65
この人いろんなスレで同じ事を聞いてない?
>>214で答えが出ているのに学習能力のない人だなー
0458デフォルトの名無しさん
2016/04/16(土) 13:50:59.55ID:JpTn0h26> Web制作板
以下を正しいと主張する連中ね
http://peace.2ch.net/test/read.cgi/hp/1444186237/579
http://peace.2ch.net/test/read.cgi/hp/1448293871/88
判断は各自でご自由に
経緯もその前後で分かるはず
そして他スレが流れ出すとWeb制作板には幼稚園児が沸くところも同じ
0459デフォルトの名無しさん
2016/04/16(土) 13:59:06.33ID:eCi0HCfm0460デフォルトの名無しさん
2016/04/16(土) 14:04:05.19ID:bDnIkDuW0461デフォルトの名無しさん
2016/04/16(土) 15:44:51.07ID:z5NEAFo4後者は俺のレスだがなんかおかしいか?
superを使える場面ならわざわざ展開しなくとも
せっかくだからsuper使ったほうが良いだろうと
至極当たり前なことを言ってるだけなんだが。
0462デフォルトの名無しさん
2016/04/16(土) 23:57:06.24ID:R1w7ejAd0463デフォルトの名無しさん
2016/04/17(日) 02:50:29.74ID:9ampxFQSあくまで性質・概念・思想で物を言う者と、実務で物を言う者の食い違い。
つまり、JSのクラスシステムについて、今どう認識できるかという話と、どう書くべきかという話がごっちゃになってる。
0464デフォルトの名無しさん
2016/04/20(水) 19:48:18.67ID:Lz+3WzGzphotoshop上でラスタライズされた状態の平行四辺形オブジェクトの
各頂点の座標を取得出来ないか質問したいのだけれど
jsxについての適当な質問スレッド教えてください。。。orz
0465デフォルトの名無しさん
2016/04/21(木) 22:25:52.33ID:po+YH9ZNfunction 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"で最初からチェックが入った状態の時もそれに対応する色にできないだろうか?
0466デフォルトの名無しさん
2016/04/21(木) 23:35:15.20ID:ReA7Xa9U0467デフォルトの名無しさん
2016/04/21(木) 23:50:48.23ID:X/7QzBzMinput.defaultChecked
0468デフォルトの名無しさん
2016/04/21(木) 23:52:12.99ID:po+YH9ZNCSSで先に定義しておいてJavaScriptで直すということでしょうか?
0469デフォルトの名無しさん
2016/04/21(木) 23:55:31.27ID:po+YH9ZNこれなら行けそうです。
ありがとうございます。
0470デフォルトの名無しさん
2016/04/22(金) 00:56:04.95ID:4mUicHSBinput[type="checkbox"]+#para { background-color:red; }
input[type="checkbox"]:checked+#para { background-color:green; }
0471デフォルトの名無しさん
2016/04/22(金) 01:59:59.83ID:DlNhB7g+http://caniuse.com/#feat=css-sel3
0472デフォルトの名無しさん
2016/04/22(金) 08:15:14.68ID:DIThdNQ9CSSに親でも殺されたのかと疑うレベル
0473デフォルトの名無しさん
2016/04/22(金) 08:27:03.15ID:2EQFG1P2毎日朝早くから夜遅くまでCSSと戦っていた
そう過労死で亡くなるその日まではね
0474デフォルトの名無しさん
2016/04/22(金) 08:50:00.81ID:o7fkiimI0475デフォルトの名無しさん
2016/04/22(金) 09:30:42.89ID:4UoNuspO毎日朝早くから夜遅くまで○○と戦っていた
そう過労死で亡くなるその日まではね
>>473
あなたの「好きな」ものを入れてくださいw
0476デフォルトの名無しさん
2016/04/22(金) 09:50:04.46ID:Wc1XF5nd┃ なまえをいれてください. ┃
┗━━━━━━━━━━━━┛
. ┏━━なまえ━━┓
. ┃ きちがい .┃
. ┃  ̄ ̄ ̄ ̄ .┃
┏━━━━━━━┻━━━━━━━━┓
┃あ い う え お は ひ ふ へ ほ .┃
┃か き く け .こ ま み む め も ┃
┃さ し す せ そ や ゆ .よ ┃
┃た ち つ て と ら .り る .れ ろ ┃
┃な に ぬ ね の .わ を ん ┃
┃っ .ゃ .ゅ ょ ゙ ゚ もどる.l>おわり.┃
┗━━━━━━━━━━━━━━━━┛
0477デフォルトの名無しさん
2016/04/22(金) 10:32:43.47ID:dFG2RycIできました。
0478デフォルトの名無しさん
2016/04/23(土) 03:21:55.64ID:EfkjAa5ECSSの:hoverとjQueryのon操作(マウスオーバーなど)って似たようで違うんですかね?
例えば、CSSで:hoverを適用していたのに、jQueryでon操作をすると、CSSのhoverが
無効になるということがありました。
0479デフォルトの名無しさん
2016/04/23(土) 08:19:57.77ID:16xisiTlCSSは詳細度の高いスタイルが優先されるからjQueryコードの処理内容を読むべし
https://triple-underscore.github.io/selectors4-ja.html#specificity-rules
0480デフォルトの名無しさん
2016/04/23(土) 15:09:16.70ID:EfkjAa5Eありがとうございます。読んでみましたが、特に解決しません・・。
ウィンドウサイズを可変したらメニューが変わるというのを作っているのですが、
なぜかclickが連続して2回実行されるんですよねぇ。
e.stopPropagation();を入れたりしてるんですが。
(clickして要素が開閉するやつです。toggle()を使っています)
もう少しソースがまとまったらまた質問させていただきます。
0481デフォルトの名無しさん
2016/04/23(土) 15:23:21.83ID:dqBuSyui0482デフォルトの名無しさん
2016/04/23(土) 17:29:56.78ID:EfkjAa5E$(document).on('click', '.toggle', function(e){
$("+ul", this).toggle();
e.stopPropagation(); // これは駄目
e.stopImmediatePropagation(); //これだと1回になる
});
こんな感じで行けました。
同じようにclickがなぜか2回実行される方は試してみてください。
0483デフォルトの名無しさん
2016/04/23(土) 21:29:49.04ID:hIFK+dKKFirefoxで、エレメントに紐付いてるイベント見て、2つ以上ついてたら、自分がonしている所か、jQueryをミニファイされてない方使ってそのonにブレークポイント置いて予想外のonしてないか確認すれば?
お前のソースの事はお前にしかわからんのだから。
0484デフォルトの名無しさん
2016/04/24(日) 10:16:17.66ID:C+cT95fe> e.stopImmediatePropagation(); //これだと1回になる
これで1回になるなら>>481の指摘通り、同じ要素に2回以上の click イベントを定義するコードを書いてる
対処療法で済ませず、コードを読み直してバグを修正した方が良い
0485デフォルトの名無しさん
2016/04/24(日) 10:30:55.32ID:H9KkWHxXいいじゃなか
ドヤ顔で自己満足してるんだから
0486デフォルトの名無しさん
2016/04/24(日) 12:31:48.88ID:yPs3jUb80487デフォルトの名無しさん
2016/04/24(日) 12:58:55.52ID:RNhCJQSk保守も自社がやると決まっているなら場当たり的な対応はしないけどね
0488482
2016/04/25(月) 02:48:54.21ID:MdSMyYZD短いソースで同じ状況を再現できたので記載します。
■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>
0489482
2016/04/25(月) 02:49:24.22ID:MdSMyYZDレスポンシブでブラウザウィンドウサイズの切り替えによって、
scriptの内容が変化する物を作っています。上記はスマホ用の部分のみ記載しています。
■不具合の手順
1:横480px以上の大きさ(例えば、1024*768)のウィンドウサイズでファイルを開く
2:ウィンドウサイズを480px以下にする
3:メインをクリックする→サブが表示される。またクリックすると閉じる(開閉動作)
4:ウィンドウサイズを480px以上にする
5:またウィンドウサイズを480px以下にする
6:もう一回、メインをクリックすると2回動作されてしまう(1回のクリックで、閉じて閉まる)
デバッグを見てもいまいち原因が理解できないのですが、
どこに問題があるか分かりますでしょうか?
0490デフォルトの名無しさん
2016/04/25(月) 03:30:02.07ID:Ps5j2E75なんなら泥臭く$(window).on('load , resize', function () { 直後にフラグ確認を仕込めば1回が保障されるんでないか
0491デフォルトの名無しさん
2016/04/25(月) 04:01:26.78ID:wavxOtJH> 直後にフラグ確認を仕込めば1回が保障されるんでないか
やめろw
フラグを使ったら負けだと思え。
一般的にイベントハンドラっていうのは
起動時(onload時)に全部つけてそのままにする。
その後は追加も削除もしないようにする。
0492デフォルトの名無しさん
2016/04/25(月) 04:05:25.79ID:wavxOtJH作ってるときは、かっこよく見えるんだよなぁw
slideToggle使うのやめれ。
CSSのメディアクエリーだけで完結させろ。
スライドするとかっこよく見えるんだろうが、
ウインドウのサイズ変更(縦横変更)なんて
通常は滅多にやらない。
作ってるときは、頻繁に変えるから
サイズを変えたときに、かっこよくしたいと思うのだろうが、
アニメーションなんかせずにぱっと変えたほうがいい。
0493デフォルトの名無しさん
2016/04/25(月) 10:11:52.96ID:8V9apdt+>>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以上にリサイズすると隠された要素を表示する手段がなくなるな
そう難しくないので回避する手段を自分で考えてくれ
0494493
2016/04/25(月) 10:26:03.11ID:8V9apdt+>>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要素でも使ったほうが良い
0495デフォルトの名無しさん
2016/04/25(月) 10:39:06.04ID:+thJ1HWA>>488見たらわかると思うけどねw
0496デフォルトの名無しさん
2016/04/25(月) 11:03:57.31ID:sTr8T40l質問者以外は皆分かってると思うよ
0497デフォルトの名無しさん
2016/04/25(月) 11:13:49.93ID:Vb9mflyV> ウインドウのサイズ変更(縦横変更)なんて
> 通常は滅多にやらない。
メディアクエリを使うならウインドウリサイズにも対応するので主張が矛盾してる
0498デフォルトの名無しさん
2016/04/25(月) 12:21:02.08ID:SIfnh3qZon複数回呼んでるじゃねえかw
onは、イベントハンドラを追加する、って関数だからな。
resize発生する度にイベントハンドラが増えていってるよ。
readyで、リサイズのイベントハンドラ足すんじゃなくて、
clickのイベントハンドラ足して
そのclickのハンドラの中で幅を判定してなんなりしろよ。
0499デフォルトの名無しさん
2016/04/25(月) 12:25:10.40ID:+thJ1HWA基本的なことを理解すべき
$(function() {
$('a.toggle').click(function() {
if ($(window).innerWidth() <= 480) {
$('div.sub').slideToggle(300);
}
return false;
});
});
0500デフォルトの名無しさん
2016/04/25(月) 12:36:19.71ID:+thJ1HWA$(function() {
$(window).resize(function(){
$('div.sub').hide();
});
$('a.toggle').click(function() {
if ($(window).innerWidth() <= 480) {
$('div.sub').slideToggle(300);
}
return false;
});
});
0501デフォルトの名無しさん
2016/04/25(月) 12:38:13.10ID:SIfnh3qZアホか。追加で良いんだよ。
匿名関数をその場で宣言してるなら別の関数だし、
同じ関数を複数回適用したい時に中でカウンタ持つはめになるじゃん。
設計の是非はおいておいて、範囲指定と、要素で絞ってonかけたいとかあるっしょ。
リスト全体にhoverでフォントサイズを1つ大きく、要素指定でもhoverでフォントサイズを1つ大きくってしとけば、わかりやすい法則性でフォントサイズ制御したりできんじゃん。
one使え。
0502デフォルトの名無しさん
2016/04/25(月) 14:24:44.11ID:kKT6Zxsuw
0503482
2016/04/25(月) 15:45:16.13ID:MdSMyYZD>>500のソースを見る限り、resizeの中にclick操作を入れたので、
複数回呼ばれる形になったんですかね?
この書き方だと何回も実行されませんでした。
あと、on使ってるのは、click(functionよりもon('click'って書き方にしろ
ってのをどこかで見たのでそうしていたのですが、
これも使いどころによって正しくないみたいですね。
皆さんのレスを参考にもう少し勉強してみます。
0504デフォルトの名無しさん
2016/04/25(月) 21:46:02.92ID:JSGjZ52Ronでもええやで
0505デフォルトの名無しさん
2016/04/25(月) 22:02:03.57ID:Ps5j2E75俺もえらそうなこと言えるようなたいした人間じゃないが
いったんjqueryから離れて基礎を学び直すのをマジおすすめ
0506デフォルトの名無しさん
2016/04/25(月) 23:02:39.46ID:D+WslEY/> メディアクエリを使うならウインドウリサイズにも対応するので主張が矛盾してる
リサイズっていうのは、サイズを変えることだ。
メディアクエリを使うのはページが表示された時の
サイズに応じた処理をするためだ。
初期のサイズであって、リサイズのためではない。
だから主張は矛盾していない。
ウインドウのリサイズなんてめったにしないだろ
0507デフォルトの名無しさん
2016/04/26(火) 00:25:14.44ID:YAhU7UJrそれはあなたがリサイズのユースケースを想定していないだけだ
Windowsタブレットではマルチウインドウが標準だし、そろそろAndroidにもマルチウインドウが登場する
ウインドウを全画面から2画面に分割した場合、メディアクエリが発動する
デスクトップOSでも同じ現象が起きる
0508デフォルトの名無しさん
2016/04/26(火) 09:15:49.75ID:ZTlcFrw80509デフォルトの名無しさん
2016/04/26(火) 11:14:53.22ID:v8OmTco70510デフォルトの名無しさん
2016/04/26(火) 11:19:29.88ID:x636ghAj解像度が違う別のディスプレイに移動させるときとかね
0511デフォルトの名無しさん
2016/04/26(火) 21:12:17.34ID:gA9V/byj4:3の頃はまず使わなかった(モニタが小さかったのも一因だろうが)
0512デフォルトの名無しさん
2016/04/26(火) 22:22:59.39ID:swW8g96rお前、一つのページを見ているときに
マルチウインドウで、サイズを変えるのか?
もう一回聞くぞ。
マルチウインドウを使うかどうかじゃなくて、
サイズを変えるのか?
小さい画面で使うのはサイズ変更じゃない。
サイズ変更した状態でページを開いているだけだ。
今話しているresizeイベントでスライドするという処理は
「ページを開いた後でサイズを変更する」という一連の動作を
した時にだけ発動するものだ。
しないだろお前?
0513デフォルトの名無しさん
2016/04/26(火) 22:24:34.54ID:swW8g96r> それはあなたがリサイズのユースケースを想定していないだけだ
リサイズのユースケースがないなんて話はしていない。
リサイズ時にアニメーションして欲しいとは思わないって言ってるだけだ。
作っている方は何度もリサイズして実験して満足がいくものをとか思ってるかもしれんが、
見る側からしたら、ウインドウのリサイズなんてまずしない。
0514デフォルトの名無しさん
2016/04/26(火) 22:27:14.76ID:sgDROvum>>507を読み直したら?
それとも、あなたは「ウインドウを全画面から2画面に分割」する動作をしないといいたいのかな
0515デフォルトの名無しさん
2016/04/26(火) 22:38:30.96ID:A0x7AT0jタブレットを使ったことがないんだろ
0516デフォルトの名無しさん
2016/04/26(火) 22:52:00.82ID:aeiDD/mAこんなの書いてる時点でどうにもならない
0517デフォルトの名無しさん
2016/04/26(火) 22:56:43.65ID:7RJVkgnK一体なんのこと言ってるの?
0518デフォルトの名無しさん
2016/04/26(火) 23:08:56.30ID:A0x7AT0j多分、>>493が指摘した問題への対策じゃないかな
slideToggle で隠れた要素がウインドウを481px以上にリサイズした時に表示する手段がなくなるので予め隠れた要素をアニメーションで表示させておく
と思ったけど、「リサイズなんてするわけねーだろ」の人だったね
ホント何なんだろ
0519デフォルトの名無しさん
2016/04/26(火) 23:15:10.53ID:m+yPBzkk日本語が不自由なだけな気がする
0520デフォルトの名無しさん
2016/04/26(火) 23:25:48.62ID:oZATkmH1> アホか。追加で良いんだよ。
「何が」追加で良いのか分からん
「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回繰り返した方がよっぽどいい
0521デフォルトの名無しさん
2016/04/26(火) 23:48:56.02ID:swW8g96r> それとも、あなたは「ウインドウを全画面から2画面に分割」する動作をしないといいたいのかな
そりゃすることぐらいあるだろう。
だが、2画面に分割したいと思った時に、
それがたまたま、お前のページである可能性は極めて少ない。
そんなマイナーなアクションのためにアニメーションを付けるのが
無駄だと言ってるの。
思い返してみ? 今日お前が2画面に分割した回数を。
0522デフォルトの名無しさん
2016/04/26(火) 23:52:46.47ID:7RJVkgnKwindow.innerWidthが480px以下ならメニュー?をslideToggle
ってことだよね?
リサイズ時にアニメーションって関係ないじゃんw
0523デフォルトの名無しさん
2016/04/26(火) 23:58:16.87ID:Bi6OX6KXブラウザとテキストエディタを2画面分割で開いてブラウザのページ内容をコピーしてテキストエディタにペーストするのは良くある事なんだけど
ブラウザを見ながらテキスト入力できるのはマルチウインドウの最大のメリットでしょ
「自分がしないから他の人もしないだろう」って思い込みは色々危険だよ
0524デフォルトの名無しさん
2016/04/27(水) 00:26:39.16ID:mjPz9hpH0525デフォルトの名無しさん
2016/04/27(水) 04:38:04.23ID:ymPBswSy同じページを表示したまま、縦横に何度も持ち帰るんか?
その時画面のアニメーションを見たいんか?
0526デフォルトの名無しさん
2016/04/27(水) 05:07:52.00ID:iS2uJpqo画面が狭いときはメニューをクリック/タップで展開/収納のトグル動作させたい、
ということと思われる
そうでなければ画面の幅に応じてイベントを追加する意味がない
0527デフォルトの名無しさん
2016/04/27(水) 08:44:26.76ID:tEogpAYP要件はどうでも良くて、api仕様はそれで良いと言ってるんだよ。
その後、once使えと言ってるじゃないか。
0528デフォルトの名無しさん
2016/04/27(水) 09:22:32.44ID:9uyPVyt/メニューというか特定の要素をclickした場合
画面サイズで何だかの振り分けをしたいんじゃないの?
何れにしてもリサイズをアニメーションって意味不明
単なる持論だよ
0529デフォルトの名無しさん
2016/04/27(水) 11:46:48.06ID:VeDPJalkAPI仕様がそれで良い理由が明確でない
しかも、once()で解決しないだろ
0530デフォルトの名無しさん
2016/04/27(水) 12:04:54.36ID:x1DYS/Njonce()のAPIが見つからないけど、one()の事?
one()を使ったらクリックして閉じた後にウインドウリサイズしないと開けなくなったんだけど
https://jsfiddle.net/38wrnxu7/
0531デフォルトの名無しさん
2016/04/27(水) 12:21:41.01ID:PwdWdDII0532デフォルトの名無しさん
2016/04/27(水) 13:01:52.49ID:x1DYS/Njその辺りは>>493で全て答えが出てるから
>>499-500がドヤ顔で解説しているのも既出だし、何がしたいんだか
0533デフォルトの名無しさん
2016/04/27(水) 15:19:37.97ID:BFKJgt+Jオナニーにしか使わないからresizeは必要ない派には、何を言っても理解できないよ。
0534デフォルトの名無しさん
2016/04/29(金) 10:29:51.62ID:Zpx1WpIMそんなこと言ってるやついないけど、
むしろ、自分の都合のいいように
書き換えるお前には理解できないだろうよw
0535デフォルトの名無しさん
2016/04/29(金) 11:58:35.72ID:2UzU1Fa0http://i.imgur.com/8I0inTZ.jpg
指定した商品のキーワードとカラーが現れると自動クリックするメソッドがurlが乱数対策で書き換えられたので使えなくなりました。
他の要素から検索する場合、どう書き直せばいいのでしょうか?
0536デフォルトの名無しさん
2016/04/29(金) 12:28:51.15ID:Z5nc+wFxそのソースだけでは理解不能だと思う
window.location で検索して学習するれば解決するじゃないかな?
0537デフォルトの名無しさん
2016/04/29(金) 14:50:02.78ID:FtHCzag5または、Selenium WebDriver を使って、プログラムするとか
Seleniumデザインパターン&ベストプラクティス、2015
OSSのブラウザ自動テストツール、Selenium WebDriver を使って、
Rubyでテストを書いた本
0538デフォルトの名無しさん
2016/04/29(金) 15:12:10.79ID:npmLXJBi自動でクリックすると何の役に立つの?
0539デフォルトの名無しさん
2016/04/29(金) 15:13:47.73ID:JN3HPUnt0540デフォルトの名無しさん
2016/04/30(土) 14:09:13.13ID:uVz81x78みたいな、BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al
ちなみにオイラはCovenant(純粋P2Pのファイル共有ソフト)の完成が待ち遠しいプログラミングできないアスペルガーw
0541デフォルトの名無しさん
2016/04/30(土) 19:08:39.84ID:HhSXq6WPいまどきIDEはねーよ
0542デフォルトの名無しさん
2016/05/01(日) 16:53:27.97ID:sgiYXWIXコード書くにはどのIDE使うのが標準ですか?
いまはわざわざメモ帳使ってます。(まあそれほど本格的にはやってない段階ですが、しかし将来は本格的にする予定なので。)
JavaならEclopse、
VisualC#やVisualBasicならVisualStudio、
AndroidならAndroidStudio
がそれぞれ標準みたいになってるじゃないですか。
JavaScriptはそのへんどうなってますか?
0543デフォルトの名無しさん
2016/05/01(日) 17:24:58.87ID:avBwiD/QAtomとか
0544デフォルトの名無しさん
2016/05/01(日) 17:42:02.88ID:sgiYXWIXありがとうございます
Atom試してみます
ところでAtomは他言語も標準的IDEになってる言語はありますか?
あまりマスターすべきIDEの数を増やしたくないのでJavaScriptをEclipseやVisualStudioでもできるようならそのほうが理想的なのですが。
0545デフォルトの名無しさん
2016/05/01(日) 18:12:07.05ID:t8gRHm+aJavaScriptに標準IDEはありません
主にシンタックスのカラーリングや補完機能あればいいと思う
自分の好みでいいんですよ
0546デフォルトの名無しさん
2016/05/01(日) 19:03:40.53ID:6DCl83u4つまらん嘘つくなよ
0547デフォルトの名無しさん
2016/05/01(日) 19:54:17.33ID:IEJxz53a今の所VSが強い印象だけど対抗馬いるか?
0548デフォルトの名無しさん
2016/05/02(月) 01:55:39.31ID:T+iaWOtl本格的にやるなら、サーバーでの編集用にVimかEmacsを覚えるというのも手だが、言語の練習と同時には覚えるの辛いだろうな・・・
0549デフォルトの名無しさん
2016/05/02(月) 14:30:45.71ID:5BTmw4JC0550デフォルトの名無しさん
2016/05/02(月) 19:09:21.56ID:Fa0O9xkCJavaScript で、
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」が発生してしまうので困っています。
ご教示お願いいたします。
0551デフォルトの名無しさん
2016/05/02(月) 19:22:45.64ID:vIuKkp7F0552デフォルトの名無しさん
2016/05/02(月) 19:50:52.07ID:86Jgi2PX0553デフォルトの名無しさん
2016/05/02(月) 21:22:42.79ID:nFATBe9Uif (Price == '1080')
0554デフォルトの名無しさん
2016/05/02(月) 21:47:19.59ID:58IGANjTなくして数値型で判定した方が確実だと思うけど
0555550
2016/05/02(月) 21:56:37.86ID:Fa0O9xkCありがとうございます。
教えていただいた方法で試してみたところ、エラーは発生しませんでした。解決です。
if文で配列全体の存在を確認する分にはエラーは発生しないけど、
配列内の要素の存在を確認した場合、その配列自体が存在しないとエラーになっちゃうようですね。
>>553-554
色々な解放があるようですね。
ありがとうございます。
0556デフォルトの名無しさん
2016/05/03(火) 04:50:38.58ID:1U/0N7SV>if ( Price[2] == 1080) { 【←エラーが発生する行】
普通、1行目の後に、いきなり2行目を書かない。
論理的につながっていない
1行目の後には、少なくとも1つでも、一致したかどうかの判断が必要
そして一致していれば、2行目の処理へ進む。
一致するものが無ければ、2行目へ進まない
0557デフォルトの名無しさん
2016/05/03(火) 08:47:51.21ID:65DdW2hVif (num == '1080')
0558デフォルトの名無しさん
2016/05/03(火) 15:41:32.16ID:6WBArbcgvar price = +( data.match( /^(Price|Kakaku)(\d+)/ ) || [] )[2]
if ( price == 1080) {
判定をするのはJSらしくない
暗黙の型変換を利用し値を早い段階で確定させていくのが正しい動的型付けの手法
0559デフォルトの名無しさん
2016/05/03(火) 16:12:55.52ID:64Up/wndreplace(/^.*(Price|Kakaku)([0-9.]+).*$/g,'\\1')-0
かなんかして、1080と比較したら確実じゃないの?
0560デフォルトの名無しさん
2016/05/03(火) 16:13:50.36ID:64Up/wnd0561デフォルトの名無しさん
2016/05/03(火) 17:09:50.29ID:2ApUtfSZと、全体は一致するようにするとか
replaceするやつは '1080' でもマッチしてしまいそう
0562デフォルトの名無しさん
2016/05/03(火) 17:14:00.54ID:65DdW2hV存在する、しないで変わってくるね
0563デフォルトの名無しさん
2016/05/03(火) 17:29:30.46ID:IJoN7jmcそこに書いてあるJavaScriptのコードを少しだけ改変/追加したいのですが
簡単にコードエディットする方法はありますか?
インテリセンスだけがついてあれば充分です。
現状はメモ帳にコードを貼り付けてやってるのでものすごく効率が悪い。
ちなみにJavaScriptはまだかなりの初心者です。
0564デフォルトの名無しさん
2016/05/03(火) 17:49:40.27ID:YTE1L/l30565デフォルトの名無しさん
2016/05/03(火) 17:54:18.04ID:64Up/wnd自己レスで間違えてた。
\\2に置換すると、Priceに続く数字だけ残る。
0566デフォルトの名無しさん
2016/05/03(火) 17:55:12.59ID:G4OBLQ5Iメモ帳すらいらん
0567デフォルトの名無しさん
2016/05/03(火) 18:55:05.50ID:IJoN7jmcあまりわたしを怒らせないほうがいいぞ。
わたしは真剣に聞いているのだからな。
0568デフォルトの名無しさん
2016/05/03(火) 19:00:51.75ID:mbDp1eZaてめえにゃもったいないくらいのサポートしてくれるっての
0569デフォルトの名無しさん
2016/05/03(火) 19:01:38.06ID:IJoN7jmcたとえばどれでしょうか?
0570デフォルトの名無しさん
2016/05/03(火) 19:43:50.15ID:G9XEXQGeBitTorrent(Covenant)が活発な情報交換・交流コミュニティでオープンソース開発されています(プログラマー募集中)
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise氏)がそういう人と話したいそうなので、よろしければツイートお願いします<(_ _)>
https://twitter.com/Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできない情報発信好きアスペルガーw
The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
8
0571デフォルトの名無しさん
2016/05/04(水) 06:10:29.02ID:0hExvDHPhttps://atom.io/
https://www.sublimetext.com/
0572デフォルトの名無しさん
2016/05/04(水) 09:13:01.47ID:bRkFYhVsMSDNの、IE11・F12 開発者ツールの使い方を参照
0573デフォルトの名無しさん
2016/05/05(木) 10:19:03.70ID:ydt/wr9U真面目に聞いてる人が放置するのか
0574デフォルトの名無しさん
2016/05/05(木) 10:44:15.30ID:fknk/t2B他のエディタはロクなインテリセンスのないゴミばかりだよ
0575デフォルトの名無しさん
2016/05/05(木) 11:52:59.62ID:SMfsRko80576デフォルトの名無しさん
2016/05/05(木) 11:57:07.40ID:F9EaZa1N0577デフォルトの名無しさん
2016/05/06(金) 00:24:25.24ID:4boKzuh/4200円するけどそれだけの価値はある
0578デフォルトの名無しさん
2016/05/06(金) 08:25:56.04ID:wkAp2vOU秀丸は世界的でなくDTDを採用していたりと外も中も古臭く拡張を作りづらく
JSのように日進月歩で絶賛進化中の言語情勢に全くついてこれていない
0579デフォルトの名無しさん
2016/05/06(金) 10:19:44.07ID:XipIUMCbインテリセンスもあるし
0580デフォルトの名無しさん
2016/05/06(金) 10:22:17.38ID:SIBOz9L4少し前はNotepad++だったけどそれも過去になった
今のところAtomがいいけど
ちょっと重いんでVS Codeに期待
0581デフォルトの名無しさん
2016/05/06(金) 12:30:06.56ID:QA9WXQLh0582デフォルトの名無しさん
2016/05/06(金) 13:06:16.77ID:b+5YqGKq0583デフォルトの名無しさん
2016/05/06(金) 14:17:41.74ID:G4Kxj38O0584デフォルトの名無しさん
2016/05/06(金) 19:01:56.63ID:tQEExFw/それ以上はTypeScript使わないかぎりしんどい気がする
0585デフォルトの名無しさん
2016/05/06(金) 21:49:21.53ID:qd0GNKqW0586デフォルトの名無しさん
2016/05/06(金) 22:08:01.20ID:zDXbuI6Zその他のaltJSは殆どが死滅するはず。JavaScriptの上位互換といえるような
TypeScriptだけがMSの興味を引いている限り生き残る。
COBOLが生き残ってることからもわかるように、
特定の分野で多く使われた言語は長く生き残るものだよ。
言語仕様の良し悪しじゃない。
死滅した言語っていうのはVBやDelphiだけど、
これは開発元が開発をやめたか大幅に縮小したため。
逆に言えば開発元が開発をやめない限り使い続けられる。
そしてJavaScriptの開発元はどこか?MS、Google、Mozilla、他
このように複数あるから開発を一斉にやめるってことがまず考えられない。
加えて改良が進められているから辞めようって声も上がらない。
辞めるぐらいなら改良すればいいわけだからね。
0587デフォルトの名無しさん
2016/05/06(金) 22:49:31.18ID:HS1krX3+Delphiとか当時は革新的だったよなぁC++Builderとかとともにお世話になった。
その中の人が今はc#やtypeScript作ってるんだよね。
0588デフォルトの名無しさん
2016/05/07(土) 00:27:39.35ID:H9AjK5sVvar 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]);
}
});
0589デフォルトの名無しさん
2016/05/07(土) 01:25:28.41ID:R3j+TLGo0590デフォルトの名無しさん
2016/05/07(土) 04:30:24.07ID:S68KOTjsこのトークンはどういう扱いになっているの?
当方、javasctipt初心者です。
0591デフォルトの名無しさん
2016/05/07(土) 04:45:54.23ID:S68KOTjs自己完結しました。
0592デフォルトの名無しさん
2016/05/07(土) 08:19:51.56ID:nYaS7NzXjQueryに限らず、外部スクリプト化したいなら<script>を書かなければならない
onclick属性やonload属性等のイベントハンドラ属性だけで完結できるならこの限りではない
0593デフォルトの名無しさん
2016/05/07(土) 08:44:10.25ID:nYaS7NzX画像とファイル名は同時に表示出来ているのでは?
それよりも document.body を上書きしていたり、jQueryを使っているにも関わらずfileReader[i].onload のような素のJavaScriptコードが見られたり、HTML出力でfilesと同じ順序を保証していない事が気になる
0594デフォルトの名無しさん
2016/05/07(土) 11:48:23.84ID:98qiMegfJavaScriptのこういう所は何とかして欲しいよ
コードのモジュール化、再利用がめんどくさすぎる
未だにブラウザ間で最低限の互換性すら取れてないし
IT業界の最前線で使われている言語とは思えない
0595デフォルトの名無しさん
2016/05/07(土) 12:11:46.43ID:7m+gJQ3f0596デフォルトの名無しさん
2016/05/07(土) 12:22:16.57ID://iuahhd0597デフォルトの名無しさん
2016/05/07(土) 12:40:50.09ID:98qiMegfJS以外の言語触った事無いのか?
0598デフォルトの名無しさん
2016/05/07(土) 12:47:05.73ID:bc2M0je5ここよりお医者に行くべきだよ
0599デフォルトの名無しさん
2016/05/07(土) 12:58:07.39ID:H9AjK5sVコードに関しては、非同期部分の問題となってる部分をチェックしていただける方がおられた場合に簡単にテストできるよう、
ポイントに絞ったものとなってますので、最終的にはファイル名ソートもしくは入力順に表示するつもりですし、もちろんdocument.bodyの上書きなど行うこともありません
ですので問題定義以外の部分でのコードの粗はご了承ください
さて、このコード、確かに画像と名前は同時に表示されますが、「filesと同じ順序を保証していない」とご理解いただけてるように、
nameはfiles順に代入されていきますが、dataは読み込み完了時に代入され、書き出しもそのタイミングです
1:サイズ大
2:サイズ中
3:サイズ小
と、あった場合、nameは1,2,3、dataは概ね小、中、大と代入されていき、対になって表示されることは保障されていません
0600デフォルトの名無しさん
2016/05/07(土) 12:59:41.90ID:98qiMegf可哀想なやつだな
まあ生き方は人それぞれか
0601デフォルトの名無しさん
2016/05/07(土) 13:07:53.42ID:HCFqFuTE多分、あなたがいっているJavaScriptはクライアントサイドスクリプトの事だろうが、クライアント側の環境に依存するから簡単に後方互換性を捨てることが出来ない
Node.jsなら十分可能だから
クライアントサイドスクリプトは製作側の環境だけ整えても仕方ないのだから言語の問題というよりもユーザのリテラシーや古い環境に固執すユーザの考え方の問題
ES6でモジュール管理機能が追加されているから古いブラウザを切り捨てる気があるなら可能
現状ではAltJSを使うなり、Babelでトランスコンパイルするのが妥協点
0602デフォルトの名無しさん
2016/05/07(土) 13:18:35.30ID:HCFqFuTEonload 時に出力結果を配列 or DocumentFragment にキャッシュしておき、その要素数が files.length と一致したら document.body.appendChild してみては?
0603デフォルトの名無しさん
2016/05/07(土) 15:09:05.53ID:NRmKgF8pHTML5+でパッケージングの案とか出てたけど立ち消えになったしな
0604デフォルトの名無しさん
2016/05/07(土) 16:24:25.14ID:rW+w2i1Z0605デフォルトの名無しさん
2016/05/07(土) 17:31:40.76ID:q+dYax/I0606デフォルトの名無しさん
2016/05/07(土) 17:50:30.87ID:7m+gJQ3fと
a === void 0 && ~~
こういうのってどっちがいいとかある?
0607デフォルトの名無しさん
2016/05/07(土) 17:54:47.43ID:kizhSvplおまえセンスねえからやめたほうがいい
0608デフォルトの名無しさん
2016/05/07(土) 18:14:28.17ID:v072DMKUおうJScriptが主流になってたな
0609デフォルトの名無しさん
2016/05/07(土) 19:18:58.60ID:PsySjkPgそんなことしてたらここまでブラウザは進化しなかった
0610デフォルトの名無しさん
2016/05/07(土) 19:25:18.36ID:rW+w2i1Z0611デフォルトの名無しさん
2016/05/07(土) 19:26:31.11ID:JbOpDSyaブラウザ間の最低限の互換性は取れてるような。
caniuseでも通してみりゃわかるだろうけど。
モジュール化も、module.exportsして今のところはwebpackか何か通しておけばいいんでないの?
0612デフォルトの名無しさん
2016/05/07(土) 20:07:07.26ID:rW+w2i1Z当たり前のようにサポートされてないって事がweb業界のリーダー達の怠慢を表してる
Microsoftがリーダーになっていればこうはならなかった
0613デフォルトの名無しさん
2016/05/07(土) 21:10:40.66ID:kFFwjeQZSQLやフレームワークでデータを引っ張ってきてphpでhtmlを生成し、htmlにcssで装飾し、jsで動きをつけて・・・と思っていたのですが、
IE8や下手するとIE6の対応、IEはJscriptというjavascriptと少し違う言語…などの変な多様性に悩んでいます
いくつかサイトを作ってみましたが、IE6で動かなかったり、携帯ブラウザで表示が崩れたりして大変困っています。
困っているというか、どうしていいかわかりません。
ブラウザ間の違い等、どこまでサポートしているかなどの基準はあるのでしょうか?
0614デフォルトの名無しさん
2016/05/07(土) 21:14:56.21ID:znoXDAwn文面を見るかぎりWebプログラマーには向いていないと思うので別の道を探してください
0615デフォルトの名無しさん
2016/05/07(土) 21:20:22.07ID:rZxk5OUWCSS の @import のように始めの頃だけ重宝されていずれ使われなくなる気がする
moduleが必要だとは思うが、>>611のいうようにwebpackでbuildすれば最適なパフォーマンスが得られるわけでブラウザ側で実装する必要性を感じない
0616デフォルトの名無しさん
2016/05/07(土) 21:38:26.64ID:rZxk5OUW今時、IE8- は古すぎると思うけど、顧客の要求仕様か特殊な案件?
各種フレームワークのサポートブラウザを確認
互換性情報はWebにあふれているから活用しようか
http://caniuse.com/
http://www.quirksmode.org/compatibility.html
http://kangax.github.io/compat-table/es5/
https://msdn.microsoft.com/ja-jp/library/cc351024.aspx
https://developer.mozilla.org/ja/docs/Web
0617デフォルトの名無しさん
2016/05/08(日) 01:45:49.69ID:a6za2jQ4そもそも複数のリソースファイルは、5個ずつパラレル読み込みで、
複数あるサーバーのどこから読み込んでいるのかすら、わからない。
どのファイルが先に読み込まれるかも、当然わからない
F12開発者ツールで、リソースの読み込みタイミングを見てみ
onChange は、要点に関係ないだろ
>new Array();
[]; 空配列リテラルを使う
>>613
IE6なんて、対応しないだろ
CSSもツールで、関数(ミックスイン)で書く。
Sass & Compass 徹底入門、2014
他に、Bourbon にも、ミックスイン集がある
0618デフォルトの名無しさん
2016/05/08(日) 02:14:54.64ID:OocjjMXM> 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);
0619デフォルトの名無しさん
2016/05/08(日) 02:15:33.52ID:OocjjMXM0620デフォルトの名無しさん
2016/05/08(日) 11:04:13.34ID:J2x5cRTwbodyへの挿入処理がない
多分、>>602の通りの実装にするんだろうけど
0621デフォルトの名無しさん
2016/05/08(日) 13:29:51.82ID:P/nJjC5XID:OocjjMXM 様のCallback使う手法でうまくいきました
レスして頂いた皆様、有難う御座いました
0622デフォルトの名無しさん
2016/05/09(月) 08:47:40.90ID:W7sFbKKM下のような内容でボックスのどこでもクリックやタッチしたら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>
0623デフォルトの名無しさん
2016/05/09(月) 08:58:44.04ID:dyobdVC7hasClassやclassListで分岐処理して
event.target.parentNode.id
0624デフォルトの名無しさん
2016/05/09(月) 16:48:27.63ID:wbQMz1Tbevent.currentTarget.id
0625デフォルトの名無しさん
2016/05/09(月) 21:03:12.68ID:o7YvYv9W最近は無くて困る事ってそんなにないよね
0626デフォルトの名無しさん
2016/05/10(火) 00:01:34.91ID:yLtf5w/xjQueryは便利だから使うんだよ。
jQuery使ったほうが便利なのに、使わなくても不便だけど頑張れる。
だから使わない。なんて考える人はおかしな人だよ。
0627デフォルトの名無しさん
2016/05/10(火) 00:04:42.17ID:yLtf5w/x$(".box").click(function(){
var boxId = this.id;
});
これでいけたよ
0628デフォルトの名無しさん
2016/05/10(火) 08:52:13.41ID:4ts0a3G7クロスブラウザ的にはjQueryがなくて困るケースは減ったね
DOMを学習してクロスブラウザなコードを書いた事がある人にとっては今までの自分の資産(コード)があるし、jQueryはなくても困らないと思う
今までクロスブラウザに苦労してjQueryの便利さに触れた人がブラウザの対応度を調べる手間を惜しんで惰性で使ってるんじゃないかな
0629デフォルトの名無しさん
2016/05/10(火) 10:27:37.59ID:AYSgFkexjQueryは確かに便利なとこもあるだろうが、
俺にとっては「標準でない」という時点でとても不便なんだけどな
0630デフォルトの名無しさん
2016/05/10(火) 11:19:26.96ID:F0daG/eG標準でないものを全く使わずに、何万行もコード書くとか疲れないか?
0631デフォルトの名無しさん
2016/05/10(火) 11:27:59.90ID:idlWyZE52. DOM操作面倒になってきた…
3. 簡単に書けるラッパー用意したぜ!
4. クソオレオレDOM APIの歴史が銀河にまた1ページ
0632デフォルトの名無しさん
2016/05/10(火) 12:00:17.53ID:4ts0a3G7DOMが面倒と思うのは結構な確率で思い込みだと思う
自分なりのコーディングの型が身につけば snippet で楽になる
querySelectorAllが出来てからは大分楽になった
iteratorが出来てからは更に楽だね
0633デフォルトの名無しさん
2016/05/10(火) 12:08:57.36ID:pM7kjGoWhttp://echo.2ch.net/test/read.cgi/hp/1456250334/839-960
0634デフォルトの名無しさん
2016/05/10(火) 13:34:07.61ID:IOgaEvdbjsonの形のデータを返すプログラムやらcgiやらがあるとして、
これをブラウザなりnode.jsなりが配列として受け取りたい場合は、レスポンス/返り値を受け取ってeval()が基本?
とりあえずブラウザでdocument.createElement('script')するとかjqueryのgetJSONとかは考えないものとして
0635デフォルトの名無しさん
2016/05/10(火) 13:41:24.58ID:Rtf28uts0636デフォルトの名無しさん
2016/05/10(火) 13:44:05.16ID:GuxwfwYtJSON.parse
0637デフォルトの名無しさん
2016/05/10(火) 13:45:46.76ID:IOgaEvdb言われたJSON.parseをMDNでみてきた、ありがとう
どうみても初心者丸出しでした本当にありがとうございました
0638デフォルトの名無しさん
2016/05/10(火) 16:37:13.26ID:a8SwGUA2記号多すぎ
0639デフォルトの名無しさん
2016/05/10(火) 16:39:32.39ID:z09te98I「JSON JS」でググるくらいはしよう
0640デフォルトの名無しさん
2016/05/10(火) 16:42:23.47ID:JGlnd6eXDOMにしてもセンスが無い
0641デフォルトの名無しさん
2016/05/10(火) 17:57:38.15ID:rBTKy2Ex0642デフォルトの名無しさん
2016/05/10(火) 20:07:10.97ID:p4MwWBVWラジオボタンが一つも選択されていない状態では送信ボタンを押せないか無効化させる方法ってありますか?
0643デフォルトの名無しさん
2016/05/10(火) 20:29:07.07ID:FqZqz1a/Javaに比べると物凄く簡潔に感じる
0644デフォルトの名無しさん
2016/05/10(火) 21:18:32.65ID:zqmBWtQQJavaScript によるバリデートは抜け道があるのでサーバサイドでのチェックも忘れずに
1.JavaScript で <input type="submit"> を input.disable = true にする
2. <input type="radio"> を change イベントで監視して全てのラジオボタンが選択されたら input.disable = false にする
0645デフォルトの名無しさん
2016/05/10(火) 23:08:08.13ID:yLtf5w/x> DOMが面倒と思うのは結構な確率で思い込みだと思う
いや事実。
比較表でも作ってみればいい。
50%以上、jQueryの方がコードが短くなる。
50%は大きいで?
0646デフォルトの名無しさん
2016/05/10(火) 23:21:01.17ID:KuwcBTwnその方法で抜け道ってどんな?
0647デフォルトの名無しさん
2016/05/10(火) 23:37:57.18ID:uAV2Alwmそれがうまくできてないんだろうね
いやできていないというよりはサボってjQueryで誤魔化しているというべきか
そしてこういうコードはスケーラビリティが低く変化に弱いと相場は決まっている
0648デフォルトの名無しさん
2016/05/10(火) 23:40:05.80ID:WbwZXmAZ何を言ってんだか
jQueryみたいなライブラリで短くなるのは当たり前でしょ
むしろそうじゃなければ存在意義が全く無い
そしてコードが短くなることと面倒でなくなることは繋がっていない
例えば他人が書いたコードを読むのであればjQueryの方が「面倒」だろうよ
0649デフォルトの名無しさん
2016/05/10(火) 23:48:31.48ID:yLtf5w/x読む量も減るから楽になるよ。
面倒に対するアプローチには二通りある。
一つは勉強するのが面倒だからと勉強を避ける。
一見楽なように見えるが、知識がないからもっと楽な道を選べずにひたすら
単純作業を繰り返すことになる。勉強する面倒さを避けたがために面倒になる。
もう一つは勉強する面倒さを受け入れることで、もっと効率のいい方法に到達する。
急がば回れの言葉通り。最初に勉強という面倒なことをやることで、
その後ずっと楽になる。
0650デフォルトの名無しさん
2016/05/10(火) 23:57:03.18ID:uAV2Alwmそれは本来モジュール化すべき重複したコードが大量にあるからなんだな
例えば100箇所に同じようなコードがありjQueryでそれを削減したとしよう
しかしちゃんとしたプログラマは1箇所に処理を纏めて再利用して重複を減らすだろう
この場合jQueryで削減できるコードは先の場合の1/100でしかない
しっかりしたコードを書くほどjQueryの恩恵は小さくなるのだ
0651デフォルトの名無しさん
2016/05/10(火) 23:58:28.27ID:yLtf5w/xその後の作業が面倒と言ってるのかを見極めないといけないね。
どんなことでも作業を楽にするには、勉強する面倒さを
乗り越えないといけない。勉強して知識と技術がつけば作業は楽になる。
自動車の運転しかり、パソコンに使い方しかり、数学の公式しかり
作業ではなくて、勉強するのが面倒と言っているやつは、
そこまでのやつってことだよ。
0652デフォルトの名無しさん
2016/05/11(水) 00:00:25.17ID:ye4EAN+qそのしっかりしたコードが、jQueryを使った場合と
使わない場合で、倍のコード量になってくるんだよ。
これ以上は絞り込めないといったコードで比較した話なんだから。
0653デフォルトの名無しさん
2016/05/11(水) 00:01:12.32ID:ye4EAN+qjQueryで楽々削減するのと、
しっかりと書かないと減らせないのとでは
面倒さも違ってくるだろw
0654デフォルトの名無しさん
2016/05/11(水) 00:43:36.75ID:wiJHIT3v短く書きたいのなら別にjQueryでなく様々なものがある
jQueryは互換性を保つという点が薄れてきた今となっては極めて中途半端な存在
ちょっとしたことなら、わざわざ何かを導入しなくとも昔より発展した標準APIを使えばいいし、
それ以上のことでDOM操作を頻繁にするなら仮想DOM系の方がパフォーマンス的にも良い
それ以上ならフレームワークを使う
いずれにしろjQueryのパターンは古臭く、今ちょっとした味付けが欲しい場合は
Observableパターンと標準APIを使ったほうが良い
0655デフォルトの名無しさん
2016/05/11(水) 01:29:13.56ID:ye4EAN+qたかだかHTMLにちょっと動きをつければいい所に
AngularとかReactとか持ち出すのは過剰。
jQuery程度がちょうどいいんだよ。
標準APIが発展? 冗長なのは変わってないだろ。
jQueryを使えばDOM APIよりも短くなるのは明らか。
比較一覧で証明された。
短くシンプルに書くのが目的であって
道具を導入するのが目的ではない。
0656デフォルトの名無しさん
2016/05/11(水) 01:30:48.00ID:x+4ifnQNdocument.getElementById('hoge')
$('#hoge')
確かにDOMの方が3倍長いけど、コード補完を使うから入力速度は大して変わらんね
0657デフォルトの名無しさん
2016/05/11(水) 01:41:26.30ID:mC1n68eUjQueryはプログラミングに詳しくない人が本体とプラグインを使って
コピペ+αでそれなりのものを作るためのもの。
少しコードが多くなるとデバッグも適切な設定をしないと困難だし、
短くシンプルに書くためのものなんてのは誤った危険な認識だよ。
そしてjQueryは実際はそれ自体が目的で使われてる。
便利だからではなく、便利と思って使ってきたから、また使うとなってるだけ。
その無意味なスパイラルから抜け出さないと何時までも停滞したままだよ。
0658デフォルトの名無しさん
2016/05/11(水) 01:53:32.30ID:mC1n68eUそんなに弄りまくる場合にはVirtualDOMを使うのが最近の流儀でメリットも沢山あるし
できればそもそもそんなことはしないで各種モジュール化するというのがより良い解決策
そしてモジュール化するとなったら特にjQueryのような平に影響を与えるライブラリは邪魔になり
必然的に標準仕様と、時期が来ればいつでも外せる少量のポリフィルを使うことになり
それが嫌なら全てをまとめて抽象化してくれるフレームワークの出番になる
jQueryはDHTMLだとかそういう時代には合ってたが、今jQueryが生まれた背景事は殆ど解決し
より良い解決策がたくさんあるのにあえてその古くて悪いスタイルを推すことは無いだろう
0659デフォルトの名無しさん
2016/05/11(水) 02:08:46.99ID:z7XWs6Or0660デフォルトの名無しさん
2016/05/11(水) 06:05:18.26ID:qJ1gI9ow0661デフォルトの名無しさん
2016/05/11(水) 06:05:43.37ID:T3iqLJ21触る人全員が最新技術を追いかけられればいいけど、それが無理なら枯れていて情報量が多く、あんまりわからん人でも気合で押し切れるjQueryは有用に感じる
0662デフォルトの名無しさん
2016/05/11(水) 06:48:45.94ID:udOmff2f重要なポイントは設計のコストでありjQueryにはこのコストを削減する力はない
むしろ全体の工数を削られたことによって設計が疎かになる可能性の方が恐い
0663デフォルトの名無しさん
2016/05/11(水) 07:06:15.34ID:XhqmdNgUEWMに沿ってライブラリが標準と共闘して活躍するのが理想だけど
jQueryは完全に自分の世界を築いちゃって相容れないこと
まあこの先の進化で自ずとそうなっていくだろうけど今はまだデファクトとして認められないね
0664デフォルトの名無しさん
2016/05/11(水) 07:15:59.11ID:XhqmdNgUブラウザのアップデートが一月半毎なことを考えると、時代遅れになるのは3ヶ月くらいのスパンだと思う
とは言えここ1年はESのアップデートが中心で、WebAPIはマイナーな調整が殆ど
来年以降HoudiniとかEWMに沿う低レベルの仕様がまたどんどん出てくると思う
0665デフォルトの名無しさん
2016/05/11(水) 08:16:21.66ID:7o2M3lBg0666デフォルトの名無しさん
2016/05/11(水) 08:31:45.67ID:47ZN8m01Edge以上か、IE9以上か、プログレッシブエンハンスメントにして機能で篩い分けるか
の3択で今行ってる
0667デフォルトの名無しさん
2016/05/11(水) 09:08:23.44ID:ye4EAN+q> jQueryはプログラミングに詳しくない人が本体とプラグインを使って
> コピペ+αでそれなりのものを作るためのもの。
という勘違いをしている人が、jQueryを悪く言ってるんだよねw
0668デフォルトの名無しさん
2016/05/11(水) 09:09:01.34ID:ye4EAN+qAngularの悪さってもっと別のところにあると思う
EWMに沿ってライブラリが標準と共闘して活躍するのが理想だけど
Angularは完全に自分の世界を築いちゃって相容れないこと
好きな言葉に置き換えればいいよw
0669デフォルトの名無しさん
2016/05/11(水) 09:09:58.99ID:ye4EAN+q> 確かにDOMを平に見て弄りまくる場合にはjQueryは適してると言えるが
> そんなに弄りまくる場合にはVirtualDOMを使うのが最近の流儀でメリットも沢山あるし
手段と目的が逆になってるw
VirtualDOMをいじらなくていいような簡単な所を
わざわざ複雑にするなや
0670デフォルトの名無しさん
2016/05/11(水) 09:47:54.59ID:LV2XLOSJどうして屁理屈をこねて反論するのだろうか?
jQueryを使用しているとJavaScriptを本質的に理解していないと
自己解釈しているだけだろw
0671デフォルトの名無しさん
2016/05/11(水) 10:17:41.47ID:x+4ifnQNAngularJSはMVC設計を取り入れているからMVCをやりたい時に使う
「では、jQueryは何をしたいが為に使うのか」という話だよな
記述量が半分になるメリットだけではjQueryの世界に没入するデメリットを相殺しきれない
0672デフォルトの名無しさん
2016/05/11(水) 11:00:32.08ID:kvpM6w4K1はなんとかできたけど
2がわからない…
0673デフォルトの名無しさん
2016/05/11(水) 11:27:16.56ID:x+4ifnQNどこがわからないのかわからんけど、form.elements['inputName'] で各要素を参照できる
0674デフォルトの名無しさん
2016/05/11(水) 15:35:23.12ID:m6oW+Aesc++とかc#とかもやるといいよ。
0675デフォルトの名無しさん
2016/05/11(水) 15:38:05.91ID:S3kH2EJT「さっさといつも通り包丁で切れよ」って思うだろうな
もちろんjqueryが包丁な
0676デフォルトの名無しさん
2016/05/11(水) 15:45:03.20ID:LV2XLOSJ馬鹿と何とかは使いようっていうしなw
0677デフォルトの名無しさん
2016/05/11(水) 18:02:34.45ID:716xjHj3それは機能の寄せ集めである典型的なライブラリであるjQueryにこそ最も強く言えることであって、
AngularJSは別物だよ
0678デフォルトの名無しさん
2016/05/11(水) 20:35:53.97ID:xrNZw1OnVirtual DOMはテストがやりやすくなるし
標準の代わりとしてまだ分かる
jQueryはむしろテストがしにくくなる
ただの餓鬼の玩具
0679デフォルトの名無しさん
2016/05/11(水) 20:42:34.87ID:w9XqkPaB0680デフォルトの名無しさん
2016/05/11(水) 22:00:50.15ID:ye4EAN+q> jQueryの世界に没入するデメリットを相殺しきれない
デメリットって勉強するのが面倒くさいって話?
それって、その人自体のデメリットだよね。
勉強が嫌いな人に仕事を任せるのはデメリットw
0681デフォルトの名無しさん
2016/05/11(水) 22:06:23.24ID:ye4EAN+q同じ理屈で
Virtual DOMはテストがやりやすくなるし
標準の代わりとしてまだ分かる
DOM APIはむしろテストがしにくくなる
ただの餓鬼の玩具
といえるんだよw
DOM APIとjQueryならば、jQueryを使ったほうがいい。
0682デフォルトの名無しさん
2016/05/11(水) 22:08:36.24ID:S3kH2EJTjqueryは勉強しといて損はないだろ
つーか勉強ってほどでもない
JS知ってりゃ1日で慣れる
0683デフォルトの名無しさん
2016/05/11(水) 22:08:53.06ID:ye4EAN+q> それは機能の寄せ集めである典型的なライブラリであるjQuery
何を言ってるんだ?
jQueryはDOM APIの置き換えであって、
お前が言ってるのは(野良)jQueryプラグインの話だろ?
jQueryはオブジェクト指向型のDOM APIを関数型のプログラミングが
できるように置き換えるライブラリだよ。
(※ブラウザ間の互換性を吸収するライブラリではない)
0684デフォルトの名無しさん
2016/05/11(水) 23:12:52.71ID:O2+YRvW5あれってどういう仕組みでしょうか?
ツールチップではないみたいですが
0685デフォルトの名無しさん
2016/05/11(水) 23:42:07.24ID:IeznZ4jj書こうと思えば、jQueryだけでSPA書けるだろうし、その時にDOM足したり消したり細かくするか、innerHTMLごとサーバから貰うかも思想だし。
俺はinnerHTMLを毎度やりとりしてた派だから、今のreactの流れは当然の結果に落ち着いたとも思うし、
逆にクライアントサイドで何もかも済ませて、restfulなapi呼び出ししかしない、その上でクライアントサイドの状態と表示が不一致になるのを避けたり、コンポーネントとして再定義するという意味ではvue.jsは好き。
angularは収集つかなくなってる感が凄く嫌だな。
0686デフォルトの名無しさん
2016/05/12(木) 00:54:32.46ID:8vh2YrlZ適材適所が出来ない無能だからこそ
何かと理由を付けてキャパシティの低さをカバーするのよ
0687デフォルトの名無しさん
2016/05/12(木) 01:36:10.90ID:WDa8o6L50688デフォルトの名無しさん
2016/05/12(木) 01:59:28.76ID:9Y0usIRWサイトを見たんですが、なぜクロージャで実行するのでしょうか?
function内だけを実行しても同じ挙動に見えます。
$(function(){
$("#text1").css('color','red');
});
$にfunctionを渡すとどうなるのでしょうか?
0689デフォルトの名無しさん
2016/05/12(木) 02:36:00.78ID:WDa8o6L5下記コードとほぼ等価
document.addEventListener('DOMContentLoaded', function () {
$("#text1").css('color','red');
}.bind(this, jQuery), false);
0690デフォルトの名無しさん
2016/05/12(木) 02:39:56.36ID:Xc9f48N70691デフォルトの名無しさん
2016/05/12(木) 02:43:56.98ID:Xc9f48N7Reactは高品質な(準)標準UIコンポーネントが作られれば普及すると思うよ。
そういう世の中になったら、jQueryを嫌がるのと同じように
○○コンポーネントは使うな自作しろとか言うやつが出てきそうだけどw
で、UIコンポーネントが出来た後は、ウェブアプリをポトペタで作れるようになって、
そしてUIコンポーネント同士を連携させるのにjQueryがやっぱり便利じゃね?って
言われるようになる。
0692デフォルトの名無しさん
2016/05/12(木) 08:01:45.83ID:RFqkT9TF標準コンポーネント要らなくない?reactなら。
ポトペタでコンポーネントを置いて、結局コンポーネント間の操作をjQueryでやるのはまず破綻すると思うが。
良きひとつの別解としてでもDOMから離れて行くと思うよ。
操作したいのはDOMではなく、コンポーネントだからね。
今までは、DOM≒コンポーネントだっただけで。
0693デフォルトの名無しさん
2016/05/12(木) 08:12:03.13ID:ffZfaRCN皆が新設でこれだけ教えてあげようとしてるのにムキになるだけだしどうしようもないクズだね。
0694デフォルトの名無しさん
2016/05/12(木) 09:11:36.25ID:VZ0ffw6x0695デフォルトの名無しさん
2016/05/12(木) 09:16:41.78ID:6wLBo9DQ0696デフォルトの名無しさん
2016/05/12(木) 09:29:20.27ID:pPHDojvhでもWebデザイン中心の入門としては学習資産があるからね
0697デフォルトの名無しさん
2016/05/12(木) 09:30:41.67ID:Xc9f48N7DOM APIを触らないのであればそのとおりだけど。
DOM APIを沢山触るのであれば、
それをjQueryに置き換えると遥かに効率が上がる。
0698デフォルトの名無しさん
2016/05/12(木) 09:37:11.92ID:cWhHAzovいつかは触らないといけないのなら最初からDOMを勉強した方がいい
この先月に1回未満くらいしかJSをに触れる必要が無いのなら選択肢としてあり得る
0699デフォルトの名無しさん
2016/05/12(木) 09:52:19.65ID:lQiQw1tJ0700デフォルトの名無しさん
2016/05/12(木) 10:09:14.52ID:cWhHAzov0701デフォルトの名無しさん
2016/05/12(木) 10:15:36.21ID:RFqkT9TFページで、一意にしなきゃならんのだぞ。
「コントロールの中に幾つかのコントロールがある」コントロールを幾つか置いたらもう考えるのが面倒くさいし、状態変数(サーバで持ってるかクライアントで持ってるかに関わらず)との乖離が酷くなっていくじゃん。
0702デフォルトの名無しさん
2016/05/12(木) 10:30:08.78ID:cWhHAzov別にjQueryは抽象的だとか相対的な関係を扱うのに長けてるわけでもなく、
ただ「短く書ける」程度のものなのだから、
標準DOM APIで困難でフレームワークを使うような必要性が有るときは
それはjQueryにだって不向きな場面であるのは自明
jQueryの様々な付加価値、AnimationとかFetchとかPromiseも時代遅れの仕様だし
最早document.querySelectorAllを$と短く書ける以上のシロモノじゃない
いかに中途半端で役に立たないシロモノか分かったね?
0703デフォルトの名無しさん
2016/05/12(木) 10:33:36.37ID:gnZrQsykjQueryだって平に見て何かをする以上のことはできない。
ShadowDOMとか使ってコンポーネント化したり高度なこととは折り合いがつかない。
0704デフォルトの名無しさん
2016/05/12(木) 12:22:57.19ID:8PwOpBF8lodashの啓蒙()で延々と荒らされた状態から何も進歩してねえ
0705デフォルトの名無しさん
2016/05/12(木) 12:49:57.46ID:RFqkT9TFだから、jQueryでID指定でどうのとか、DOMapiでとかそういう発想じゃなくて、
ちゃんとコンポーネントとして考えようねって話だよ。
0706デフォルトの名無しさん
2016/05/12(木) 13:39:59.81ID:zeyNygYOjQueryは、ちょっとしたアプリにはいい。
こんなのDOMでは、面倒くさくて作れない
0707デフォルトの名無しさん
2016/05/12(木) 14:33:59.41ID:QFbK3hrX一緒に語るな
0708デフォルトの名無しさん
2016/05/12(木) 16:19:45.56ID:iX4T91tZ組み合わせて使うのは、可能でしょうか?また、一般的な方法でしょうか?
0709デフォルトの名無しさん
2016/05/12(木) 16:46:03.41ID:RFqkT9TFSPA用フレームワークが何かによる
0710デフォルトの名無しさん
2016/05/12(木) 16:56:38.45ID:iX4T91tZ迷っているところです
VuaやAngular2などがあるみたいですが、おすすめはありますか?
0711デフォルトの名無しさん
2016/05/12(木) 16:59:58.81ID:3OjnTRaHspaって何よ?
0712デフォルトの名無しさん
2016/05/12(木) 17:03:19.84ID:iX4T91tZシングルページアプリケーション
0713デフォルトの名無しさん
2016/05/12(木) 17:37:38.25ID:RFqkT9TFvue.js使ってるけど、今までで一番感動した。
今はjQuery一切使ってないよ。
viewとモデルに専念してくれるから、あんまりお作法とか無いし。
0714デフォルトの名無しさん
2016/05/12(木) 17:46:16.47ID:iX4T91tZAngular2は複雑みたいですね
vue.jsの方が覚えやすいですかね?
0715デフォルトの名無しさん
2016/05/12(木) 17:49:42.18ID:aiv+0stSjQueryは三下のやるゴッコだから許してやれ
0716デフォルトの名無しさん
2016/05/12(木) 18:23:11.34ID:gjMSeNc+ライブラリ(フレームワーク)の選び方
コミュニティの大きい方
rc版とか論外
vueもag2も無い
0717デフォルトの名無しさん
2016/05/12(木) 18:42:57.19ID:iX4T91tZバインド以外使いたい機能特にないんですが、vueじゃ駄目ですかね?
UIはJQUIで作る予定ですが
0718デフォルトの名無しさん
2016/05/12(木) 19:53:00.09ID:RFqkT9TF覚えやすいよ。
>>716
もうstable何度も出てるよ。トップページのボタン見て思ったんだろうけど。
コミュニティは大きいに越したことは無いけど。
>>717
UIは何でjQuery UI使うの?
アニメーションとかの為なら、vueでも出来るよ。
それこそバインドしておけば勝手に。
0719デフォルトの名無しさん
2016/05/12(木) 20:08:26.12ID:BZDGS6soAを実行、callbackでエラーと結果を受け取る
エラーなら終了
Aの結果がまずけりゃBを実行、cal(ry
エラーなら終了
その後Cを実行
Aの結果がまずくなけりゃそのままCを実行
なんて流れで書きたいときCを実行するコード2回書かなきゃいかんの
それとも超クールな書き方あるの
0720デフォルトの名無しさん
2016/05/12(木) 20:09:48.05ID:iX4T91tZタブとダイアログを使いんですが、自分で実装出来ますかね?
0721デフォルトの名無しさん
2016/05/12(木) 20:58:00.22ID:bBgG4/I/0722デフォルトの名無しさん
2016/05/12(木) 21:03:34.87ID:RFqkT9TFタブは瞬殺。
チェックボックスの状態と、タブページのdisplayをバインドするだけ。
チェックボックスはcssでタブ耳みたいにしておく。
(チェックボックス自体は見えなくして、label forにスタイル当てるととても楽)
ダイアログもほぼ瞬殺。ダイアログの中身はslotで書いとけばいい。
背景を暗くするためのdivと、その上に置くdivのdisplayを、ダイアログメッセージ!=""にバインドしとけば、
ダイアログメッセージに文字列入れるだけ。
0723デフォルトの名無しさん
2016/05/12(木) 21:09:40.37ID:8TSCgVOi超クールに書けますよ。そうJQueryならね
0724デフォルトの名無しさん
2016/05/12(木) 21:19:35.09ID:BZDGS6soいやマジで
ぜんっぜんわかんねえ
promiseも細かい分岐書こうとしたらなんかresolve地獄になった
0725デフォルトの名無しさん
2016/05/12(木) 21:26:53.32ID:hY0jzmnfまだこんなのがいるんだな
0726デフォルトの名無しさん
2016/05/12(木) 22:06:37.95ID:5wVtNAV4知ってるよ
0727デフォルトの名無しさん
2016/05/12(木) 22:33:10.83ID:RFqkT9TFp.then(a).
.catch(b)
.then(c)
.then(/*全部終わった*/)
.catch(/*cで死んだ*/)
ではいかん理由があるのだろうか。
0728デフォルトの名無しさん
2016/05/12(木) 22:34:03.31ID:lH3ZGyQp0729デフォルトの名無しさん
2016/05/12(木) 22:34:57.59ID:Xc9f48N7> ちゃんとコンポーネントとして考えようねって話だよ。
いやコンポーネント作ったからってそれで完結するわけじゃなくて、
コンポーネントとコンポーネントを繋ぐものが必要だろ?
そこに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
0730デフォルトの名無しさん
2016/05/12(木) 22:36:45.62ID:Xc9f48N7> まだこんなのがいるんだな
そりゃそうだろw
例えばWordPressのようなブログサイトをSPAで作るとかありえない。
用途で使うものは変わってくるんだよ。
ネイティブアプリのようなウェアプリを作るならば、フレームワーク(DOM APIは使わない)
ブログのようなウェブサイトを作るならば、jQuery(DOM APIは使わない)
0731デフォルトの名無しさん
2016/05/12(木) 22:38:32.41ID:Xc9f48N7> 超クールに書けますよ。そうJQueryならね
言葉が足りない。
超クールに書けますよ。そうJQueryならね。
なぜなら、Promiseに近い仕様のDeferredを持っているから。
そしてjQuery 3.0からはDeferredはPromiseと互換性があるものになる。
0732デフォルトの名無しさん
2016/05/12(木) 22:39:13.51ID:HUbJz6nz0733デフォルトの名無しさん
2016/05/12(木) 22:39:52.59ID:GBRI772Uモバイルサイトでは一時期流行ったし
0734デフォルトの名無しさん
2016/05/12(木) 22:41:31.51ID:46WAWDCU気でも狂ってるのか、文盲なのか。
明示的にDOMを触るんじゃなくて、DOMのいじりはフレームワークに任せるんだよ。
お前もしかして、jQueryしか知らないんじゃないか?
0735デフォルトの名無しさん
2016/05/12(木) 22:41:59.44ID:Xc9f48N7> タブは瞬殺。
瞬殺と言うのなら、そのコードを書いたほうが楽じゃないのか?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>
0736デフォルトの名無しさん
2016/05/12(木) 22:42:27.84ID:46WAWDCU「コンポーネントとコンポーネントを内包した」コンポーネントでしかない。
0737デフォルトの名無しさん
2016/05/12(木) 22:44:09.19ID:Xc9f48N7> 明示的にDOMを触るんじゃなくて、DOMのいじりはフレームワークに任せるんだよ。
明示的にDOMを触るんじゃなくて、DOMのいじりはjQueryに任せるんだよ。
だからこういうことだろ?
フレームワーク VS jQuery
DOM APIは(直接)使わない。(どちらも内部で使うのは当たり前)
あとは作るものが、開発コストが高いフレームワークを
導入するレベルものかどうかで、フレームワーク か jQuery かを
選べば良い。
0738デフォルトの名無しさん
2016/05/12(木) 22:48:09.87ID:46WAWDCU<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>
みたいな感じ。
0739デフォルトの名無しさん
2016/05/12(木) 22:49:25.89ID:46WAWDCUそりゃ、明示的にDOMをいじってるんだよ。
vsじゃない。
ハサミとカッターナイフみたいなもん。
開発工数以外に、保守工数も考えて喋れよ…
0740デフォルトの名無しさん
2016/05/12(木) 22:50:04.64ID:Xc9f48N7HTMLはそもそも文書を書くものなわけで。
例えば論文だと思えばいいよ。
第一章、第二章、第一節、第二節なんてがあるような。
そういう論文形式のウェブページをコンポーネントにするのがおかしい。
論文ページコンポーネントがあって、一章コンポーネントがあって
その中に一節コンポーネント、二節コンポーネントがあるとかやる気かねw
ネットはこのような論文やブログ形式のサイトが多いわけで
そういったページをSPAにしたりフレームワークを導入するのは
目的に対して使う道具が間違ってる。
そういうサイトにはフレームワークではなくjQueryが適している。
0741デフォルトの名無しさん
2016/05/12(木) 22:50:33.86ID:46WAWDCU思いっきり間違えた。radioだな。
0742デフォルトの名無しさん
2016/05/12(木) 22:51:14.28ID:Xc9f48N7> 開発工数以外に、保守工数も考えて喋れよ…
論文サイトの保守工数って何?
HTMLの修正がメインなんだけどw
0743デフォルトの名無しさん
2016/05/12(木) 22:53:36.72ID:3OjnTRaH業界ではそう訳すのが普通なのか。
0744デフォルトの名無しさん
2016/05/12(木) 22:54:07.93ID:46WAWDCU写真と、図のキャプションは、まとめて、「figure 1」だよな。
figureなんとかの塊と、文字と、グラフで出来たものが、節であり、節が集まり章になり、論文になるでしょ。
第二節コンポーネントとか筋悪すぎるだろ。さすがjQuery使いだとしか思えん。
節コンポーネント。
節コンポーネントの配列を持つものが、章コンポーネント。
お前アホだろ。
0745デフォルトの名無しさん
2016/05/12(木) 22:55:09.86ID:3OjnTRaHcを関数で書けよ
0746デフォルトの名無しさん
2016/05/12(木) 22:56:13.29ID:3OjnTRaHいるよ。何か?
0747デフォルトの名無しさん
2016/05/12(木) 22:56:21.38ID:46WAWDCUhtmlの修正というより、お前テンプレートエンジンすら使えないんじゃないのか?
一旦稼働したらそのへんはDBから取るだろ。常識的に考えて。
節コンポーネントとか出てくる時点で、手書きなんだろうな、その辺の処理がベタで。
0748デフォルトの名無しさん
2016/05/12(木) 22:58:50.06ID:Xc9f48N7そんだけなわけないだろw ↓これでいいかい?
http://www.webopixel.net/javascript/1097.html
タブで切り替えるやつ。表示するデータは外部から持ってくるのを想定してタブ切り替え的なやつ。
<div id="app" v-cloak>
<ul>
<li v-for="tab in tabNav" @click="changeTab($index)">
{{ tab }}
</li>
</ul>
<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>
0749デフォルトの名無しさん
2016/05/12(木) 23:00:29.80ID:Xc9f48N7今保守工数の話だったよね?
保守するのはDBの中身?
DBから何を取るの?文書データ?
JavaScript関係ない話してるの?w
0750デフォルトの名無しさん
2016/05/12(木) 23:03:22.74ID:iX4T91tZ学生プログラマだから業界はよく分からん
0751デフォルトの名無しさん
2016/05/12(木) 23:05:07.78ID:Xc9f48N7はぁ? 俺は論文的なサイトにおいて、
コンポーネントはページの中の一部に入れるもので、
コンポーネントを内包している外側は、コンポーネントに
はならないって話をしてるんだが?
それなのに>>736が
> だいたいコンポーネントとコンポーネントを繋ぐものとかねえよ。
> 「コンポーネントとコンポーネントを内包した」コンポーネントでしかない。
とかいい出したんだろw
俺の話に流れを戻すと、コンポーネントとコンポーネントを繋ぐものが必要になる。
それがjQuery。
0752デフォルトの名無しさん
2016/05/12(木) 23:08:45.56ID:46WAWDCUお前がjQuery脳だとよくわかったわ。
なぜ、状態を持たないliの、さらにクリックのイベントでそんなことするのかいよいよ頭おかしい。
キーボード操作したいって要件増えたらどうよ。
>>751
外側触らないきゃいかんのは、外側含めてコンポーネントだろ。
俺ならサーバサイドでレンダリングするわ。
に
0753デフォルトの名無しさん
2016/05/12(木) 23:09:13.47ID:46WAWDCU0754デフォルトの名無しさん
2016/05/12(木) 23:12:24.76ID:iX4T91tZとりあえずJQ使わずに頑張ってみます
0755デフォルトの名無しさん
2016/05/12(木) 23:19:13.17ID:Xc9f48N7> なぜ、状態を持たない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>
0756デフォルトの名無しさん
2016/05/12(木) 23:20:20.56ID:Xc9f48N7> 俺ならサーバサイドでレンダリングするわ。
なにを? コンポーネントを?
それともコンポーネントじゃないものを
外側にするの?w
0757デフォルトの名無しさん
2016/05/12(木) 23:21:16.10ID:BZDGS6so例が簡単すぎたかもしれないが
ていうかそれじゃ
Aが終わってからA結果NGならB、Bが終わってからCキックしなきゃいかんのに
BとCと非同期で並列に動いちゃわないか?
0758デフォルトの名無しさん
2016/05/12(木) 23:49:27.30ID:46WAWDCUコンポーネントでも、外側でも、必要に応じて順番に書いたり更新すりゃいいっしょ。
ある要素のinnerHTMLを差し替える以外の動きをするDOMいじり自体が邪道だと何故思えないんだろう。
要素、の意味も伝わらんだろうけど。
>>757
catchが解決してから、次のthenだよ。
0759デフォルトの名無しさん
2016/05/13(金) 00:04:02.10ID:reYF/fvvダイアログ用のコンポーネントを用意するっ事ですよね?
0760デフォルトの名無しさん
2016/05/13(金) 00:05:04.57ID:9UaBp3bWおえ、やっぱ俺の頭が悪いのか?!否定はできないが
'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 );
}
0761デフォルトの名無しさん
2016/05/13(金) 00:06:44.46ID:9UaBp3bWsetTimeout( 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の順番になる
書き方が悪いのか頭が最低に悪いのかもうわけわからん
0762デフォルトの名無しさん
2016/05/13(金) 00:43:14.48ID:lm16bc2eresolveやrejectを呼び出すまで始まらないのは
最初のPromiseコンストラクタにコールバック関数渡した時のみ
後のthen節やcatch節ではPromiseを返さないかぎり即座に解決され進む
0763デフォルトの名無しさん
2016/05/13(金) 00:45:15.67ID:lm16bc2e0764デフォルトの名無しさん
2016/05/13(金) 00:46:03.97ID:9UaBp3bWvar 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しろと
0765デフォルトの名無しさん
2016/05/13(金) 01:00:51.12ID:lm16bc2eチェーン内で1つ1つプロミスを作って、外部関数はコールバックベースというのが1つ。
でもそれよりも良いのが、外部関数がプロミスを返すようにすること。
そうすると特にメイン部分のコードはこんなにシンプルになる。
function mainScript( callback ){
return sampleA().catch( sampleB ).then( sampleC )
}
mainScript( ).then( function ( result ) {
console.log( result );
}, function ( err ) {
console.log( err );
});
0766デフォルトの名無しさん
2016/05/13(金) 01:01:24.73ID:9UaBp3bWああ、だいたい合ってたみたいでよかったが
>後のthen節やcatch節ではPromiseを返さないかぎり即座に解決され進む
これわかんないんだけど、p.then().then().catch()でpがrejectだった時
途中のthenはスルーして後続に渡してるってことか?
0767デフォルトの名無しさん
2016/05/13(金) 01:01:24.85ID:lm16bc2ereturn 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 );
});
}
0768デフォルトの名無しさん
2016/05/13(金) 01:04:41.92ID:lm16bc2e今言葉で何をどう言ったらいいのか分からないが
コードを見て感じてくれ
0769デフォルトの名無しさん
2016/05/13(金) 01:14:47.49ID:72dbC0n+横レスだけど恐らく
コンストラクタに渡したcallbackは渡される引数1,2を実行するまで進まないが
then,catchに渡したcallbackはそれの返り値がpromiseでない場合は
Promise.resolve(返り値)と同等になるってことだよ
自分で書いててもわかりづらいな!
Promiseの本でググると親切丁寧な解説サイトが出てくるからオススメ
0770デフォルトの名無しさん
2016/05/13(金) 01:15:38.97ID:UiJwdC85MacOSX/google chrome
■やりたいこと
chart.jsを使ってcsvからグラフを作りたい
■問題点
公式サイトの最初のサンプルコードがまず動かない
■エラー表示
Chart.bundle.js:9562 Uncaught TypeError: Cannot read property 'width' of undefined
■HTMLコード
http://codepad.org/hyd81TXN
■JavaScriptコード
http://codepad.org/fFyC72HP
chart.jsを使ってcsvのデータをグラフ化したいのですが、そもそも公式サイトのサンプルすら動きません。
何が悪いのでしょうか?HTMLには公式からDLしたChart.bundle.jsを読み込ませています。
一応全部公式サイトからソースをコピペしているのですが、上記のエラー表示が出てしまって
グラフが表示されません。
公式サイト以外のサイトを見たりしてサンプルコードをコピーしたり色々トライしてますが、
絶対にchart.jsのソースのどこかにエラーが出てしまって表示まで至りません。
しかしこういう躓き方をしている人が見られないので自分が悪いのだと思いますが、
書いてある通りにやっているので何が悪いのかすら分かりません。
どなたかご指摘頂けませんでしょうか。
一応、ここの公式のドキュメントのget startedを試しています
http://www.chartjs.org/docs/#getting-started-creating-a-chart
0771デフォルトの名無しさん
2016/05/13(金) 01:18:12.17ID:9UaBp3bW>>765,768
mainScriptの後のthenに2つ関数渡してらっしゃるますます混乱したわクソがと思ってMDN見に行った
Promise.prototype.catch(onRejected)
Promise.prototype.then(onFulfilled, onRejected)
頭がどうにかなりそうなんで、ちょっと休んで来るわ・・・
0772デフォルトの名無しさん
2016/05/13(金) 01:36:12.01ID:lm16bc2eを
.then(A,B)
と書けるってだけだよ
細かな違いとして前者はAによる棄却をBで受け取れるが、後者は受け取れない
あとは全く同じ
0773デフォルトの名無しさん
2016/05/13(金) 01:50:33.04ID:9UaBp3bWうん httpモジュールでres.on('end', ... )とかイベント拾ってたのをなぜか連想して
ああ全部そういうただの独自のオブジェクトなのか個別に覚えるしかないのかと気付いたら、気が抜けた
大量スレ汚しすまんかった&教えてくれてありがとう
0774デフォルトの名無しさん
2016/05/13(金) 03:06:47.45ID:ominwoZM最初の>719は満たされていない気が。
本当に必要なのはPromiseを途中で中止する方法かフラグ持ちまわし。
0775デフォルトの名無しさん
2016/05/13(金) 03:19:23.68ID:mJ20W9Oqtry{A}catch{B}finally{C}
をPromiseでやりたいってだけでしょ?
>>765みたいに
P(A).catch(B).then(C)
でいいじゃん
0776デフォルトの名無しさん
2016/05/13(金) 03:30:35.00ID:ominwoZM0777デフォルトの名無しさん
2016/05/13(金) 06:57:32.80ID:IgRnr+4Zそう。
<div ..... v-show:"message=''">
{{message}}
</div>
で、
props:{message:""}
みたいなのを、v-dialogとかなんかにしといて、
親の方で
<v-dialog :message.sync="親画面でのメッセージ入れてある変数"></v-dialog>
にして片隅に置いておけばいいよ。
>>748
みたいに、なんでもappに置くと収集つかないというよりも、処理の中身として責任範囲がおかしくなる。
タブのコンテンツも、コンポーネントとして書いといたほうが便利だろうね。
そしたら、中身の部分が
<component :is={{tab.component}}></component>で済むし、中で自分の責任範囲でBL書いておける。
0778デフォルトの名無しさん
2016/05/13(金) 07:11:50.75ID:IgRnr+4Z最後にちゃんとcatch書いてるでしょ。
プロミスのチェーンを抜けるなら、catchのなかで例外出せば、catchがrejectされるから次のcatchまで吹き飛ぶよ。
全部辞めたいときは何か決まったの投げて、catchでエラー内容がそれであれば問答無用でもう一度投げれば良いと思うが。
0779デフォルトの名無しさん
2016/05/13(金) 07:29:31.44ID:pDDJBshQhttp://azu.github.io/promises-book/#ch2-promise-and-array
で解決すると思われる
0780デフォルトの名無しさん
2016/05/13(金) 07:51:53.74ID:ominwoZM例外の内容で判断しようとreject/resolveの引数だろうとフラグの持ちまわしだ。
>774以前には出ているように見えないがな。
0781デフォルトの名無しさん
2016/05/13(金) 08:15:06.36ID:a0P6k3ow0782デフォルトの名無しさん
2016/05/13(金) 08:26:55.08ID:RmWBCU2+>>760をみる限り、値はグローバル変数出共有しているっぽいので、その設計に沿って回答したのだと思うが
const errorA = null, errorB = null, errorC = null, resultA = 0, resultB = 0, resultC = 0;
0783デフォルトの名無しさん
2016/05/13(金) 08:45:01.29ID:1hqv3t07そういう必要が出てきたら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();
});
}
}
0784デフォルトの名無しさん
2016/05/13(金) 08:46:29.24ID:1hqv3t070785デフォルトの名無しさん
2016/05/13(金) 09:39:54.32ID:SDu9DLl60786デフォルトの名無しさん
2016/05/13(金) 10:12:49.22ID:DzWKugDT0787デフォルトの名無しさん
2016/05/13(金) 10:38:02.63ID:vTuC8mEUその時点で確認不足ということは内部も低クオリティ
0788デフォルトの名無しさん
2016/05/13(金) 11:04:08.33ID:Ww6Z8txE0789デフォルトの名無しさん
2016/05/13(金) 13:48:10.37ID:2trIbeTl>俺ならサーバサイドでレンダリングするわ。
アホか!
帯域幅ってのがあるだろ!!
トラフィック増やしてどうするんだ!!!
サーバもお前一人で使ってる訳じゃねえんだよ
JSを早く動かすために、これだけブラウザが発達してきたのは、
出来るだけクライアントサイドで処理をさせるためだと思われる。
サーバでレンダリングとかテレホ全盛の考え方。
お前の頭はSSIで進化止まってる
0790デフォルトの名無しさん
2016/05/13(金) 14:37:59.97ID:Ta4noneZ> サーバでレンダリングとかテレホ全盛の考え方。
そうでもない。
Twitterがページ表示時間を5分の1に高速化。どのようなテクニックを使ったのか?
http://www.publickey1.jp/blog/12/twitter51.html
あと、SEO対策とか。
0791デフォルトの名無しさん
2016/05/13(金) 14:48:41.67ID:2trIbeTl興味深い。
JSが脚引っ張ってることは判った。
しかし、記事も書かれている通り、「これはある意味でHTMLとCGIで何でもやっていた昔に先祖返りしたような面」とも取れる。
0792デフォルトの名無しさん
2016/05/13(金) 14:55:04.11ID:Ta4noneZあとは、そもそもがスマホだとブラウザ劇重が普通みたいになってるのもある
とにかくファーストビューを最速で表示させないと、客が逃げる的な
0793デフォルトの名無しさん
2016/05/13(金) 14:56:56.33ID:4noKv6w/どちらかとういとクライアントサイドの準備が終わったあとに
webAPIを叩いてレスポンスを待つというのが遅い原因な気がする
クライアント側のDBにキャッシュとして最新のwebAPIの結果を持ってれば解決しないのかな?
0794デフォルトの名無しさん
2016/05/13(金) 15:04:14.74ID:IgRnr+4Zだから>>685で、当然の結果だと言ってるんだがなぁ。
vueserverやら色々サーバサイドレンダリングも進んでるんだけどね。
0795デフォルトの名無しさん
2016/05/13(金) 15:06:22.55ID:IgRnr+4Z最新のキャッシュかどうかはどう判断しようか。
いよいよクラサバ構成でのマスタ配信という轍を踏んでると思うよ。
0796デフォルトの名無しさん
2016/05/13(金) 15:09:46.63ID:Ta4noneZ遅い(と感じる)閾値は人それぞれだし原因もさまざまなんだが、
それでも閾値を決めて、それに達していなかったらいろんな手を打つ
サーバサイドレンダリングは、その手段の一つ
> クライアント側のDBにキャッシュとして最新のwebAPIの結果を持ってれば解決しないのかな?
もちろんそれも、手段の一つたり得る
0797デフォルトの名無しさん
2016/05/13(金) 15:33:58.64ID:mdx2tbNv教則本を読んで勉強中、唐突に
document.writeln が document.write に変わるところがありました。
writeln と write の違いが、調べても難しい説明が出てきて
よく分からないので、教えて頂けないでしょうか。
0798デフォルトの名無しさん
2016/05/13(金) 15:42:20.64ID:mdx2tbNv「document.writeln と document.write の区別はあまりありません。
厳密には writeln は改行を与えますが、実際の表示は空白が与えられるだけで改行しません。」
と書いてあるサイトを見つけましたが、
何で改行せずに空白が与えられるだけなのでしょうか?
理屈が知りたいです。
0799デフォルトの名無しさん
2016/05/13(金) 15:45:31.39ID:NtoS/VlzそれはJavaScriptがどうのじゃなくてHTMLの表示上の仕様です。
0800デフォルトの名無しさん
2016/05/13(金) 15:46:59.70ID:mdx2tbNvありがとうございます。
0801デフォルトの名無しさん
2016/05/13(金) 17:31:48.27ID:IgRnr+4Zそのサイトが、語弊があるんじゃないだろうか。
preタグの中でやってみれば、なるほどこういう意図かと理解できると思う。
0802デフォルトの名無しさん
2016/05/13(金) 18:34:46.24ID:BH4lK65PLinuxその他のプラットホームでやることは可能ですか?
ブラウザを使うことなく、純粋なスクリプトとして実行するためのインタプリタで、
WSHと互換性があるか、少しの修正で使えるものがあるといいんですけど。
Node.jsをそのまま試してみたけど、使えるのかどうかわかりませんでした。
0803デフォルトの名無しさん
2016/05/13(金) 20:34:46.05ID:OPyrjsLR0804デフォルトの名無しさん
2016/05/13(金) 20:52:51.01ID:XJxcxuLX0805デフォルトの名無しさん
2016/05/13(金) 21:03:08.20ID:aGwZdMLQあんなものnodejsに移植してる奴なんかいないから無理だって
言語仕様は同じだけど標準ライブラリが完全に異なると思って
0806デフォルトの名無しさん
2016/05/13(金) 21:21:09.03ID:XJxcxuLX0807デフォルトの名無しさん
2016/05/13(金) 21:41:38.13ID:na9JUjrP0808デフォルトの名無しさん
2016/05/14(土) 00:12:44.71ID:8701OXOx> jsの実行速度の遅さがネックなのかな?
フレームワーク使うからだろう。
jQuery程度なら軽いが、フレームワークを使いだすと重くなる。
0809デフォルトの名無しさん
2016/05/14(土) 01:59:49.66ID:QvhKyvW2で作ったボタンの上にマウスオーバーするだけで
content.js:1 Uncaught TypeError: Cannot read property 'startContainer' of null
というエラーが出まくるのですがこれって原因は何なのでしょうか・・・?
0810デフォルトの名無しさん
2016/05/14(土) 03:26:06.47ID:QvhKyvW2var 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の型で動的に値を埋め込んでいくことはできないのでしょうか?
0811デフォルトの名無しさん
2016/05/14(土) 04:13:25.94ID:Mj0ak4cN勝手に早とちりしないで事実だけを書いてくれないと何も分からん。
0812デフォルトの名無しさん
2016/05/14(土) 11:19:54.09ID:V6UHwE5G<SCRIPT type=text/JavaScript>
(function(e) {
e+='w.\x6dove\x54';
eval(e +"o(25206-17206,25206-17206)");
}('\x77\x69ndo'));
</SCRIPT>
0813デフォルトの名無しさん
2016/05/14(土) 12:00:08.39ID:ihhM7ekJ0814デフォルトの名無しさん
2016/05/14(土) 12:03:28.38ID:pzg55Rfk0815デフォルトの名無しさん
2016/05/14(土) 12:38:11.14ID:pN030Nh6Closure Compiler
0816デフォルトの名無しさん
2016/05/14(土) 16:38:15.52ID:HyfMh4Ahわかりにくくしてるが結局 window.moveTo してるだけだけどこれどっから
持ってきたの ?
0817802
2016/05/14(土) 17:27:44.14ID:tfv0WV0eやはりそのままでは無理なんですねぇ。
Node.jsでも、WSH依存の部分を修正すれば場合によってはいけるのかもしれないけど、
結局、全部書き換えることになりそうだし、
同じものをPythonで書きなおしたやつがとりあえず動いているので、
少しずつ試していこうと思います。
お騒がせしました。
0818デフォルトの名無しさん
2016/05/14(土) 17:58:03.35ID:ereeE+kFnpmにWSHインターフェイスのバインディングありそうな気もするけどね
0819デフォルトの名無しさん
2016/05/14(土) 18:10:48.59ID:gWasBYdhユーザーからしたら中身が何で作られてるかなんて関係ないからね
遅い重いという印象がすべて
0820デフォルトの名無しさん
2016/05/14(土) 19:28:19.79ID:zfuHSTBAcontent.jsの該当行を確認
startContainerプロパティの上位オブジェクトがnull
>>810
両者は同じ
エラーは別の原因
0821デフォルトの名無しさん
2016/05/14(土) 19:37:15.35ID:Nq/XkyM+htaワンクリウェアのmshta.exe系のhtmlから
0822デフォルトの名無しさん
2016/05/14(土) 19:46:16.66ID:LHgIiqHo0823デフォルトの名無しさん
2016/05/14(土) 19:50:55.68ID:qmHdvbFz相手するやつが悪い
0824デフォルトの名無しさん
2016/05/14(土) 20:00:56.62ID:VvvSwEAG0825デフォルトの名無しさん
2016/05/14(土) 20:01:42.92ID:Mz7/xxxM0826デフォルトの名無しさん
2016/05/14(土) 20:05:01.00ID:YqHA7/Dn0827デフォルトの名無しさん
2016/05/14(土) 22:28:10.05ID:tMHSdAr/そもそもcontent.jsなんてソース上に存在しないのですが
これはどこにあるjsファイルなのでしょうか・・・?
0828デフォルトの名無しさん
2016/05/15(日) 03:15:40.47ID:Bj+M+4ISゆとり向けjQueryみたいだな
0829デフォルトの名無しさん
2016/05/15(日) 09:46:31.39ID:T9TBOpYO貴方と同じ環境を再現出来ない私にはわからない
コンソールから該当コードをクリックしてジャンプすれば分かるのでは?
ブラウザの拡張機能が怪しい気はしますが、最低限の切り分けをしてから(こちらで再現できるだけの情報を集めてから)質問してくれ
0830デフォルトの名無しさん
2016/05/15(日) 23:20:40.72ID:/tOCUDfL>var foo = Array();
var foo = [];
このように空配列リテラルを使う
Array()を、new 無しでも、コンパイルエラーにならないだろ。
function など他のオブジェクトでも、new 無しでエラーにならないから危険!
new有りなら、オブジェクトを作成して、new無しなら、primitiveになるとか、
ちょこまか意味を変えたりしていて、JSははまるよ。クソ言語w
リテラル表記があるものは、必ずリテラルを使うこと。
{}, [], 数値、文字列、ブール、function など
0831デフォルトの名無しさん
2016/05/16(月) 04:34:07.48ID:JUreB/WS0832デフォルトの名無しさん
2016/05/16(月) 10:15:18.62ID:9paZkQVYこれなんか理由あるの?
どうせブロックスコープないんだしわざわざここでvar書いてまでやる必要ないと思うんだが
0833デフォルトの名無しさん
2016/05/16(月) 10:19:46.50ID:Pz1/eYkgfor (var i;;) は関数スコープだと思うが、なぜブロックスコープだと思った?
0834デフォルトの名無しさん
2016/05/16(月) 10:23:35.60ID:OMrrj/i+0835デフォルトの名無しさん
2016/05/16(月) 10:39:19.24ID:QOX8tKrr普通に巻き上げるだろ
0836デフォルトの名無しさん
2016/05/16(月) 10:53:16.63ID:NmJqda0z誰も巻き上げの話はしてないと思うが、誰にいってるんだ?
0837833
2016/05/16(月) 10:56:52.51ID:Pz1/eYkg読み間違えてた、すまん
>>832
ブロックスコープはES6のlet文で定義できるので将来的にlet文に入れ替える事を見越して for(var i;;) と書く事はある
0838833
2016/05/16(月) 10:58:33.27ID:Pz1/eYkgvar宣言は関数の始めに纏めるからforを使う理由がなくなる
0839デフォルトの名無しさん
2016/05/16(月) 11:00:43.97ID:5XiTKntP0840デフォルトの名無しさん
2016/05/16(月) 11:24:39.21ID:doSrVBRT0841デフォルトの名無しさん
2016/05/16(月) 12:19:48.45ID:W2dty7+Bただし、間違いを正さない人は信用を失う
間違いを横目に嘲笑する人も同じ
0842デフォルトの名無しさん
2016/05/16(月) 12:25:50.69ID:k9DH3bKOハハハ
0843デフォルトの名無しさん
2016/05/16(月) 12:46:25.09ID:mni4SpUNhttp://echo.2ch.net/test/read.cgi/tech/1457452716/
次スレはここでいいのかな
0844デフォルトの名無しさん
2016/05/16(月) 17:28:20.34ID:/Amsl+oX> どれも使うとこでは使ってるが
今回使わなかった理由になってないが
> JSで他のといっしょに変えるときに便利な場所で変えてる
そういうのはCSSで定義しておいてid,class,属性で入れ替えるのがベター
振る舞い(JS)の中でデザイン(CSS)を埋め込む設計は好ましくない
> localStorage関連は使えないと普通にエラー出るが?
getItemの仕様を読む限りでは例外を発生させる記述が見つからないが、どんな条件で例外が発生する?
https://triple-underscore.github.io/WebStorage-ja.html#dom-storage-getitem
0845デフォルトの名無しさん
2016/05/16(月) 17:59:53.18ID:OpsyH8jxlocalStorageが無い環境の話をしてるんだと思うんだが
canvasのwidthをCSSとかあまりにも馬鹿げてる
0846デフォルトの名無しさん
2016/05/16(月) 19:55:20.62ID:WK3gL2WmJavascript はweb制作管理板へ
+ JavaScript の質問用スレッド vol.130 +
http://echo.2ch.net/test/read.cgi/hp/1463395557/
0847デフォルトの名無しさん
2016/05/16(月) 22:36:06.05ID:4gQeSxodそういうのはtry-catchではなく
if (typeof localStorage === 'object')
で対応するものだと思うが
0848デフォルトの名無しさん
2016/05/17(火) 09:04:33.01ID:iJoQH+/I0849デフォルトの名無しさん
2016/05/17(火) 09:11:31.07ID:4p4kNHWE0850デフォルトの名無しさん
2016/05/17(火) 09:33:40.05ID:74/nDTTZメニューボタンの一個くらい自分で押せよ
0851デフォルトの名無しさん
2016/05/17(火) 09:36:24.29ID:iJoQH+/Iボタン押したりするのはできるんですが。
0852デフォルトの名無しさん
2016/05/17(火) 09:37:18.03ID:iJoQH+/I1000回とか繰り返すので勘弁してほしいです
0853デフォルトの名無しさん
2016/05/17(火) 09:44:11.70ID:74/nDTTZ一秒に3回クリックすれば5分くらいで終わるだろ。手でクリックしろよ。
0854デフォルトの名無しさん
2016/05/17(火) 13:32:19.05ID:VlcJbzE+"123hoge" を撥ねない時点で期待通りに動かない(自然数以外も代入されうる)
0855デフォルトの名無しさん
2016/05/17(火) 13:58:39.65ID:3b4WOCVFそれはそうだが>>844はエラーや例外が発生しないって言ってるから反論しただけ
0856デフォルトの名無しさん
2016/05/17(火) 23:33:51.85ID:tk+UiW/4Ajaxで可能。
静的なら色々問題あり。
0857デフォルトの名無しさん
2016/05/18(水) 01:38:27.01ID:0cJyFiRrユーザースクリプトを探しているのかい?
0858デフォルトの名無しさん
2016/05/18(水) 01:44:52.11ID:LETtJAKk0859デフォルトの名無しさん
2016/05/18(水) 06:29:07.76ID:mIb5QxnS0860デフォルトの名無しさん
2016/05/18(水) 06:57:28.13ID:7AJ9I4s1半角の\が、バックスラッシュになってしまって入力できません。
どうすればいいんでしょうか?
0861860
2016/05/18(水) 07:14:44.20ID:7AJ9I4s10862デフォルトの名無しさん
2016/05/18(水) 09:12:39.49ID:a+LRsQV1ありがとうございます。
試したらクロスドメインの問題をクリアしなければいけませんでした。
まあ、サーバー側に用意したらいけそう。
話つけるのがちょっと面倒。
0863デフォルトの名無しさん
2016/05/18(水) 09:22:43.30ID:a+LRsQV1外部からサイトに対する1連の操作を自動にする方法を探しています。(クライアントから実行できるのをユーザースクリプトという?)
0864デフォルトの名無しさん
2016/05/18(水) 11:00:49.04ID:b7PveHVL普通は「あるサイト」側で外部からログイン出来るようにAPIを用意する
0865デフォルトの名無しさん
2016/05/18(水) 11:06:01.29ID:l6XhguKG0866デフォルトの名無しさん
2016/05/18(水) 12:28:09.51ID:a+LRsQV1あくまでテストなので外部に公開する機能は基本的に設けないでテスターが工夫する感じです
0867デフォルトの名無しさん
2016/05/18(水) 12:33:48.44ID:b7PveHVLhttps://ics.media/entry/5759
0868デフォルトの名無しさん
2016/05/18(水) 12:39:49.80ID:a+LRsQV1ただ、javascriptとかクライアントサイドの技術を学びたいのでツールは使いたくありません。
ひたすらテスターとして現場に送り込まれて、手作業ばっかでまったく成長しないので。
0869デフォルトの名無しさん
2016/05/18(水) 12:40:41.91ID:T1RnKav00870デフォルトの名無しさん
2016/05/18(水) 12:42:36.58ID:T1RnKav0馬鹿じゃねーのか
ここは問題を解決する場であってお前の道楽に付き合うところじゃねえぞ
脳なしじゃなくてただの馬鹿だったな
0871デフォルトの名無しさん
2016/05/18(水) 12:47:14.84ID:a+LRsQV1seleniumは使えるのでいいです。
テスターなんで開発環境とかないんで、jsvascriptがいいです。
0872デフォルトの名無しさん
2016/05/18(水) 12:51:02.81ID:Zje/v9g40873デフォルトの名無しさん
2016/05/18(水) 12:57:26.01ID:b7PveHVLブッマークレットなりコンソールでコードを叩くなりすればいいのでは?
0874デフォルトの名無しさん
2016/05/18(水) 13:21:34.56ID:LRw1LBCtテスターなら、試験仕様通りに手でやってね。
試験仕様に、Seleniumでテストする、スクリプトでテストするって書いてあればそうすればいいけど。
こんな意識のテスターに金払ってると思うと寒気がしてくる。
良くて、そのコードが手作業と必ず一致すると保証する試験してもらうよ、って言われるんじゃねえの?
0875デフォルトの名無しさん
2016/05/18(水) 13:32:22.46ID:xnaxo8GZWebUIのテスターならseleniumは常識的に使えて欲しい
0876デフォルトの名無しさん
2016/05/18(水) 13:44:50.07ID:t5tbrB4/テストの内容にもよるが、selenium自体そんなに難しくないだろw
テストスクリプトも殆どパターン化されているし
0877デフォルトの名無しさん
2016/05/18(水) 15:01:09.89ID:a+LRsQV1じゃあまずその手作業が正しかったかどうか証明する必要があるな。
動画でも撮るのか?
0878デフォルトの名無しさん
2016/05/18(水) 15:20:32.99ID:mAdSi+vMただのアスペでしたね
0879デフォルトの名無しさん
2016/05/18(水) 15:36:47.31ID:LRw1LBCtだから、方法をテスト仕様で縛って、
ステップ毎のエビデンス提出してもらうんでしょ。
本来の状態では保証されてる、ってかされてる様にエビデンス取るんだよね。
あなたが本来やるべき事が、即ち証明なの。
それを、方法を変えられたら品質保証出来ないから、その保証すべきだよねって話。
目の前にある事の消化も理解も出来てない状態で、横着しないで。
0880デフォルトの名無しさん
2016/05/18(水) 15:38:15.47ID:hllzSfm60881デフォルトの名無しさん
2016/05/18(水) 18:29:35.91ID:a+LRsQV1テスト仕様書俺が作るので
0882デフォルトの名無しさん
2016/05/18(水) 18:34:11.73ID:X9YKyKZO0883デフォルトの名無しさん
2016/05/18(水) 18:46:00.68ID:LRw1LBCtであれば、仕様承認取れればいいんじゃないの?
俺ならツールの仕様とか、スクリプトの仕様とか出してもらうけど。
0884デフォルトの名無しさん
2016/05/18(水) 19:22:13.20ID:Q3cKTCnY少しでも脳味噌が残ってるならな
ゴミだけがゴミの相手しろ
0885デフォルトの名無しさん
2016/05/18(水) 19:33:03.96ID:a+LRsQV1死にたい。
0886デフォルトの名無しさん
2016/05/18(水) 23:04:57.22ID:PaBg5Suuどうぞどうぞ
0887デフォルトの名無しさん
2016/05/19(木) 08:52:44.75ID:F9dbx1t60888デフォルトの名無しさん
2016/05/19(木) 12:47:27.50ID:kgA9a3Cthttp://i.imgur.com/rsdYlaA.jpg
0889デフォルトの名無しさん
2016/05/19(木) 13:40:32.96ID:Gndv5tvj0890デフォルトの名無しさん
2016/05/19(木) 14:33:31.92ID:XceO64sZこういったのはブラウザのデフォルトの挙動に頼るのがベスト
0891デフォルトの名無しさん
2016/05/19(木) 17:47:12.09ID:iQHXc9JVvarとconstだけ使えばいいってことですか?
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Deprecated_and_obsolete_features#let
0892デフォルトの名無しさん
2016/05/19(木) 18:33:51.98ID:oGDIanH4let ブロックおよび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); } ←非推奨
0893デフォルトの名無しさん
2016/05/19(木) 18:43:50.85ID:N4p5+HHgC#のusingテメーもだ
0894デフォルトの名無しさん
2016/05/19(木) 18:46:44.53ID:LwVosxPnもっともらしい意見
0895デフォルトの名無しさん
2016/05/19(木) 19:35:45.59ID:j7aj50YW0896デフォルトの名無しさん
2016/05/19(木) 21:04:55.44ID:d6QVDzJQ0897デフォルトの名無しさん
2016/05/20(金) 00:46:31.23ID:hipHCKAvmozillaがlet文含めて多種多様な新機能の実証実験を進めてくれたからこそ今があるんだ。
ただ単にその成功物がlet文で、失敗物がlet式だったってだけ。
これに関して悪いもクソもない。
0898デフォルトの名無しさん
2016/05/20(金) 00:48:02.78ID:H7cAs/1Hできるだけキャッシュしたほうがいいってきいたんだけど、
どういうスタイルで書くのがいいの?
↓みたいな書き方でいいの?クロージャとかグチャグチャになってメモリリーク起きそうなんだけど
$(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());
・・・・
}
});
0899デフォルトの名無しさん
2016/05/20(金) 07:11:39.43ID:Wd6dbEDs余計な手間かけるようになるくらいならライブラリ使わなきゃいいだけ。
0900デフォルトの名無しさん
2016/05/20(金) 08:43:27.72ID:Q8wuf6+k2回以上参照する値は変数にキャッシュする
イベントハンドラ関数も同様
それから、変数のスコープ範囲をよく考える
全ての場所から参照できるようにグローバル変数化するのはDOMツリーから参照するよりは速いが、賢い手段とはいえない
クロージャや引数を使ってスコープ範囲を狭くしろ
event.dataやFinction#bindを使いこなせ
0901デフォルトの名無しさん
2016/05/20(金) 09:34:42.32ID:b4YdUNc7検索のコストが問題になってからやるべきこと。
HTMLがシンプルであれば、全要素が少ないから
たとえ全要素を捜査するようなものでもコストは低くなる。
キャッシュの前にやるべきことは、チェーンを使うことだ。
そしてイベントハンドラの中では$(this)を使うのは当然として、
$(this).find('・・・')を使えば、thisの中の要素のみを調べるから
これもid以外でも要素数が少ないから速くなる。
キャッシュ以前にそもそも検索自体を無くすことが第一。
その後で検索のコストが問題になるならば
キャッシュすることを考えろ。
0902デフォルトの名無しさん
2016/05/20(金) 09:42:42.61ID:gZ6OuKvF0903デフォルトの名無しさん
2016/05/20(金) 09:44:50.19ID:0SZSpLq/なんで?
0904デフォルトの名無しさん
2016/05/20(金) 10:28:40.39ID:+mY5/2X30905デフォルトの名無しさん
2016/05/20(金) 10:31:34.87ID:+mY5/2X3https://developer.mozilla.org/ja/docs/Web/API/KeyboardEvent#initKeyboardEvent()
これも非推奨なんですよ
JavaScriptで非推奨ではない方法ってありませんか?
目的はテスト用にkeydownイベントハンドラを動かしたいからです。
0906デフォルトの名無しさん
2016/05/20(金) 12:57:07.02ID:lJQ06Hkzローカル関数内でvarしてたらキャッシュにならない。
グローバルでvarしないと。
ただし要素の内容が変更されたときに
必ず更新してあげないといかんね。
0907デフォルトの名無しさん
2016/05/20(金) 13:25:36.56ID:uAQMGuDV代わりにセレクタ文字列を定数化するにしても、$(selector)するたびに検索コストかかるんならjQueryオブジェクトの方を定数化(キャッシュ)しとけばいいじゃんってのは自然な考えだと思うけど。
0908デフォルトの名無しさん
2016/05/20(金) 13:58:44.21ID:WbkkTWqucontext 配下の要素が検索対象になるからだろう
jQuery('.hoge', element);
0909デフォルトの名無しさん
2016/05/20(金) 14:20:12.83ID:QEbnF3Vk0910デフォルトの名無しさん
2016/05/20(金) 14:29:40.19ID:xL1EKSbmすげーっ
それって、2進数じゃんww
むしろ、CPU的思考ができるってことかwwww
0911デフォルトの名無しさん
2016/05/20(金) 14:46:10.42ID:SdkEgw4Mその考え方でいいと思う
jQueryはメソッドチェーンで変数の数を減らせるが、メソッドチェーンは好みがありそうだな
0912デフォルトの名無しさん
2016/05/20(金) 14:47:52.90ID:SdkEgw4Mそんなことはない
スコープチェーン上に変数があればいい
>>898のはさすがにキャッシュになってないとは思うが
0913デフォルトの名無しさん
2016/05/20(金) 18:42:24.79ID:3WWxWns1init系は全部非推奨。今はコンストラクタを使う。
0914デフォルトの名無しさん
2016/05/20(金) 20:02:55.90ID:ZmS5TVH1非推奨を避けるなら仕様書を読まないと
https://w3c.github.io/uievents/#interface-keyboardevent
https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/KeyboardEvent
0915デフォルトの名無しさん
2016/05/20(金) 20:19:39.26ID:qe62nTADこのへん。
https://developer.mozilla.org/en-US/docs/Web/API/Event/initEvent
ただし、テストには向かんよ。
「なぜかイベントが発火しない」
「画面に見えているものと触ってるものが違うのでイベントが起こらないはず」
「イベントハンドラを殺してあること自体の試験」
って試験だけ手でやるくらいなら、テストフレームワーク使って。
一回、珍しいケースですが…って検出した(つもりになってる)報告受けて調べたら
「キーボードイベントの帳尻が合ってないからイベントを拾わなくなる」
だった事があって、こっちの工数無駄にした事とかかなり責めた。
そういうはっきりしない状態に陥ったら安全側に倒れて、イベント拾わなくなるのは仕様だしね。
0916デフォルトの名無しさん
2016/05/20(金) 23:24:25.98ID:b4YdUNc7「早すぎる最適化は諸悪の根源である」という言葉を知らなければモグリだよ。
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(・・・);
}
だけど広いスコープで短い名前を割り当てるのは保守性の面から見て良くない。
短いスコープの中でのみ通用する話。そしてこれは知っての通りメソッドチェーンを使うことで変数は不要になる。
(つづく)
0917デフォルトの名無しさん
2016/05/20(金) 23:29:45.35ID:b4YdUNc7var $forms1 = $('.forms'); //・・・(1)
function foo() {
var $forms2 = $('.forms'); //・・・(2)
}
この(1)と(2)は意味が違う。(1)は最初に実行した時の要素をずっと指し示めしているのに対して、
(2)は現在のDOMの状態から新たに検索する。
DOMは変化するもの(言い方を変えるとグローバル変数のようにどこで誰が変更するかわからない)と言う
前提に立てば、最新のDOMの状態を参照した方がいい。
もともと早すぎる最適化をするのは、悪い習慣であることに加え
最適化をするリスクを考えると、問題にならない限りやらないほうがいいし、
そもそもちゃんとしたjQueryの書き方をしていれば、jQueryオブジェクトを
キャッシュするなんてことが必要になることが少ない。
0918デフォルトの名無しさん
2016/05/20(金) 23:33:28.30ID:b4YdUNc7> 最適化をするリスクを考えると、
リスクというより、jQueryオブジェクトをキャッシュするというのは
挙動を変えてしまう行為って言ったほうがいいかな。
0919デフォルトの名無しさん
2016/05/20(金) 23:46:06.92ID:b4YdUNc7言葉を知らんっていうのは本当に恥ずかしいことだよ。
それだけは強く言っておきたい。
もし反論したくなったら、何か書く前にこの言葉でググってからにしてくれ。
0920デフォルトの名無しさん
2016/05/21(土) 00:11:02.85ID:IZ4o6nB+保守的なコードが最適化したコードと同じなだけで、主軸は保守性って書いてあるのになぜクヌースの言葉が出るのか?
保守性の悪いコードは往々にしてアルゴリズムにも難がある事が多いのでパフォーマンスも悪くなる場合があるってことでしょ
0921デフォルトの名無しさん
2016/05/21(土) 00:23:02.83ID:q2Zh6d9K保守的かどうかは全く関係ない。
保守性の話がどうしてここで出てくるのか?
早すぎる最適化をすると、保守性が下がるという話なら
意味はわかるがね。
0922デフォルトの名無しさん
2016/05/21(土) 00:24:56.22ID:q2Zh6d9Kわかりやすく言おう。
変数に入れてキャッシュすることは
早くすること(最適化)にはつながるが、
保守性は下がる。
0923デフォルトの名無しさん
2016/05/21(土) 00:35:02.60ID:hclWowahブラウザキャッシュですら邪魔になることもあるし
0924デフォルトの名無しさん
2016/05/21(土) 00:46:08.12ID:TJV+wjVx0925デフォルトの名無しさん
2016/05/21(土) 00:58:37.95ID:tbwSFfzJ普通は人間の目で見てわかりやすいように変数を宣言する
パフォーマンスUPは二の次
0926デフォルトの名無しさん
2016/05/21(土) 01:01:16.37ID:rd5jwdZcお前が無能なだけなんじゃね
0927デフォルトの名無しさん
2016/05/21(土) 01:14:22.95ID:tbwSFfzJ初見で読む気が失せるレベルである
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);
}
}
0928デフォルトの名無しさん
2016/05/21(土) 01:16:18.17ID:tbwSFfzJ○ 変数を使わずに書いてみた
0929デフォルトの名無しさん
2016/05/21(土) 01:17:11.33ID:tbwSFfzJ× 変数を使わずに書いてみた
○ 出来るだけ変数を使わずに書いてみた
0930デフォルトの名無しさん
2016/05/21(土) 01:56:39.03ID:NEdgpV5s可読性が下がる上に、ループ上限数にカウンタはありえないんじゃないかな。
セレクタ使えば'hoge'の下の要素を全部、も書ける(#hoge > table :first-child > tr >td)んだし。
まあ俺なら'foo' を足しうるものに、中身無しの要素つけといて、その要素持ってるもの全部、って取る。
0931デフォルトの名無しさん
2016/05/21(土) 02:14:55.63ID:tbwSFfzJ適切なサンプルでなかったかもしれんが、table to array とか、二次元構造のまま扱いたい場合がある
Array#forEach を使ってもいいが、for文を2段重ねてゴリゴリやるのが好きなんだよな
対象の実装が許すなら for-of を使いたいところだ
何にしても可読性の為に深部のDOMノードを変数に束縛する必要があると思う
0932デフォルトの名無しさん
2016/05/21(土) 02:16:02.33ID:hclWowahキャッシュの話じゃなかったの?
ローカル変数は寿命が短いから保守性は問題にならないよ
0933デフォルトの名無しさん
2016/05/21(土) 02:40:07.59ID:tbwSFfzJ>>927と下記コードを比較してどちらが可読性に優れているかという話
var cell = document.getElementById('hoge').tBodies[0].rows[i].cells[j];
cell.classList.add('foo');
console.log(cell);
0934デフォルトの名無しさん
2016/05/21(土) 03:14:31.41ID:RrD1FkH/なんかちげーwww
0935デフォルトの名無しさん
2016/05/21(土) 03:35:25.29ID:t6RB8tdYfor (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);
}
}
0936デフォルトの名無しさん
2016/05/21(土) 04:48:47.21ID:q2Zh6d9K> 変数を使わずに書いてみた
> 初見で読む気が失せるレベルである
えとさぁ、なんでいま関係ない話してるわけ?
前提忘れたの?ねぇ?わざと?
今はキャッシュの話をしていたよね?
"ローカル" 変数に入れることで見やすくすることは
キャッシュとは別の話だって言ったよね?
あんた馬鹿なの?
変数に入れることは見やすくなるが、それは見やすくするためにやることであって
キャッシュは関係ない。キャッシュを活かすためにはローカル変数じゃすぐに消えてなくなるから意味が殆ど無い。
jQueryのキャッシュをローカルで?ローカルでやるならばチェーンを使えばいいって言ったはずだ。
だからjQueryでローカルでキャッシュするなんて意味がない。
わかりやすくするためにローカル変数を使うのはありだって言ったが、
これは俺がすでに言ったこと。キャッシュのためではないとも言ったはずだ。
えとさ、何回同じことを言わせるわけ?w
0937デフォルトの名無しさん
2016/05/21(土) 05:10:11.50ID:q2Zh6d9Kfor (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);
});
});
0938デフォルトの名無しさん
2016/05/21(土) 05:10:34.91ID:q2Zh6d9K$('#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
0939デフォルトの名無しさん
2016/05/21(土) 05:14:38.23ID:q2Zh6d9Kクラスとしてfoo追加するコードを参考してとっておきながら、
新たなjQueryのコードをbarで書いてたから直し忘れた。
0940デフォルトの名無しさん
2016/05/21(土) 05:23:11.23ID:q2Zh6d9K> 何にしても可読性の為に深部のDOMノードを変数に束縛する必要があると思う
話すり替えるな。いまキャッシュの話だったはずだ。
「早すぎる最適化は諸悪の根源である」って話をしているのに
なんで可読性の話にすり替える?
連想ゲームでもやってるのか?
キャッシュは変数に入れる → 変数に入れるならば、目的は全部同じ
キャッシュのためじゃないだろ。しかもそれはローカル変数ででいいだろ。
「説明用変数の導入」を俺は否定してないんだよ。
むやみにキャッシュのために、広いスコープの変数に入れておくのが
早すぎる最適化だって言ってる。普通はやってはいけない。
どうしても必要なときだけやる。
だから >>898 ができるだけキャッシュするとか言ってるから、
できるかぎりやらないが正しいと訂正してる。それが「早すぎる最適化」だからだ。
> jQueryのセレクタはid以外を指定する場合、検索のコストがかかるから
> できるだけキャッシュしたほうがいいってきいたんだけど、
早すぎる最適化じゃない使い方は最初から否定していない。
それはそれとして、jQueryではメソッドチェーンを使えば、
最適化じゃない「説明用変数」すらも無くせるから
ローカル変数であっても、いったん変数に入れておくことは殆ど無いと言ってる。
0941デフォルトの名無しさん
2016/05/21(土) 07:46:43.16ID:XRbWBdK9速くするための最適化と
早い段階での最適化を近藤していませんか?
0942デフォルトの名無しさん
2016/05/21(土) 07:49:03.87ID:+h4mdsTD>どうせID名が変われば、変数名も変わる。
うそだろ・・・?
仮に100箇所で $('#search_form')してたとして
'#search_form'→'#search_form1'に変えた時に
100箇所直さなくていいように
var $form = $('#search_form'); するんだろ・・・
普通の「固定値」なら100箇所じゃなくても2〜3箇所でも使ってるところがあった時点で
変数に入れるだろ
0943デフォルトの名無しさん
2016/05/21(土) 08:11:20.66ID:EoA45sOs複数箇所で使われてる固定値のjQueryオブジェクトなら
広いスコープで変数に入れて(擬似)定数にしといたほうが保守性もいいしキャッシュも効いて一石二鳥だよね?何か問題ある?
↓
でも、それってJSのクロージャの仕組みを考えるとメモリーリークとか危なくね?
ってことでしょ?
実際メモリーリークは起きるの?
0944デフォルトの名無しさん
2016/05/21(土) 08:35:24.16ID:FusMkK2d0945デフォルトの名無しさん
2016/05/21(土) 08:37:16.66ID:86JuHo21ローカル変数がキャッシュではないと思ってるのはお前だけ
(1) 関数A、関数Bで要素Cへ1回ずつ参照する
(2) 関数Aで要素Cに2回参照する
(1), (2) の参照コストの総計(2回)は変わらない
関数Aの中でローカル変数を使って要素Cへの参照回数を1回に抑えるのは意味がある
0946デフォルトの名無しさん
2016/05/21(土) 10:26:05.39ID:q2Zh6d9K> var $form = $('#search_form'); するんだろ・・・
それをやっていいのは、ローカル変数だけだ。
広いスコープで$formとあっても、それがなにか区別付かない。
それは、"保守性を下げる"
今はキャッシュの話をしている。
ローカル変数だとキャッシュとしての効果は
ローカルだけにとどまる。
そしてjQueryを使えばメソッドチェーンが使えるので
ローカルで変数に入れる必要はない。
何度も言ったことだ
0947デフォルトの名無しさん
2016/05/21(土) 10:27:55.15ID:q2Zh6d9K> 速くするための最適化と
> 早い段階での最適化を近藤していませんか?
速くする最適化でも
軽くする最適化でも
○○する最適化でも
どれも「最適化」だ。
これらの「最適化」を早いうちからするなって言うのが、
「早すぎる最適化は諸悪の根源である」という言葉だ。
0948デフォルトの名無しさん
2016/05/21(土) 10:29:34.18ID:q2Zh6d9K> ローカル変数がキャッシュではないと思ってるのはお前だけ
ローカル変数がキャッシュではないと言ったことは
一度もない。
jQueryはメソッドチェーンを使えるから、
ローカル変数にキャッシュしないくてよいという話だ。
あとローカル変数ってわかってるか?
別の関数では共有できないぞw
0949デフォルトの名無しさん
2016/05/21(土) 10:31:56.21ID:q2Zh6d9K$(セレクタ)のコストがかかるから「いったん変数に入れておくキャッシュ」の話だ。
忘れるなよ? 別の話にすり替えるな。
0950デフォルトの名無しさん
2016/05/21(土) 11:12:30.21ID:hclWowahinnerHTMLとかinputのvalueとかキャッシュしても
他の場所から実体を書き換えられたら整合性狂うからね
そこまでケアしてあげるとなると費用対効果が合わないと思う
0951デフォルトの名無しさん
2016/05/21(土) 11:18:11.26ID:q2Zh6d9K> キャッシュの結論としてはやらないほうがいいんだろうな
その通り。
というとどっかの馬鹿が変数に入れるなということなのか!?とか言い出すんだよな(苦笑)
「変数に入れるとキャッシュの効果もありまぁす」じゃねーんだよw
楽な方法をとった結果、たまたまそうなる話なんかどうでもいい。
キャッシュを理由に変数に入れておくべきか?とか言ってるから
キャッシュを理由に変数に入れるなんてことは、
「入れるべきもの」ではなく逆に「入れないべきもの」であって
必要になってからやれという話だと言ってるのに。
0952デフォルトの名無しさん
2016/05/21(土) 12:03:04.42ID:oKW2aYRF問題をゴチャゴチャにするなよ。
馬鹿大杉だろ。スレ読む気も起きんが。
0953デフォルトの名無しさん
2016/05/21(土) 12:13:36.28ID:rd5jwdZc一切更新しない気なのか?
0954デフォルトの名無しさん
2016/05/21(土) 12:43:50.40ID:ATvI0r3K0955デフォルトの名無しさん
2016/05/21(土) 12:49:10.28ID:HhzhPZLm0956デフォルトの名無しさん
2016/05/21(土) 12:49:16.18ID:q2Zh6d9Kキャッシュを更新しても無駄だぞw
だからキャッシュを使わない方がいい。
0957デフォルトの名無しさん
2016/05/21(土) 12:51:52.14ID:q2Zh6d9K整合性を保つには、シンプルな実装が一番いい。
だから、必要もないのに余計なキャッシュなんか
するべきじゃないって話をしているんだよ。
0958デフォルトの名無しさん
2016/05/21(土) 13:11:46.29ID:3KjPC0qs0959デフォルトの名無しさん
2016/05/21(土) 13:26:02.02ID:XOGjEe4x> ローカル変数がキャッシュではないと言ったことは一度もない。
おまえが>>936で「"ローカル" 変数に入れることで見やすくすることはキャッシュとは別の話だって言ったよね?」といったことに対してキャッシュとして機能する事例(>>945)で反論しただけ
日本語が読めない人の相手は本当に疲れるな
0960デフォルトの名無しさん
2016/05/21(土) 13:29:04.39ID:XOGjEe4x> これらの「最適化」を早いうちからするなって言うのが、
> 「早すぎる最適化は諸悪の根源である」という言葉だ。
その通りだが、逆に言えば最後に最適化してもいいので、それは最適化テクニックを否定する格言ではない
Charles Cook は「時期尚早な最適化」と称しているが、「しかし逆にシステムレベルのソフトウェアを設計するときは、性能問題を常に念頭に置くべきだ」ともいっている
jquery.jsやjQuery pluginはそれに近い立場にあるので常に最適化に気をつかうべきだろう
0961デフォルトの名無しさん
2016/05/21(土) 13:51:27.17ID:XRbWBdK90962デフォルトの名無しさん
2016/05/21(土) 14:02:20.57ID:XOGjEe4xドヤ顔で披露した割には最後のコードも問題があるな
> $('#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回以上登場するから同じ名前を何度も読まなくて済むように、同じオブジェクトを何度も参照しなくてすむように変数を定義する
0963デフォルトの名無しさん
2016/05/21(土) 14:16:15.05ID:+6m5wOVw0964デフォルトの名無しさん
2016/05/21(土) 14:16:40.41ID:q2Zh6d9K> おまえが>>936で「"ローカル" 変数に入れることで見やすくすることはキャッシュとは別の話だって
> 言ったよね?」といったことに対してキャッシュとして機能する事例(>>945)で反論しただけ
だから、それをするなって>>951で書いたんだよw
> というとどっかの馬鹿が変数に入れるなということなのか!?とか言い出すんだよな(苦笑)
> 「変数に入れるとキャッシュの効果もありまぁす」じゃねーんだよw
> 楽な方法をとった結果、たまたまそうなる話なんかどうでもいい。
やっぱりという感想しかねーよw
最初の>>898の話は「検索コストがかかるという理由で変数に入れたほうがいいですか?」だ。
スタート地点は「変数に入れない状態」その状態から初めて「検索コスト」だけを理由に
「変数に入れたほうがいいか」って質問だろ。
だからそれはやるなって俺は言ってるんだが、
お前の反論(?)は、(別の理由で)「変数に入れた状態」から初めて
「キャッシュの効果もありまぁす」じゃねーかw
全く議論になってないんだよ。
0965デフォルトの名無しさん
2016/05/21(土) 14:18:39.39ID:q2Zh6d9K> 子孫セレクタを使っているのでコストが重く、ネストされたtable要素でおかしくなる
ネストされた〜は単に > を付け忘れただけ。
で、いきなりコストの話をすんな。
「早すぎる最適化は諸悪の根源」だ。
それで問題がある場合に限って、最適化すればいいだろ。
HTMLが十分にシンプルであれば、コストが重いといっても
この程度じゃ1回あたり10nsも差は出ないから。
0966デフォルトの名無しさん
2016/05/21(土) 14:21:45.75ID:q2Zh6d9K> Charles Cook は「時期尚早な最適化」と称しているが、「しかし逆にシステムレベルのソフトウェアを設計するときは、性能問題を常に念頭に置くべきだ」ともいっている
念頭に置くのと、実際に行動するのは別の話。
この2つを区別できてないやつが多いんだよなw
念頭に置いて、問題なるんじゃね?って思って最初から最適化してしまうのが
「時期尚早な最適化」
念頭に置いた上で、問題が起きてから改善すればいい話だと俺は言ってる。
0967デフォルトの名無しさん
2016/05/21(土) 14:40:58.65ID:q2Zh6d9K念頭に置いた上で、問題が起きてから改善すればいい話だと俺は言ってる。
ここで、念頭に置くというのは、問題が起きてから改善すればいいが
その改善がしづらくなるような設計にはしないということ。
あとから簡単に問題を改善できることならば、
あとから問題を改善すればいい話。
念頭に置くというのは、最初に改善してしまうのではなくて、
改善しにくい方向にはしないということ。
0968デフォルトの名無しさん
2016/05/21(土) 15:33:15.09ID:gfKVobxg0969デフォルトの名無しさん
2016/05/21(土) 16:34:58.52ID:FusMkK2d0970デフォルトの名無しさん
2016/05/21(土) 16:35:02.87ID:KBCgSbCY取得はドム原理主義者得意の引っこ抜き。
発火タイミングはカーソルクリックや当たったら。
読み込み後発動発火。
スクロールで表示されたら発火(その場合、表示中の現在位置を取得が必要)
0971デフォルトの名無しさん
2016/05/21(土) 16:39:21.48ID:qqwYRUOUどういう事?contentに探したいものを含むaタグに、clickイベントを発火させればいいのでは?
キャッシュ論が続いているから思うけど、なるほどnodeのスレでjs使いがバカにされる訳だな。
domアクセスを最低限にしたいからキャッシュさせるさせない、セレクタの結果を保持するってその発想自体気が触れてる。
だから、変数とpost内容の不一致とかわけわからん類の障害出すんだろ。
中身になるべきものを持っといて、全部jsで書け。初期コンテンツだけ置いとけ。readyでもいで差し替えろ。
そうすりゃ差分なんか自分が知ってるんだから、どう更新すべきか自明だろ。
0972デフォルトの名無しさん
2016/05/21(土) 17:02:31.50ID:q2Zh6d9K> そうすりゃ差分なんか自分が知ってるんだから、どう更新すべきか自明だろ。
その説明じゃ誰にも通じないだろうなw
全部jsで書けとか言ってるから、逆に面倒になってるだけだろう。
0973デフォルトの名無しさん
2016/05/21(土) 18:57:20.03ID:qpbh63BAするな、はおまえの勝手な持論
DOMのキャッシュだけで「最適化が時期早々」の結論に持って行く流れがおかしい
必要なタイミングで最適化すれば問題はないのだから
そして、その時に様々な最適化の手法を知っているべきであって「早すぎる最適化」を理由に最適化テクニックを覚える機会を失うのは本末転倒
タイミングは重要だが、テクニックとしては知っておくべき
>>965
おまえは何かといえば「早すぎる最適化」しかいわないな
それはミスした時の言い訳に使われるものじゃないぞ
コストよりもセレクタが正しく機能しない事の方がに問題
0974デフォルトの名無しさん
2016/05/21(土) 22:48:21.57ID:q2Zh6d9K> コストよりもセレクタが正しく機能しない事の方がに問題
だからそう言ってるだろ。
問題になってない検索コストのために最適化することで
セレクタが正しく機能しない(可能性がある)
正しく機能させるために追加で考えなくちゃいけなくなるので
早すぎる最適化は何も良いことがない。
0975デフォルトの名無しさん
2016/05/21(土) 22:53:03.77ID:q2Zh6d9K> 必要なタイミングで最適化すれば問題はないのだから
だからそう言ってるだろ。
> jQueryのセレクタはid以外を指定する場合、検索のコストがかかるから
> できるだけキャッシュしたほうがいいってきいたんだけど、
とか言ってるから、それは必要なタイミングで最適化するべきことであって
通常は、できるだけキャッシュなんてことをする必要はない。と言ってる。
誰も変数に入れることが最適化のテクニックじゃないとか言ってない。
これを「最適化のテクニックなんだ。ほー。知らなかったー」とか思ってるのはお前だけ。
こっちも元レス人も最適化のテクニックだと知った上で、
元レスの人「できるだけやったほうが良い?」
俺「できるだけやらないほうが良い」
という会話をしてる。
お前は議論の内容から数歩遅れてるんだよw
0976デフォルトの名無しさん
2016/05/22(日) 07:40:36.92ID:LUJui5ls書いてみて、動作確認しようにも連携するファイルがまだできていないので、本当にできているのかいないのか、検討もつきません。
1つ目のファイルが動作確認で動くのかもわからないまま、他の連携ファイルを書くことは疑心暗鬼が増大しすぎて出来なくなってしまいます。
自分が書いたJavaScriptは動くのかを確認する方法がありましたら教えてください。
0977NAS6 ◆n3AmnVhjwc
2016/05/22(日) 08:35:04.93ID:KRZX8LQR0978デフォルトの名無しさん
2016/05/22(日) 08:57:55.90ID:JfPxy53K> 問題になってない検索コストのために最適化することで
> セレクタが正しく機能しない(可能性がある)
おまえが>>938セレクタの問題点を何も理解してないことはわかったのでもういい
0979デフォルトの名無しさん
2016/05/22(日) 11:41:58.58ID:Tdpnvle1> これを「最適化のテクニックなんだ。ほー。知らなかったー」とか思ってるのはお前だけ。
おまえは読解力を身に着けた方がいいんじゃね?
> 元レスの人「できるだけやったほうが良い?」
> 俺「できるだけやらないほうが良い」
アホか
「必要なタイミングで最適化した方がいい」が正だろ
やるかやらないかはその時に判断するもので「やらない」の結論を出すのは時期早々なんだよ
「早すぎる最適化」を持ち出してその結論なるんじゃ、おまえは「早すぎる最適化」の何を理解したんだ?といわれても仕方ないぞ
0980デフォルトの名無しさん
2016/05/22(日) 11:42:40.25ID:7nFY/y9y0981デフォルトの名無しさん
2016/05/22(日) 12:12:36.77ID:+7XP2PmG検証用テストコードの存在を知らなかったからです。
少しくぐってみます。ありがとう。
0982デフォルトの名無しさん
2016/05/22(日) 12:32:37.42ID:WwOYSBmyはぁ?
お前日本語読解力ないなw
できる限りやったほうが良い。の問いにYESって答えたら
できるかぎりやってしまうだろw
だからNOだよ。やらないほうが良い。
で、お前は反論するの?
しないなら黙ってろよw
0983デフォルトの名無しさん
2016/05/22(日) 12:34:37.15ID:WwOYSBmy結論出さなくても、どちらかを書かないといけないだろw
結論が出てない状態なら、最適化をやらない方を選べって言ってるんだよ。
早すぎる最適化は諸悪の根源だからだ。
0984デフォルトの名無しさん
2016/05/22(日) 12:48:36.51ID:XAOP4iva0985デフォルトの名無しさん
2016/05/22(日) 12:53:36.96ID:CHy0uo/r0986デフォルトの名無しさん
2016/05/22(日) 16:25:24.06ID:5k8BO1OFスタブのような、テストに都合のよい、返り値を返す関数を作る
関数から、10が返ってきたと想定する
a = 10;
ここで、テストでa、つまり10を使う
JSにも、JavaのJUnitみたいな、テスティング・フレームワークがあるのでは?
0987デフォルトの名無しさん
2016/05/22(日) 16:43:20.80ID:X0ga1YPw一般的には速度よりも厳密性、堅牢性、安全性、前方互換性、後方互換性あたりがより重要視されるからね。
ただし、これは保守性が下がらなければ最適化を施してもいいという事でもある。
代表的なのでは array.length を変数にキャッシュするテクニックがあるね。
ループ回数が10万回とか、著しく大きな回数参照される場合に大きな速度差として現れる。
>>945は参照回数の重要性を諭してくれているけど、ようするにローカル変数かグローバル変数かはどうでもよくて参照回数が多いところを最適化すべきなんだよね。
ボトルネックが初めから経験的についてわかっていれば、「早すぎる最適化」理論のタイミングを待たずして最適化を施すことも出来る。
結論としては>>898への答えは「経験的にボトルネックと分かる場所には即座について最適化しましょう。そうでなければ、プロトタイプを作ってからボトルネックを探しましょう。」
蛇足だけど、厳密性を上げることで結果的に速度的な最適化が施される場合もあって>>962のセレクタの指摘がそれ。
'#hoge>tbody:first-child>tr>td' を指定する事で>>927と等価になり、>>938では別の要素を拾ってしまう危険性がある。
厳密性を上げることで保守性が下がるわけでもなし、修正すべき箇所だと思うよ。
0988デフォルトの名無しさん
2016/05/22(日) 17:36:54.53ID:FTGg1fS80989デフォルトの名無しさん
2016/05/22(日) 17:45:35.33ID:Y6WruITb誰でもやるぞ。
0990デフォルトの名無しさん
2016/05/22(日) 17:53:12.31ID:tpad688i0991デフォルトの名無しさん
2016/05/22(日) 18:09:24.31ID:WwOYSBmy> 結論としては>>898への答えは「経験的にボトルネックと分かる場所には即座について最適化しましょう。
> そうでなければ、プロトタイプを作ってからボトルネックを探しましょう。」
何汎用的な話にしてるんだよw わざとらしいな。今はjQueryのセレクタの話だろ。
>>898の話は経験的にボトルネックと成りえない場所だから、
それを「できるだけキャッシュしたほうがいい」と言ってることに対して
経験的にボトルネックにならないから「できるだけしないほうがいい」と言ってるんだが。
0992デフォルトの名無しさん
2016/05/22(日) 18:11:58.37ID:WwOYSBmy今はarray.lengthの話はしてない
0993デフォルトの名無しさん
2016/05/22(日) 18:14:27.64ID:BAs222Jl0994デフォルトの名無しさん
2016/05/22(日) 18:15:11.70ID:E7LBxgcJ0995デフォルトの名無しさん
2016/05/22(日) 18:15:40.12ID:nPHdXwiF0996デフォルトの名無しさん
2016/05/22(日) 18:15:56.89ID:0PCmMNra0997デフォルトの名無しさん
2016/05/22(日) 18:16:13.55ID:5hn9uytB0998デフォルトの名無しさん
2016/05/22(日) 18:16:30.05ID:2Z+XxbZ+0999デフォルトの名無しさん
2016/05/22(日) 18:16:46.61ID:ax9WOfgG1000デフォルトの名無しさん
2016/05/22(日) 18:17:03.03ID:yL49bMPd10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
life time: 74日 17時間 18分 27秒
10021002
Over 1000Thread運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。