JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4のテンプレを読んだ上で質問してください。
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
+ JavaScript の質問用スレッド vol.123 +
http://peace.2ch.net/test/read.cgi/hp/1423915644/
(ライブラリ禁止条項は、多数の意見によって廃止されました。ライブラリの質問もOKです)
+ JavaScript の質問用スレッド vol.124 + [転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
2015/03/22(日) 16:19:45.75ID:nW67tQ7U
2015/03/22(日) 20:13:37.28ID:KcTTsKQ+
いちおつ
3デフォルトの名無しさん
2015/03/22(日) 20:33:02.07ID:1wCihzEM いちもつ
2015/03/24(火) 19:09:07.42ID:QjPcCXDL
ここは乗っとりたいという子が自演するスレだそうです
8 :Name_Not_Found:2015/03/22(日) 22:54:21.29 ID:???
>>7
ライブラリ禁止スレの次スレを乗っ取りたいからです。
9 :Name_Not_Found:2015/03/22(日) 23:09:36.52 ID:???
ついでにプログラム板も乗っ取りました。
8 :Name_Not_Found:2015/03/22(日) 22:54:21.29 ID:???
>>7
ライブラリ禁止スレの次スレを乗っ取りたいからです。
9 :Name_Not_Found:2015/03/22(日) 23:09:36.52 ID:???
ついでにプログラム板も乗っ取りました。
5デフォルトの名無しさん
2015/03/26(木) 20:09:55.85ID:xZ2N6kXB2015/03/26(木) 23:29:01.93ID:8cKgIlz7
「多数の意見は全部>>1」というネタだと思ってる
7デフォルトの名無しさん
2015/04/03(金) 09:58:58.17ID:3TYLs1en jqueryでイベントを要素につけられた状態の時、
その要素からそのイベントハンドラを探し出す方法ってどうやるの?
その要素からそのイベントハンドラを探し出す方法ってどうやるの?
2015/04/03(金) 13:04:41.65ID:JiHctTne
jQueryの質問は、
web制作管理板の以下のスレで、聞いて
jQuery ライブラリ 総合質問所 vol.4
ttp://peace.2ch.net/test/read.cgi/hp/1400313626/l50
+ JavaScript の質問用スレッド vol.121 +
ttp://peace.2ch.net/test/read.cgi/hp/1410603104/l50
web制作管理板の以下のスレで、聞いて
jQuery ライブラリ 総合質問所 vol.4
ttp://peace.2ch.net/test/read.cgi/hp/1400313626/l50
+ JavaScript の質問用スレッド vol.121 +
ttp://peace.2ch.net/test/read.cgi/hp/1410603104/l50
2015/04/03(金) 22:52:37.22ID:1AHy5fM3
全ブラウザで動くコードを生成してくれるaltjsの類ってありませんか
2015/04/03(金) 23:58:55.81ID:TGMPBffS
>>7
これ
http://stackoverflow.com/questions/2518421/jquery-find-events-handlers-registered-with-an-object
jQuery._data( elem, "events" );
これ
http://stackoverflow.com/questions/2518421/jquery-find-events-handlers-registered-with-an-object
jQuery._data( elem, "events" );
2015/04/04(土) 00:00:05.01ID:o7ivvLL/
2015/04/04(土) 13:21:34.69ID:vnA/3gIx
昨今に使われるブラウザだけでいいです
13デフォルトの名無しさん
2015/04/04(土) 23:11:10.83ID:gFSr8b2w >>10
おお。どもです。助かります。
おお。どもです。助かります。
2015/04/06(月) 00:26:13.24ID:SGL3xqRk
csvファイルを読み込むのが分からないぃ
2015/04/06(月) 08:27:19.32ID:j3xXbsUa
荒らしの立てたスレで語り合っても仕方なかろう
既存スレがまだ残っているというのに
+ JavaScript の質問用スレッド vol.117 +
http://peace.2ch.net/test/read.cgi/tech/1404146244/
既存スレがまだ残っているというのに
+ JavaScript の質問用スレッド vol.117 +
http://peace.2ch.net/test/read.cgi/tech/1404146244/
2015/04/06(月) 15:12:21.06ID:Ncf6BVzv
俺は CSV は Windows で JScript で ADO でやることに決めている。
これはつまりそこに適合しない物をまず適合するように微調整してから Windows 環境に投げるということを意味する。
これはつまりそこに適合しない物をまず適合するように微調整してから Windows 環境に投げるということを意味する。
2015/04/10(金) 22:40:56.57ID:rYFiGZvT
質問です。
自分の作る関数名に$って入れていいんですか?
自分の作る関数名に$って入れていいんですか?
2015/04/11(土) 01:17:32.92ID:jprZbhPv
>>17
JavaScriptの仕様的には入れても問題ない。
だが特殊なことでもない限りやめておけ。
jQueryやPrototypeは数くない例外だ
本当はやってはいけないことをやったが
それを大きく上回るメリットがあったから受けいれられた。
JavaScriptの仕様的には入れても問題ない。
だが特殊なことでもない限りやめておけ。
jQueryやPrototypeは数くない例外だ
本当はやってはいけないことをやったが
それを大きく上回るメリットがあったから受けいれられた。
2015/04/11(土) 04:20:03.52ID:SRcv3XHB
prototypejsはPHP/Ruby畑の外人がまだJSに精通する前に書いちゃったからああなった。
その流行を横目に見ながら露骨にライバル心を示しつつcssQueryを発展させてjQueryは世に出た。
jQueryのメンバーはJSに精通していたからcssQueryに$なんて使っていなかったがprototypejsで一般化してしまった$を使ってユーザー取り込みを図り成功した。
その流行を横目に見ながら露骨にライバル心を示しつつcssQueryを発展させてjQueryは世に出た。
jQueryのメンバーはJSに精通していたからcssQueryに$なんて使っていなかったがprototypejsで一般化してしまった$を使ってユーザー取り込みを図り成功した。
2015/04/11(土) 11:27:12.18ID:jprZbhPv
prototype.jsは、その名の通りプロトタイプを拡張して
標準のオブジェクトに便利メソッドを追加するライブラリ
jQueryはCSSセレクタを使って取得したオブジェクトを
関数型的に処理するライブラリ
どちらも同じ$で要素を取得できるけど、
ぜんぜん違うライブラリなんだよな。
標準のオブジェクトに便利メソッドを追加するライブラリ
jQueryはCSSセレクタを使って取得したオブジェクトを
関数型的に処理するライブラリ
どちらも同じ$で要素を取得できるけど、
ぜんぜん違うライブラリなんだよな。
2015/04/11(土) 14:12:17.35ID:7I+CDN4A
ありがとうございます。
いろんなサイトのソースを見てるとあきらかにjQueryじゃないのに$を使ってて疑問に思い質問しました。
いろんなサイトのソースを見てるとあきらかにjQueryじゃないのに$を使ってて疑問に思い質問しました。
2015/04/11(土) 16:33:35.56ID:jprZbhPv
$を含んだ関数は少ないが$を使った変数ならある。
オライリーから出てる本の何かで
jQueryオブジェクトは、DOM要素と区別しやすように$という
プリフィックスを変数名につけるというやり方が紹介されていた。
$が含まれた関数を使っているものとしては他にprototypeがあるな。
$が含まれた変数だとAngularJSが$scopeとか使ってる。
Backboneにも$elがあるな。
jQueryじゃなくてもその他のライブラリか、
もしくは変数ではないか?
オライリーから出てる本の何かで
jQueryオブジェクトは、DOM要素と区別しやすように$という
プリフィックスを変数名につけるというやり方が紹介されていた。
$が含まれた関数を使っているものとしては他にprototypeがあるな。
$が含まれた変数だとAngularJSが$scopeとか使ってる。
Backboneにも$elがあるな。
jQueryじゃなくてもその他のライブラリか、
もしくは変数ではないか?
2015/04/11(土) 21:48:02.79ID:IfDV7W2V
>>22
おまい詳しいなw
おまい詳しいなw
2015/04/12(日) 08:28:50.91ID:yV3Efnh+
2015/04/12(日) 09:08:40.96ID:4195b+YJ
2015/04/12(日) 10:13:21.19ID:v6BfYYFV
&{...} を流用すればよかったのに敢えて ${...} を作った慇懃無礼さには苦笑させられた。中の人はやっぱりprototype.js以降のニワカたちを小馬鹿にしている。
2015/04/12(日) 14:01:39.70ID:YLC9f6gG
>>25
多数派か少数派かはとうでもいいし、多数派が良いとは限らない
多数派か少数派かはとうでもいいし、多数派が良いとは限らない
2015/04/12(日) 15:08:57.03ID:4195b+YJ
だからといって少数派が良いってことにもならない。
どちらがいいかは確定しないが
確率的には多数派が良いことが多い。
ってわざわざ言わんとだめなの?
どちらがいいかは確定しないが
確率的には多数派が良いことが多い。
ってわざわざ言わんとだめなの?
2015/04/12(日) 15:09:51.67ID:4195b+YJ
>>26
説明が足りないので、頭悪そうに見えるよw
説明が足りないので、頭悪そうに見えるよw
2015/04/12(日) 19:23:34.86ID:pMOjV96Q
2015/04/12(日) 22:09:45.04ID:PnxXuVRG
>>30
何を言ってるのかわからん。
今から検討しろって話じゃない。
過去の人間が検討していいと判断して決めた結果だという話だ。
事実を言ってるだけだよ。
お前が過去の検討に参加してなくて知らないから
うんぬんかんぬんとかどうでもいいよ。
知らないなら口を挟まなくていい。
何を言ってるのかわからん。
今から検討しろって話じゃない。
過去の人間が検討していいと判断して決めた結果だという話だ。
事実を言ってるだけだよ。
お前が過去の検討に参加してなくて知らないから
うんぬんかんぬんとかどうでもいいよ。
知らないなら口を挟まなくていい。
2015/04/14(火) 07:03:32.01ID:Xiiro3Z7
2015/04/14(火) 20:30:58.43ID:oXtat876
2015/04/14(火) 21:00:24.90ID:Xiiro3Z7
2015/04/15(水) 05:03:46.77ID:w3nrhan7
まるで社会不適合者の言い合いだな。
2015/04/15(水) 06:14:37.98ID:rfbsbKb0
便所の落書きだもの
2015/04/15(水) 07:39:23.48ID:XXGDvkA3
2015/04/17(金) 01:21:22.87ID:zjvy+h06
>>37
だな。気持ち悪いな。
だな。気持ち悪いな。
2015/04/17(金) 22:38:21.31ID:UHVCP2Vk
自分でレスするなよw
2015/04/20(月) 08:10:16.03ID:ZV6mzr+5
2015/04/20(月) 11:07:30.92ID:09Jz6LCv
また自己レスかw
2015/08/20(木) 10:19:02.54ID:AI+Bnl3O
Jquery AJAX についてのスレが無さそうだったので
ここで投稿させて頂きます。
違ってたら誘導お願いいたします。
WEBフォームでinput type="file" のタグ1つと実行ボタン1つだけのアップロード画面があり、
そこで選択された内容をアップロードする画面をご想像ください。
ただし、同名のファイルがある場合上書き確認のConfirmダイアログを出し、OKならば登録用のサーブレットを呼び出すようなことをしたいと思っております。
このとき、Jqueryで一旦確認用のサーブレット(とりあえずJAVAですが原語はPHPでもなんでもOK)にファイル名を$.AJAXを使用し、ファイル名をinputタグから取得しPOSTとして投げて戻り値に
存在するかどうかを返してもらってから実際の登録部分にSubmitしています。
このとき最初の確認用サーブレットでは問題がなく、その後の登録用サーブレットで ファイルが取得できなく困っています。
(直接登録用サーブレットを呼べば問題なく登録できることは確認済みです。)
ファイルが最初の確認サーブレットに投げられていて(画面全ての内容がPOSTされていると思われる)、登録用サーブレットに送られないのかなと思っております。
これを回避する方法として、最初の確認の際にセッション名なりでファイルを保存し、実登録の際にそのファイルを使えばいいとも思うのですが
スマートでないのと、実運用が始まってしまっているのであまり手を入れたくありません。
フォームを追加してそこだけ投げれるようなことはできないかと考えましたがそれも難しそうです。
もし、同じような事を解決されている方がいらっしゃいましたらヒントでも構いませんのでご教示いただければと思います。
(Jqueryにこだわる必要はなく、自分でXMLHttpRequest を作ればいけるだろ的なものまで なにでも構いません。)
宜しくお願い致します。
ここで投稿させて頂きます。
違ってたら誘導お願いいたします。
WEBフォームでinput type="file" のタグ1つと実行ボタン1つだけのアップロード画面があり、
そこで選択された内容をアップロードする画面をご想像ください。
ただし、同名のファイルがある場合上書き確認のConfirmダイアログを出し、OKならば登録用のサーブレットを呼び出すようなことをしたいと思っております。
このとき、Jqueryで一旦確認用のサーブレット(とりあえずJAVAですが原語はPHPでもなんでもOK)にファイル名を$.AJAXを使用し、ファイル名をinputタグから取得しPOSTとして投げて戻り値に
存在するかどうかを返してもらってから実際の登録部分にSubmitしています。
このとき最初の確認用サーブレットでは問題がなく、その後の登録用サーブレットで ファイルが取得できなく困っています。
(直接登録用サーブレットを呼べば問題なく登録できることは確認済みです。)
ファイルが最初の確認サーブレットに投げられていて(画面全ての内容がPOSTされていると思われる)、登録用サーブレットに送られないのかなと思っております。
これを回避する方法として、最初の確認の際にセッション名なりでファイルを保存し、実登録の際にそのファイルを使えばいいとも思うのですが
スマートでないのと、実運用が始まってしまっているのであまり手を入れたくありません。
フォームを追加してそこだけ投げれるようなことはできないかと考えましたがそれも難しそうです。
もし、同じような事を解決されている方がいらっしゃいましたらヒントでも構いませんのでご教示いただければと思います。
(Jqueryにこだわる必要はなく、自分でXMLHttpRequest を作ればいけるだろ的なものまで なにでも構いません。)
宜しくお願い致します。
2015/08/20(木) 11:32:09.76ID:VSuX9QdW
最初のクリックでsubmitキャンセルしてないだけとか凡ミスじゃね
実際のコード見ないと何とも言えんが
実際のコード見ないと何とも言えんが
2015/08/20(木) 12:56:42.20ID:nUlMI+yi
>>42
処理の流れだけ見ると静的フォームなので jQuery の介在する余地がありませんが、k^jQuery はどの処理を担当してるのでしょう?
form送信先の書き換え?手動のsubmitはせず、ajax()?
本番用とは別にテスト用フォーム、コードを書いて切り分けした方が良さそうですが。
ちなみに、ライブラリスレはこちらです。
JavaScript ライブラリ総合質問所 vol.4
http://peace.2ch.net/test/read.cgi/hp/1400834117/
処理の流れだけ見ると静的フォームなので jQuery の介在する余地がありませんが、k^jQuery はどの処理を担当してるのでしょう?
form送信先の書き換え?手動のsubmitはせず、ajax()?
本番用とは別にテスト用フォーム、コードを書いて切り分けした方が良さそうですが。
ちなみに、ライブラリスレはこちらです。
JavaScript ライブラリ総合質問所 vol.4
http://peace.2ch.net/test/read.cgi/hp/1400834117/
2015/08/20(木) 13:51:38.33ID:AI+Bnl3O
2015/08/29(土) 18:00:04.15ID:haT66cVy
こっちだよ
+ JavaScript の質問用スレッド vol.126 + [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/hp/1439005423/
+ JavaScript の質問用スレッド vol.126 + [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/hp/1439005423/
2015/08/29(土) 19:21:14.40ID:voGiUd0a
現行スレ
+ JavaScript の質問用スレッド vol.125 + [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/hp/1436910657/
+ JavaScript の質問用スレッド vol.125 + [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/hp/1436910657/
48uy ◆Qawu9.2l1E
2015/11/22(日) 02:28:27.45ID:+n9aAbt6 Dart「js吐くンゴww」
Type・CoffeeScript「ワイも吐くンゴwwワイらの時代ンゴww」
Opal「ヨロシクニキーwwwwwwwwwwwwwwwwwwwwwwwww」
Ruby「おっOpalゥー!!!!!!wwwwwwwwwwwwwwwwwwwwwwwww」
Dart・Type・CoffeeScript「」
JavaScript「(=・ω・=)キャーRubyさんステキ!!」
Type・CoffeeScript「ワイも吐くンゴwwワイらの時代ンゴww」
Opal「ヨロシクニキーwwwwwwwwwwwwwwwwwwwwwwwww」
Ruby「おっOpalゥー!!!!!!wwwwwwwwwwwwwwwwwwwwwwwww」
Dart・Type・CoffeeScript「」
JavaScript「(=・ω・=)キャーRubyさんステキ!!」
2015/12/07(月) 07:29:54.21ID:7ldc1+VM
↓こちらへどうぞ
【node.js】サーバサイドjavascript 3【io.js】(c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1419673207/
【node.js】サーバサイドjavascript 3【io.js】(c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1419673207/
50デフォルトの名無しさん
2016/03/10(木) 21:26:41.83ID:AHFukXhf2016/03/15(火) 19:03:56.77ID:Ar6pzjDU
すいません、javascriptの文字列をRails側に渡したいのですがどうすればいいですか。
2016/03/15(火) 21:21:56.56ID:Ar6pzjDU
プログラム起動時ってなんのことですかTT
RoRでjavascriptと連携したいんですが。
RoRでjavascriptと連携したいんですが。
2016/03/15(火) 22:11:46.19ID:zLB+iwEH
Ajax
2016/03/15(火) 23:07:01.35ID:Ar6pzjDU
なんかよくわからないけど調べてみますTT
ありがとうございます。
ありがとうございます。
2016/04/12(火) 17:23:46.41ID:MBVppC7j
JavaScriptで数字を
0.0
0.
10.0
などと書くのは文法的に間違いですか?
0
10
が正解ですか?
0.0
0.
10.0
などと書くのは文法的に間違いですか?
0
10
が正解ですか?
2016/04/12(火) 20:58:37.86ID:fnwI8WJc
"10.0" - 0がスタンダードですよ
2016/04/12(火) 21:47:07.28ID:MBVppC7j
>>57
意味が分からん
意味が分からん
2016/04/12(火) 22:15:05.20ID:5vXA5zdQ
いや、君の質問も意味が判らん。
いずれかの処理系が文法エラーと言ってる?
いずれかの処理系が文法エラーと言ってる?
2016/04/12(火) 22:20:28.23ID:MBVppC7j
>>59
javascriptの文法で正しいのか間違っているのかと言う質問のどこに不明な点が有りますか?
javascriptの文法で正しいのか間違っているのかと言う質問のどこに不明な点が有りますか?
2016/04/13(水) 11:41:30.36ID:sN8Fln5r
>>56
試せばすぐにわかる
試せばすぐにわかる
2016/04/13(水) 12:25:44.95ID:+MVeX0Dr
2016/04/13(水) 14:16:16.59ID:nq2ahLv0
特定の処理系の話ではない。
文法的に正しいかどうかという質問だぞ。
誰も分からないようだ。
文法的に正しいかどうかという質問だぞ。
誰も分からないようだ。
2016/04/13(水) 15:39:09.55ID:DCkaewxP
ちなみに厳密な話をすると全部正しくない
2016/04/13(水) 18:37:49.66ID:+MVeX0Dr
>>63
質問の意図をはかりかねている。
何故
0.0
0.
10.0
と書くのが文法的に間違いだと思ったのか。
小数点以下が0なら整数で書くという意図なのか?
自分が書いたコードの中で、こう書いた行でエラーでも出たのか?
質問の意図をはかりかねている。
何故
0.0
0.
10.0
と書くのが文法的に間違いだと思ったのか。
小数点以下が0なら整数で書くという意図なのか?
自分が書いたコードの中で、こう書いた行でエラーでも出たのか?
2016/04/13(水) 21:35:12.12ID:nq2ahLv0
2016/04/13(水) 22:19:10.72ID:+MVeX0Dr
そりゃ不思議だろ。
試してみりゃスグに判る、文法的に間違いとは思えない事を
疑問に思いつつ、なぜそう考えるのか意図を隠してるんだから。
試してみりゃスグに判る、文法的に間違いとは思えない事を
疑問に思いつつ、なぜそう考えるのか意図を隠してるんだから。
2016/04/13(水) 23:05:51.57ID:4zzv2zOm
試せば一瞬で分かるようなことを質問をすること自体が不明
こいつは他の言語でも一々聞いて回ってるのか?
こいつは他の言語でも一々聞いて回ってるのか?
2016/04/13(水) 23:06:56.63ID:FRGxTn1f
質問すること自体が目的なんだろうな
70デフォルトの名無しさん
2016/04/13(水) 23:51:11.02ID:obtZo0BS 多分何もわからなくて困ってるだけだよ。
dotinstallって検索してみて
dotinstallって検索してみて
2016/04/14(木) 12:09:34.21ID:rJmmubWG
72デフォルトの名無しさん
2016/04/15(金) 03:57:45.31ID:goHZ67UE 整数なら、0, 10 と書く。
浮動小数点なら、0.0, 10.0 と書く
まあ、整数で書けるなら、整数で書いた方が、わかりやすそう
JSの内部では、どちらも数値型で、整数で書いても、
浮動小数点に変換されるから、見た目だけの問題だが
浮動小数点なら、0.0, 10.0 と書く
まあ、整数で書けるなら、整数で書いた方が、わかりやすそう
JSの内部では、どちらも数値型で、整数で書いても、
浮動小数点に変換されるから、見た目だけの問題だが
73デフォルトの名無しさん
2016/07/31(日) 11:42:53.41ID:Ik3c6uxO 質問です。
GetObject()メソッドで、オートメーションサーバーアプリケーションのオブジェクトを取得したい場合、
第2引数に、そのアプリケーションのクラスの文字列を指定すればいいということはわかったのですが、
肝心の「クラスの文字列」を知るには、どうすればいいのでしょうか?
具体的にやりたいことは、下記のサイトにある、
起動済みVisual Studio IDEにIDE外部からファイル名と行番号を指定してファイルをオープンさせる
というjava scriptを、Visual C# 2010 Express に対して使用したいと考えています。
スクリプトのコメントには、
Visual StudioおよびVisual Studio Expressの場合について、クラスの文字列が書かれているのですが、
Visual C# 2010 Expressの場合、これらの文字列ではオブジェクトを取得できませんでした。
試しに
"VCSExpress.DTE" ← VCSExpressはVisual C# 2010 Expressのexeファイル名
などとやってみたのですが、ダメでした。
制御したいアプリの、クラスの文字列は、どうすれば知ることができますか?
GetObject()メソッドで、オートメーションサーバーアプリケーションのオブジェクトを取得したい場合、
第2引数に、そのアプリケーションのクラスの文字列を指定すればいいということはわかったのですが、
肝心の「クラスの文字列」を知るには、どうすればいいのでしょうか?
具体的にやりたいことは、下記のサイトにある、
起動済みVisual Studio IDEにIDE外部からファイル名と行番号を指定してファイルをオープンさせる
というjava scriptを、Visual C# 2010 Express に対して使用したいと考えています。
スクリプトのコメントには、
Visual StudioおよびVisual Studio Expressの場合について、クラスの文字列が書かれているのですが、
Visual C# 2010 Expressの場合、これらの文字列ではオブジェクトを取得できませんでした。
試しに
"VCSExpress.DTE" ← VCSExpressはVisual C# 2010 Expressのexeファイル名
などとやってみたのですが、ダメでした。
制御したいアプリの、クラスの文字列は、どうすれば知ることができますか?
7473
2016/07/31(日) 11:52:23.16ID:Ik3c6uxO すみません、WebサイトのURLを貼り忘れました。
サイトのURLを書いて再度投稿ようとしたのですが、
なぜか「NGワード」と言われて投稿できないようです。
「"Visual Studio IDEにIDE外部から"」でググってトップに出てくるサイトが、該当サイトです。
サイトのURLを書いて再度投稿ようとしたのですが、
なぜか「NGワード」と言われて投稿できないようです。
「"Visual Studio IDEにIDE外部から"」でググってトップに出てくるサイトが、該当サイトです。
75デフォルトの名無しさん
2016/07/31(日) 15:15:06.89ID:JTJLwIya 【閲覧注意】戦闘に巻き込まれて頭部を切断された少女の遺体。これがリアルなシリア。
http://dqnworld.com/archives/34.html
これが本当の戦争の恐怖。この少女には大人の戦争は関係ないですからね。巻き込まれた少女の遺体を持って何か
を訴えかけている男たちの映像です。
【閲覧注意】シリアで反体制派の兵士が顔を吹き飛ばされてしまう瞬間。
http://dqnworld.com/archives/89.html
スローモーションが怖すぎる・・・。
【閲覧注意】アッラーフアクバルを叫びながら少年を斬首する映像を公開する。
http://dqnworld.com/archives/3975.html
点滴?のようなものが見えるんだけど。助けられた少年じゃなかったのか。助けられた所を強奪されてアッラーフ
アクバル?なのかしら・・・。
【閲覧注意】磔にされた戦闘機パイロットの遺体。シリアにて。
http://dqnworld.com/archives/3996.html
今日のアッラーフアクバル動画。
【閲覧注意】この首吊り自殺、足スレスレだけど本当に死ねてる?
http://dqnworld.com/archives/4001.html
中国で撮影された首吊り自殺の映像です。既に死んでいると書いてあるけど自分で揺らしているようにみない?www
妻の目の前でぶっ飛ばされた旦那さん?これは死んだかな(°_°)
http://dqnworld.com/archives/4004.html
さすがにこれだけ飛ばされたら助からないかな・・・。
【閲覧注意】あおむけでゲロを吐きまくっている男性。助けてやれよ・・・。窒息するぞ(@_@;)
http://dqnworld.com/archives/4007.html
これ結構危ないんじゃないの?撮影してないで横向きにしてやれよ。これ窒息する可能性あるだろ。
http://dqnworld.com/archives/34.html
これが本当の戦争の恐怖。この少女には大人の戦争は関係ないですからね。巻き込まれた少女の遺体を持って何か
を訴えかけている男たちの映像です。
【閲覧注意】シリアで反体制派の兵士が顔を吹き飛ばされてしまう瞬間。
http://dqnworld.com/archives/89.html
スローモーションが怖すぎる・・・。
【閲覧注意】アッラーフアクバルを叫びながら少年を斬首する映像を公開する。
http://dqnworld.com/archives/3975.html
点滴?のようなものが見えるんだけど。助けられた少年じゃなかったのか。助けられた所を強奪されてアッラーフ
アクバル?なのかしら・・・。
【閲覧注意】磔にされた戦闘機パイロットの遺体。シリアにて。
http://dqnworld.com/archives/3996.html
今日のアッラーフアクバル動画。
【閲覧注意】この首吊り自殺、足スレスレだけど本当に死ねてる?
http://dqnworld.com/archives/4001.html
中国で撮影された首吊り自殺の映像です。既に死んでいると書いてあるけど自分で揺らしているようにみない?www
妻の目の前でぶっ飛ばされた旦那さん?これは死んだかな(°_°)
http://dqnworld.com/archives/4004.html
さすがにこれだけ飛ばされたら助からないかな・・・。
【閲覧注意】あおむけでゲロを吐きまくっている男性。助けてやれよ・・・。窒息するぞ(@_@;)
http://dqnworld.com/archives/4007.html
これ結構危ないんじゃないの?撮影してないで横向きにしてやれよ。これ窒息する可能性あるだろ。
2016/07/31(日) 18:18:35.83ID:HfhW/0nQ
シリアの話なんか、しりぃゃあせん、
77デフォルトの名無しさん
2016/07/31(日) 18:51:03.01ID:BwQhep53 シリヤ
しりぃゃ
…
ぷぷぷー
しりぃゃ
…
ぷぷぷー
78デフォルトの名無しさん
2017/06/05(月) 17:51:29.40ID:JsHdDFEH ・devtoolsの cosoleでセレクタを指定してEnterした時に
出て来る、「context」と「__proto__」ってどういった情報なの?
中身の調べ方がよくわからない。
・jQueryの attrメソッドで、
<a href="">foo</a>
<a href="">bar</a>
<a href="" data-bazz="bazz">bazz</a>
に対して、
$('a').attr('data-bazz');
と指定しても "bazz" が取得できずに undifined が返ってくるのはどうして?
この指定は間違っているの?
出て来る、「context」と「__proto__」ってどういった情報なの?
中身の調べ方がよくわからない。
・jQueryの attrメソッドで、
<a href="">foo</a>
<a href="">bar</a>
<a href="" data-bazz="bazz">bazz</a>
に対して、
$('a').attr('data-bazz');
と指定しても "bazz" が取得できずに undifined が返ってくるのはどうして?
この指定は間違っているの?
2017/06/05(月) 22:34:43.28ID:hT8phHO4
>>78
attrはセレクタにマッチした最初の要素の属性を返すから。
ついでにいうと、data-bazzを取得するなら$('a').data('bazz')の方が良い。
こちらも同じく最初の要素の値を返すが。
attrはセレクタにマッチした最初の要素の属性を返すから。
ついでにいうと、data-bazzを取得するなら$('a').data('bazz')の方が良い。
こちらも同じく最初の要素の値を返すが。
2017/06/06(火) 05:36:12.23ID:Q6prYP2u
jQueryの質問は、web制作管理板の、jQueryのスレに書き込む方がいい
あっちの板の方が、人が多い
あっちの板の方が、人が多い
2017/06/06(火) 22:50:01.15ID:dRy+c6tT
俺は両方にいるからどっちでも構わんよ
82デフォルトの名無しさん
2017/06/07(水) 19:41:37.35ID:raeS6ONM ライブラリのドキュメントに書かれている通りの
オブジェクトやメソッド呼び出したら undifinedだった場合、
みんなはどうしてるの?
devtool上の sourceにはファイルが認識されていて入るが調べ方がわからない。
オブジェクトやメソッド呼び出したら undifinedだった場合、
みんなはどうしてるの?
devtool上の sourceにはファイルが認識されていて入るが調べ方がわからない。
2017/06/07(水) 20:39:18.86ID:SSzPpmQQ
undefined なら、エラー処理すれば?
2017/06/07(水) 21:40:57.76ID:smhEU+cH
JavascriptとPHPって併用するケースが少なくないから
自分が書いてるコードの言語を区別するって意味で
JavascriptではjQueryのセレクタ以外で$使わないのと
変数、関数のネーミング自体を
Javascript→functuonName(), variableName
PHP→functuon_name(), variable_name
みたいに区別する様なルール付け見たいな思想を持ってた方がいい
自分が書いてるコードの言語を区別するって意味で
JavascriptではjQueryのセレクタ以外で$使わないのと
変数、関数のネーミング自体を
Javascript→functuonName(), variableName
PHP→functuon_name(), variable_name
みたいに区別する様なルール付け見たいな思想を持ってた方がいい
2017/06/07(水) 22:02:14.26ID:kUtim7jQ
>>84
そういう細かい話は
(有名な)コーディングスタイルを採用する
という行為に内包されてる。
考えるべきは、どのコーディングスタイルを採用するかであって
その最低条件として、そのスタイルであることをチェックするツールが
存在すべきこととしてあれば、ネーミングルールとか些細なこととして考える必要がなくなる
そういう細かい話は
(有名な)コーディングスタイルを採用する
という行為に内包されてる。
考えるべきは、どのコーディングスタイルを採用するかであって
その最低条件として、そのスタイルであることをチェックするツールが
存在すべきこととしてあれば、ネーミングルールとか些細なこととして考える必要がなくなる
86デフォルトの名無しさん
2017/06/08(木) 20:06:05.36ID:Qf2wUSm0 動作確認ってdevtoolと JSFiddleのどっちがいいんかね?
2017/06/10(土) 02:42:09.35ID:68/Y0PIZ
2017/06/10(土) 06:52:35.55ID:TJyr+hnH
2017/06/10(土) 09:40:34.77ID:68/Y0PIZ
window.addEventlistener("load",function(){
の所で、TypeError: window.addEventlistener is not a function
と言うエラーです。
書き方が違うのかも知れません
の所で、TypeError: window.addEventlistener is not a function
と言うエラーです。
書き方が違うのかも知れません
2017/06/10(土) 10:29:18.29ID:yreH9tGs
listenerのlが小文字だからじゃない?
2017/06/10(土) 14:50:55.49ID:68/Y0PIZ
環境によりwebGL自体が使えないかも知れません
タイプミスが多いです。調べてみます。
ありがとうございました
タイプミスが多いです。調べてみます。
ありがとうございました
92デフォルトの名無しさん
2017/06/10(土) 23:31:32.86ID:pLUZQjiK var a = [ "a", "i", "u", "e", "o", "k", "s" ];
という配列があって、
例えば
var b = a[ 5 ] + a[ 2 ] + a[ 6 ] + a[ 2 ] + a[ 5 ] + a[ 4 ];
とするのと同じ結果を得たいのですが、
var b = a.hoge(5, 2, 6, 2, 5, 4).join("");
や
var b = hoge(a, 5, 2, 6, 2, 5, 4).join("");
や
var b = hoge(a, [ 5, 2, 6, 2, 5, 4 ]).join("");
みたいな感じに短くかけたりしますか?標準関数?を使って
という配列があって、
例えば
var b = a[ 5 ] + a[ 2 ] + a[ 6 ] + a[ 2 ] + a[ 5 ] + a[ 4 ];
とするのと同じ結果を得たいのですが、
var b = a.hoge(5, 2, 6, 2, 5, 4).join("");
や
var b = hoge(a, 5, 2, 6, 2, 5, 4).join("");
や
var b = hoge(a, [ 5, 2, 6, 2, 5, 4 ]).join("");
みたいな感じに短くかけたりしますか?標準関数?を使って
93デフォルトの名無しさん
2017/06/10(土) 23:47:05.80ID:ZRXNskxD >>92
[5,2,6,2,6,5,4].map(aIndex => a[aIndex]).join("");
[5,2,6,2,6,5,4].map(aIndex => a[aIndex]).join("");
2017/06/10(土) 23:47:27.24ID:TJyr+hnH
>>92
今回はlodashを使うまでもないな。残念。
var a = [ "a", "i", "u", "e", "o", "k", "s" ];
var b = [5, 2, 6, 2, 5, 4].map(function(i){ return a[i] }).join('');
これでできるよ。
最近のブラウザだけとかbabel、typescriptを使うのであれば、以下のようにもっと短く書ける
var b = [5, 2, 6, 2, 5, 4].map(i => a[i]).join('');
今回はlodashを使うまでもないな。残念。
var a = [ "a", "i", "u", "e", "o", "k", "s" ];
var b = [5, 2, 6, 2, 5, 4].map(function(i){ return a[i] }).join('');
これでできるよ。
最近のブラウザだけとかbabel、typescriptを使うのであれば、以下のようにもっと短く書ける
var b = [5, 2, 6, 2, 5, 4].map(i => a[i]).join('');
2017/06/10(土) 23:51:08.45ID:pLUZQjiK
>>93-94
ありがとうできました
ありがとうできました
96デフォルトの名無しさん
2017/06/11(日) 13:46:05.02ID:QGjh7z3B アンスコJS使えよ
2017/06/13(火) 23:29:09.86ID:LBkAuNWW
このためだけにアンスコを使うということはありえないと思う
既にアンスコが導入されている場合であれば当然使うべきだと思う
何も前提の無い単発の質問では備考程度に遠慮すべきだと思う
既にアンスコが導入されている場合であれば当然使うべきだと思う
何も前提の無い単発の質問では備考程度に遠慮すべきだと思う
2017/06/14(水) 01:03:55.89ID:pO0H9gtO
webでの動画閲覧環境を作っているのですが、
今動画を選択するたびにサーバにリクエストしてswfを毎回ロードしています。
swfオブジェクトをJavaScript側にロードさせておきたいのですが、swfオブジェクトは3つあります。
動画形式Aを再生するplayerA.swfと動画形式Bを再生するplayerB.swfと、
動画形式Cを再生するplayerA.swfのプラグインであるplayerC.swfです。
AとBは単純にswfを呼び出すだけなのですが、CはAに引数としてswfのpathを渡さないといけません。
ソースにすると、
<object data="playerA.swf">
<param name="FlashVars"plugin=playerC.swf">
</object>
こういう感じです。
playerCのバイナリをメモリにロードさせて、playerCという識別子を与えて、
js://playerCみたいにして呼び出したりする仕組みがあったりしませんか?
今動画を選択するたびにサーバにリクエストしてswfを毎回ロードしています。
swfオブジェクトをJavaScript側にロードさせておきたいのですが、swfオブジェクトは3つあります。
動画形式Aを再生するplayerA.swfと動画形式Bを再生するplayerB.swfと、
動画形式Cを再生するplayerA.swfのプラグインであるplayerC.swfです。
AとBは単純にswfを呼び出すだけなのですが、CはAに引数としてswfのpathを渡さないといけません。
ソースにすると、
<object data="playerA.swf">
<param name="FlashVars"plugin=playerC.swf">
</object>
こういう感じです。
playerCのバイナリをメモリにロードさせて、playerCという識別子を与えて、
js://playerCみたいにして呼び出したりする仕組みがあったりしませんか?
2017/06/14(水) 11:51:09.40ID:cht2PpgI
BlobURLがあるが、Flash側で受け付けてくれるかは分からんし、そんなことしなくても普通はキャッシュが効く
問題になるはずのないことが問題になっているのなら、何かが根本的におかしい
問題になるはずのないことが問題になっているのなら、何かが根本的におかしい
100デフォルトの名無しさん
2017/06/14(水) 12:05:55.97ID:pO0H9gtO101デフォルトの名無しさん
2017/06/15(木) 20:07:26.70ID:ZfWiPaVQ var aaa = {bbb:{ccc: null}};
function foo(objname) {
let objname = eval(obj);
let newvar = .........
return newvar;
}
eval("aaa.bbb.ccc="+foo("aaa.bbb.ccc"));
こういうコードでevalを使わないやり方は可能でしょうか?
単にaaa.bbb.ccc = newvar;
でいいじゃないかと思うかもしれませんが、
実際は変更したいオブジェクトを列挙してforで同じ関数(foo)を使って変更します
function foo(objname) {
let objname = eval(obj);
let newvar = .........
return newvar;
}
eval("aaa.bbb.ccc="+foo("aaa.bbb.ccc"));
こういうコードでevalを使わないやり方は可能でしょうか?
単にaaa.bbb.ccc = newvar;
でいいじゃないかと思うかもしれませんが、
実際は変更したいオブジェクトを列挙してforで同じ関数(foo)を使って変更します
102101
2017/06/15(木) 20:20:50.53ID:ZfWiPaVQ function foo(objname)のところ訂正です
let objname = eval(obj);
↓
let obj = eval(objname);
let objname = eval(obj);
↓
let obj = eval(objname);
103デフォルトの名無しさん
2017/06/15(木) 21:25:31.60ID:rHqMsizD function getValue(obj, objname){
return objname.split(".").reduce((o,p)=>o[p],obj);
}
obj = getValue("bbb.ccc", aaa);
実際にはnullチェックとか必要かもしれんが
return objname.split(".").reduce((o,p)=>o[p],obj);
}
obj = getValue("bbb.ccc", aaa);
実際にはnullチェックとか必要かもしれんが
104デフォルトの名無しさん
2017/06/15(木) 23:27:35.55ID:ZfWiPaVQ105デフォルトの名無しさん
2017/06/23(金) 09:16:19.02ID:v3IWYTSm 無名関数をやっぱ使いまわしたくなった時、みんなどうしてる?
106デフォルトの名無しさん
2017/06/23(金) 09:49:10.65ID:UGEgTjVj 名前つけるだけじゃん
107デフォルトの名無しさん
2017/06/25(日) 10:27:56.52ID:qM6DTshc 質問させて下さい
webアプリを作ってるんですが、なぜかiOSだけがセレクトボックスを選択直後にフリーズします。
エラーが出るのは以下のコードになります。
エラー回避策はエラー用の変数を作ってfor文の後でアラート表示させるようにしました。
これはiOSの仕様なのかコードの問題なのかどちらなのでしょうか?
ちなみにMac、Windows、アンドロイドは問題ありませんでした。
function selboxOnchange(){
var sel = document.getElementsByClassName('selelements');
for(var I = 0;i < sel.length;i++){
if(sel[I].selectedIndex == hoge[I].selectedIndex)
{
alert("コメント");
}
}
};
webアプリを作ってるんですが、なぜかiOSだけがセレクトボックスを選択直後にフリーズします。
エラーが出るのは以下のコードになります。
エラー回避策はエラー用の変数を作ってfor文の後でアラート表示させるようにしました。
これはiOSの仕様なのかコードの問題なのかどちらなのでしょうか?
ちなみにMac、Windows、アンドロイドは問題ありませんでした。
function selboxOnchange(){
var sel = document.getElementsByClassName('selelements');
for(var I = 0;i < sel.length;i++){
if(sel[I].selectedIndex == hoge[I].selectedIndex)
{
alert("コメント");
}
}
};
108107
2017/06/25(日) 10:29:12.22ID:qM6DTshc すみません。
一部、"i"が大文字になっていますが全て小文字です^^;
一部、"i"が大文字になっていますが全て小文字です^^;
109デフォルトの名無しさん
2017/06/25(日) 11:31:45.65ID:ErWDHGCB onchangeからワンテンポ置いてやってみたら?
110デフォルトの名無しさん
2017/06/28(水) 10:06:12.99ID:+O8L6XqQ 瑕疵担保責任(かしたんぽせきにん)
瑕疵担保責任のポイント
民法改正で事実上期限が「無制限」になった
バグや設計のミスなどは、瑕疵担保責任
納品物に不具合があれば損害賠償を請求される可能性もある
不具合を指摘されたらすぐに行動をとるべし
軽微なミスでも先延ばししない
http://www.atmarkit.co.jp/ait/articles/1706/26/news014.html
http://itpro.nikkeibp.co.jp/atcl/news/17/052601508/?rt=nocnt
改正法では欠陥に気付いてから1年以内にITベンダーに通知すれば、
通知後5年以内は修正や報酬の減額などを求められるとしている
全ベンダーが泣いた民法改正案を解説しよう その1
http://www.atmarkit.co.jp/ait/articles/1609/14/news009.html
http://www.atmarkit.co.jp/ait/articles/1609/14/news009_2.html
http://www.atmarkit.co.jp/ait/articles/1609/14/news009_3.html
ポイント1:修補や損害賠償、契約解除の期限がなくなる
従来あった「瑕疵担保期間は引き渡しから1年」という考えはなくなる。
条文にある通り、注文者は成果物が契約の目的に適合しないことを発見したら、
その「発見したときから1年以内」ならさまざまな請求ができる。発見が10年後なら、
11年後まで請求可能なのだ。
もっとも、現実のユーザーとベンダーの関係でも、たとえ契約書に「瑕疵担保責任期間は納品から1年と」明記されていても、
「2年目以降は不具合の修正に対応しない」と主張するベンダーはまれだ。多くの場合は、納品から何年たっても、
バグが見つかればユーザーのところに飛んで行き、無償で改修するだろう。
瑕疵担保責任のポイント
民法改正で事実上期限が「無制限」になった
バグや設計のミスなどは、瑕疵担保責任
納品物に不具合があれば損害賠償を請求される可能性もある
不具合を指摘されたらすぐに行動をとるべし
軽微なミスでも先延ばししない
http://www.atmarkit.co.jp/ait/articles/1706/26/news014.html
http://itpro.nikkeibp.co.jp/atcl/news/17/052601508/?rt=nocnt
改正法では欠陥に気付いてから1年以内にITベンダーに通知すれば、
通知後5年以内は修正や報酬の減額などを求められるとしている
全ベンダーが泣いた民法改正案を解説しよう その1
http://www.atmarkit.co.jp/ait/articles/1609/14/news009.html
http://www.atmarkit.co.jp/ait/articles/1609/14/news009_2.html
http://www.atmarkit.co.jp/ait/articles/1609/14/news009_3.html
ポイント1:修補や損害賠償、契約解除の期限がなくなる
従来あった「瑕疵担保期間は引き渡しから1年」という考えはなくなる。
条文にある通り、注文者は成果物が契約の目的に適合しないことを発見したら、
その「発見したときから1年以内」ならさまざまな請求ができる。発見が10年後なら、
11年後まで請求可能なのだ。
もっとも、現実のユーザーとベンダーの関係でも、たとえ契約書に「瑕疵担保責任期間は納品から1年と」明記されていても、
「2年目以降は不具合の修正に対応しない」と主張するベンダーはまれだ。多くの場合は、納品から何年たっても、
バグが見つかればユーザーのところに飛んで行き、無償で改修するだろう。
111デフォルトの名無しさん
2017/06/28(水) 10:06:47.78ID:+O8L6XqQ 366 :nobodyさん 2017/05/29(月) 16:07:39.16 ID:6v4UcGhE
今回の民法改正、ソフトウェア受託開発の場合、(検収後ではなく)バグ発見後1年瑕疵担保責任があるということで、地獄かよ、と思ったが、
元々問題が起きがちな受託案件がビジネス的に成立しなくなることで強制的に業界再編につながるなら良いことかもと思うようになった。
一部で地獄を見ても。
https://twitter.com/yukihiro_matz/status/869061879389343744
367 :nobodyさん 2017/05/29(月) 16:28:06.55 ID:6v4UcGhE
ニュース - 改正民法が成立、「瑕疵担保責任」などシステム開発契約に影響大:ITpro
http://b.hatena.ne.jp/entry/itpro.nikkeibp.co.jp/atcl/news/17/052601508/
372 :nobodyさん2017/05/29(月) 19:10:37.12 ID:???
Railsでシステム作って納品する
↓
Railsはマイナー、メジャーのアップデートが半年以内に必ずある
↓
客がアップデートする。アップデートによるエラーやバグ、動作の不具合に気づく
↓
気づいてから1年以内に通知すれば、5年間無料保証ゲット
↓
つまりRailsがアップデートするたびに、無償の修正作業を発生するということかな
376 :nobodyさん2017/05/30(火) 09:20:20.09 ID:L5po86sS
>>378>>379>>375
客が瑕疵担保責任法の法改正を知ってくると思うから、今後5年無償保証をお願いされるだろう
営業がそれでも仕事を取ってこれるか?たぶん無理だろう。無限の直していたら赤字になる。
こういう保守に弱い言語、ころころ仕様が変わる言語は仕事として発生しなくなってくる。
これは変わり目だ。お前らも早く逃げたほうがいいぞ。RubyやPHPなど動的言語は確実に廃れる。
保守に強い言語のみ生き残れる。
今回の民法改正、ソフトウェア受託開発の場合、(検収後ではなく)バグ発見後1年瑕疵担保責任があるということで、地獄かよ、と思ったが、
元々問題が起きがちな受託案件がビジネス的に成立しなくなることで強制的に業界再編につながるなら良いことかもと思うようになった。
一部で地獄を見ても。
https://twitter.com/yukihiro_matz/status/869061879389343744
367 :nobodyさん 2017/05/29(月) 16:28:06.55 ID:6v4UcGhE
ニュース - 改正民法が成立、「瑕疵担保責任」などシステム開発契約に影響大:ITpro
http://b.hatena.ne.jp/entry/itpro.nikkeibp.co.jp/atcl/news/17/052601508/
372 :nobodyさん2017/05/29(月) 19:10:37.12 ID:???
Railsでシステム作って納品する
↓
Railsはマイナー、メジャーのアップデートが半年以内に必ずある
↓
客がアップデートする。アップデートによるエラーやバグ、動作の不具合に気づく
↓
気づいてから1年以内に通知すれば、5年間無料保証ゲット
↓
つまりRailsがアップデートするたびに、無償の修正作業を発生するということかな
376 :nobodyさん2017/05/30(火) 09:20:20.09 ID:L5po86sS
>>378>>379>>375
客が瑕疵担保責任法の法改正を知ってくると思うから、今後5年無償保証をお願いされるだろう
営業がそれでも仕事を取ってこれるか?たぶん無理だろう。無限の直していたら赤字になる。
こういう保守に弱い言語、ころころ仕様が変わる言語は仕事として発生しなくなってくる。
これは変わり目だ。お前らも早く逃げたほうがいいぞ。RubyやPHPなど動的言語は確実に廃れる。
保守に強い言語のみ生き残れる。
112デフォルトの名無しさん
2017/06/29(木) 02:40:28.92ID:xsuY0QwQ 1年リースにするなり、売り切り型にしなきゃ良いだけなんだよなぁ
113デフォルトの名無しさん
2017/06/29(木) 04:37:42.46ID:iEm4e1Xa 質問です。次のコードはエラーになります。
var hoge=1;
if(true){
let hoge=2;
if(true){
let hoge=hoge;//エラーになる
console.log(hoge);//2が出力されて欲しい
}
}
グローバルでない、参照できる位置関係にある、同じ名前の変数を
参照することは可能ですか。どんな方法がありますか。
var hoge=1;
if(true){
let hoge=2;
if(true){
let hoge=hoge;//エラーになる
console.log(hoge);//2が出力されて欲しい
}
}
グローバルでない、参照できる位置関係にある、同じ名前の変数を
参照することは可能ですか。どんな方法がありますか。
114デフォルトの名無しさん
2017/06/29(木) 04:50:52.34ID:SZfALoS9 不可能です。そんなコードを書かないでください。
そしてlintツールを使ってください
そのようなコードを書いたら警告が出るようにできます。
そしてlintツールを使ってください
そのようなコードを書いたら警告が出るようにできます。
115デフォルトの名無しさん
2017/06/29(木) 06:29:52.69ID:xsuY0QwQ 基本的には不可能
ブロックを抜けたときにもとに戻したいのなら
入ったときにtmp変数にでも保存して出るときに書き戻すとかはできるよ
ブロックを抜けたときにもとに戻したいのなら
入ったときにtmp変数にでも保存して出るときに書き戻すとかはできるよ
117デフォルトの名無しさん
2017/08/16(水) 23:44:42.21ID:B52P9TPV ajaxでcors対応されていない他サイトのHTML取得したいんだけど、
jsonpで取得してもHTMLで返ってくるから
「Uncaught SyntaxError: Unexpected token <」
ってなるんだけど、回避方法って何があるの?
どなたか教えてください
jsonpで取得してもHTMLで返ってくるから
「Uncaught SyntaxError: Unexpected token <」
ってなるんだけど、回避方法って何があるの?
どなたか教えてください
118デフォルトの名無しさん
2017/08/17(木) 08:41:36.11ID:XHT+AQOf オフラインのローカルのみのjavascriptだけでは、
txt,tsv,csv,jsファイル等の読み込みは出来るようですが?
更新、書換え、上書き、書出しは出来ないのでしょうか?
txt,tsv,csv,jsファイル等の読み込みは出来るようですが?
更新、書換え、上書き、書出しは出来ないのでしょうか?
119デフォルトの名無しさん
2017/08/17(木) 12:28:20.03ID:Q7A+EFnW120デフォルトの名無しさん
2017/08/18(金) 07:13:33.61ID:r9Ad8ntQ ふだんExcelのVBA使いでこれならかなり本格的なこともできるスキルがあります。
でもWebに興味が出てきたのでJavascriptをメモ帳ではじめました。
不便なのはExcelVBAのような
・コード書くときのインテリセンスでの入力補助
・ブレークポイントを使ってF8のコマ送り
・F8のコマ送りのときに変数の値を見る
ことなどなど、メモ帳だから当然そんなのできません。
Javascriptの入門書はいつくか読んでますがそんな便利なことができる開発環境のことには全くふれていません。
Javascriptやってる人は開発ツールは何を使ってますか?
その使用率みたいな円グラフみたいなのもないでしょうか?
でもWebに興味が出てきたのでJavascriptをメモ帳ではじめました。
不便なのはExcelVBAのような
・コード書くときのインテリセンスでの入力補助
・ブレークポイントを使ってF8のコマ送り
・F8のコマ送りのときに変数の値を見る
ことなどなど、メモ帳だから当然そんなのできません。
Javascriptの入門書はいつくか読んでますがそんな便利なことができる開発環境のことには全くふれていません。
Javascriptやってる人は開発ツールは何を使ってますか?
その使用率みたいな円グラフみたいなのもないでしょうか?
121デフォルトの名無しさん
2017/08/18(金) 07:19:31.99ID:WJ2Inw/Y >>120
vs.code で開発して chrome で確認の組み合わせが最強だよ
やりたいことはそれで全て可能だと思う
最近作ったゲーム
https://hasemonmon.net/df5/
オールJavascriptだよ
これからはJavaScriptの時代だから勉強しといて損は無いと思う
vs.code で開発して chrome で確認の組み合わせが最強だよ
やりたいことはそれで全て可能だと思う
最近作ったゲーム
https://hasemonmon.net/df5/
オールJavascriptだよ
これからはJavaScriptの時代だから勉強しといて損は無いと思う
122デフォルトの名無しさん
2017/08/18(金) 08:38:59.20ID:MkY1nhvU IE11, Edge でも、F12 を押すと、「F12 開発者ツール」が起動する。
ブラウザで右クリックして「要素の検査」でも、起動する
F12 開発者ツールの使い方を参照
コンソール画面の下に、ソースコードを書いて、
「Ctrl + Enter」で実行できる
ブラウザで右クリックして「要素の検査」でも、起動する
F12 開発者ツールの使い方を参照
コンソール画面の下に、ソースコードを書いて、
「Ctrl + Enter」で実行できる
123デフォルトの名無しさん
2017/08/18(金) 09:39:41.35ID:r9Ad8ntQ >>121-122
ありがとうございます。研究してみます。
ありがとうございます。研究してみます。
124デフォルトの名無しさん
2017/08/22(火) 22:08:26.05ID:oX6Q/c4t 特定の文字({}等)で囲まれた部分 以外 の文字列を処理したい。replaceと正規表現で頑張ったのだけど、囲まれた部分まで文字列処理が行われてしまう。
どうしたら良いでしょうか?
どうしたら良いでしょうか?
125デフォルトの名無しさん
2017/08/23(水) 02:28:01.91ID:CbozNT9/ "abc{123}abc{123}".replace(/(.+?)({.+?})/g , "[$1]$2"); // -> "[abc]{123}[abc]{123}"
126デフォルトの名無しさん
2017/08/23(水) 05:26:51.23ID:3TTPCtU/ 'abc{12{3}} abc{}'.replace(/([^{}]+?)({.*?})/g, '[$1]$2') //-> "[abc]{12{3}}[ abc]{}"
あとは後ろを関数にしてうまく行きそうです。ちょっとやってみます。
ありがとう
あとは後ろを関数にしてうまく行きそうです。ちょっとやってみます。
ありがとう
127デフォルトの名無しさん
2017/08/23(水) 21:31:19.08ID:3TTPCtU/ 'abc{123}abc{123}abc'.replace(/(.+?)({.+?})/g, '[$1]$2') //-> "[abc]{123}[abc]{123}abc"
'abc123abc123abc'.replace(/(.+?)({.+?})/g, "[$1]$2") //-> "abc123abc123abc"
めっちゃ漏れるぅ
'abc123abc123abc'.replace(/(.+?)({.+?})/g, "[$1]$2") //-> "abc123abc123abc"
めっちゃ漏れるぅ
128デフォルトの名無しさん
2017/08/23(水) 22:26:45.25ID:ztktxeFn "{123}abc{{abc".replace(/(\{.*?})|(.+?(?=\{.*?})|.+)/g, (不特定, 特定, 非特定) => 特定 || `<${非特定}>`);
改行を跨ぐなら.を[\s\S]に
改行を跨ぐなら.を[\s\S]に
129デフォルトの名無しさん
2017/08/24(木) 21:10:27.75ID:xgssE3PG 正規表現は奥が深いですね……。これで入れ子でないキャプチャができるようになりました。
ありがとうございます。
入れ子はさすがに再帰しないと無理みたいですね。やってみます。
ありがとうございます。
入れ子はさすがに再帰しないと無理みたいですね。やってみます。
130デフォルトの名無しさん
2017/08/24(木) 21:29:44.67ID:LiUup8WI131デフォルトの名無しさん
2017/08/29(火) 00:56:58.36ID:87zhIwVV //ボールクラス
var Ball = function() {
this.x = 0;//X座標
this.dx = 0;//X方向の速度
this.y = 0;//Y座標
this.dy = 0;//Y方向の速度
}
// 移動後の座標を求めて、呼び出し元のoldPosの値を更新したい
Ball.prototype.move = function(position, move) {
position += move;
}
var ball = new Ball();
ball.move(this.x, this.dx);//X方向の移動
ball.move(this.y, this.dy);//Y方向の移動
こんな感じで、クラスのメンバ変数の組を入力引数に
特定処理(この例ではmove)をして、その結果でメンバ変数の値を更新しようと思っています。
が、上記のmoveメソッドだとpositionが値渡しなのでBallのx, y, zは更新されません。
プリミティブ型でなくオブジェクト型をmoveに渡せばいいかな、と思って
Ball.prototype.move = function(positionAndMove) {
positionAndMove.positon += positionAndMove.move;
}
ball.move({position:this.x, move:this.dx});//X方向の移動
こんな感じで改造してみました…が、moveに渡した無名オブジェクトのpositionは
更新されているようですが、その元ネタのBallのthis.xは更新されません。
(無名オブジェクトを作る際に、this.xはただの値渡しであって
「無名オブジェクトのposition」とのつながりは無い?)
this.xを複数回書かずに済む、なにかスマートな方法は無いでしょうか?
var Ball = function() {
this.x = 0;//X座標
this.dx = 0;//X方向の速度
this.y = 0;//Y座標
this.dy = 0;//Y方向の速度
}
// 移動後の座標を求めて、呼び出し元のoldPosの値を更新したい
Ball.prototype.move = function(position, move) {
position += move;
}
var ball = new Ball();
ball.move(this.x, this.dx);//X方向の移動
ball.move(this.y, this.dy);//Y方向の移動
こんな感じで、クラスのメンバ変数の組を入力引数に
特定処理(この例ではmove)をして、その結果でメンバ変数の値を更新しようと思っています。
が、上記のmoveメソッドだとpositionが値渡しなのでBallのx, y, zは更新されません。
プリミティブ型でなくオブジェクト型をmoveに渡せばいいかな、と思って
Ball.prototype.move = function(positionAndMove) {
positionAndMove.positon += positionAndMove.move;
}
ball.move({position:this.x, move:this.dx});//X方向の移動
こんな感じで改造してみました…が、moveに渡した無名オブジェクトのpositionは
更新されているようですが、その元ネタのBallのthis.xは更新されません。
(無名オブジェクトを作る際に、this.xはただの値渡しであって
「無名オブジェクトのposition」とのつながりは無い?)
this.xを複数回書かずに済む、なにかスマートな方法は無いでしょうか?
132デフォルトの名無しさん
2017/08/29(火) 02:54:17.65ID:XtumNqBw なんでthis側に座標を持つの?
133131
2017/08/29(火) 07:35:23.49ID:87zhIwVV 上記Ballが複数あって、それぞれが自分の座標をメンバ変数として
持ってるイメージなんですが、設計上変なのですか?
持ってるイメージなんですが、設計上変なのですか?
134デフォルトの名無しさん
2017/08/29(火) 10:22:05.85ID:s3JZZVoh Ball.prototype.move = function() {
this.x += this.dx;
this.y += this.dy;
}
ball.move();//移動
普通はこうする
this.x += this.dx;
this.y += this.dy;
}
ball.move();//移動
普通はこうする
135デフォルトの名無しさん
2017/08/29(火) 10:31:34.54ID:sgTDSrY2 今時はES2015はどのブラウザでも動くんだからclass構文使いなよ
136デフォルトの名無しさん
2017/08/29(火) 10:45:59.23ID:+5r2zOXc たとえば select にonchange つけたとき
selectで何が選ばれたか はイベントオブジェクトに入っていない?
selectで何が選ばれたか はイベントオブジェクトに入っていない?
137デフォルトの名無しさん
2017/08/29(火) 11:48:45.92ID:sgTDSrY2 >>133
>ball.move(this.x, this.dx);//X方向の移動
>ball.move(this.y, this.dy);//Y方向の移動
上記のコードのthisはballを指してない。実体はwindowだからundeifnedが入ってると思われる。
だからあえて踏襲するなら
ball.move(ball.x, ball.dx);//X方向の移動
ってことになる。
thisがそれぞれの文脈でどこを示しているかは勉強しなきゃいけないけど
thisがballのインスタンスになるのは今回はmoveの実装内だけ。
>ball.move(this.x, this.dx);//X方向の移動
>ball.move(this.y, this.dy);//Y方向の移動
上記のコードのthisはballを指してない。実体はwindowだからundeifnedが入ってると思われる。
だからあえて踏襲するなら
ball.move(ball.x, ball.dx);//X方向の移動
ってことになる。
thisがそれぞれの文脈でどこを示しているかは勉強しなきゃいけないけど
thisがballのインスタンスになるのは今回はmoveの実装内だけ。
138デフォルトの名無しさん
2017/08/29(火) 12:54:23.72ID:M5SL5GoR ゲームエンジンの、Cocos2d-x(JS版)では、
cc.Sprite(画像クラス)は、cc.Node から、派生しているけど、
cc.Node のメソッドも使える
getPosition(), getPositionX(), getPositionY(),
setPosition(newPosOrxValue, yValue), setPositionX(x), setPositionY(y)
getPosition()の戻り値は、cc.Point。
setPosition の引数は、(x, y)か、cc.Point(_x, _y)
this.setPosition(this.getPosition().x + 10, this.getPosition().y)
JavaScript版Cocos2d-x かんたんゲーム開発、2015
原題:Learning Cocos2d-JS Game Development
Emanuele Feronato 著
http://www.emanueleferonato.com/
著者のサイトでは、Phaser の作品が多い
Phaser(フェイザー)は、Pixi.jsをコアにして、
サウンドとか衝突判定とか物理演算を追加した2Dゲーム開発フレームワーク。
マルチプラットフォームで、オープンソース(MITライセンス)
cc.Sprite(画像クラス)は、cc.Node から、派生しているけど、
cc.Node のメソッドも使える
getPosition(), getPositionX(), getPositionY(),
setPosition(newPosOrxValue, yValue), setPositionX(x), setPositionY(y)
getPosition()の戻り値は、cc.Point。
setPosition の引数は、(x, y)か、cc.Point(_x, _y)
this.setPosition(this.getPosition().x + 10, this.getPosition().y)
JavaScript版Cocos2d-x かんたんゲーム開発、2015
原題:Learning Cocos2d-JS Game Development
Emanuele Feronato 著
http://www.emanueleferonato.com/
著者のサイトでは、Phaser の作品が多い
Phaser(フェイザー)は、Pixi.jsをコアにして、
サウンドとか衝突判定とか物理演算を追加した2Dゲーム開発フレームワーク。
マルチプラットフォームで、オープンソース(MITライセンス)
139131
2017/08/29(火) 20:54:57.78ID:87zhIwVV 皆様ありがとうございます。
結局、
var Ball = function() {
this.x = 0;//X座標
this.dx = 0;//X方向の速度
this.y = 0;//Y座標
this.dy = 0;//Y方向の速度
}を
var Ball = function() {
this.xParam = {position: 0, move: 0};//X座標(現在値、速度)
this.yParam = {position: 0, move: 0};//Y座標(現在値、速度)
}
と、各変数をオブジェクトに格納するよう変えて
Ball.prototype.move = function(positionAndMove) {
positionAndMove.positon += positionAndMove.move;
}
ball.move(ball.xParam);//X方向の移動
ball.move(ball.yParam);//Y方向の移動
のような感じでmoveを使用することで解決しました。
結局、
var Ball = function() {
this.x = 0;//X座標
this.dx = 0;//X方向の速度
this.y = 0;//Y座標
this.dy = 0;//Y方向の速度
}を
var Ball = function() {
this.xParam = {position: 0, move: 0};//X座標(現在値、速度)
this.yParam = {position: 0, move: 0};//Y座標(現在値、速度)
}
と、各変数をオブジェクトに格納するよう変えて
Ball.prototype.move = function(positionAndMove) {
positionAndMove.positon += positionAndMove.move;
}
ball.move(ball.xParam);//X方向の移動
ball.move(ball.yParam);//Y方向の移動
のような感じでmoveを使用することで解決しました。
140131
2017/08/29(火) 21:07:56.73ID:87zhIwVV >>134
サンプルくらい単純ならそうしたのですが、実際の処理はボール移動ではなくもっと複雑です。
x, y…に該当する概念が7個くらいあり、
moveメソッドで見る変数も各々5種類くらいあります。
なので、そのやり方だと感覚的には
Ball.prototype.move = function() {
this.x += Math.min(this.constX * this.dx , this.minX) + this.adjustX…;
this.y += Math.min(this.constY * this.dx , this.minY) + this.adjustY…;
(以下5行以上コピペして一部だけ書き直し)
}
みたいなコードになってしまいます。
>>135
たしかに、class構文を使った決めた方が保守性がよくなりそうですね。
>>136
すみません、即席サンプルの単純ミスです。
>>138
誤解与えてすみません。「ボール移動」はただの単純化説明用サンプルです。
実際のコードでやっていることは全く関係ないです。
サンプルくらい単純ならそうしたのですが、実際の処理はボール移動ではなくもっと複雑です。
x, y…に該当する概念が7個くらいあり、
moveメソッドで見る変数も各々5種類くらいあります。
なので、そのやり方だと感覚的には
Ball.prototype.move = function() {
this.x += Math.min(this.constX * this.dx , this.minX) + this.adjustX…;
this.y += Math.min(this.constY * this.dx , this.minY) + this.adjustY…;
(以下5行以上コピペして一部だけ書き直し)
}
みたいなコードになってしまいます。
>>135
たしかに、class構文を使った決めた方が保守性がよくなりそうですね。
>>136
すみません、即席サンプルの単純ミスです。
>>138
誤解与えてすみません。「ボール移動」はただの単純化説明用サンプルです。
実際のコードでやっていることは全く関係ないです。
141デフォルトの名無しさん
2017/08/30(水) 06:20:41.18ID:CwX8twwO プログラミングしていくうちに、
Unity, UE4, Cocos2d-x(JS版), Godot などの、
ゲームエンジンへ移行していくはず
日本人の開発者は、jsdo.it でも作っている。
他人のソースコードも見れる
Unity, UE4, Cocos2d-x(JS版), Godot などの、
ゲームエンジンへ移行していくはず
日本人の開発者は、jsdo.it でも作っている。
他人のソースコードも見れる
142デフォルトの名無しさん
2017/08/30(水) 19:39:07.01ID:ewso/TS4 エロ画像ブログ巡回してると画像の下に
「二次元画像詳細検索 Google画像検索」
とあって画像の詳細を知らんべることができる
これはJavaScriptで作られているようだが、詳細がよく解らない
どういった感じで作られているのでしょう?
「二次元画像詳細検索 Google画像検索」
とあって画像の詳細を知らんべることができる
これはJavaScriptで作られているようだが、詳細がよく解らない
どういった感じで作られているのでしょう?
143デフォルトの名無しさん
2017/08/30(水) 19:40:02.10ID:ewso/TS4 >知らんべる
調べる
調べる
144デフォルトの名無しさん
2017/08/31(木) 17:02:29.19ID:wDdLgKjd 高騰中の仮想通貨Liskがこれで作れるらしいんだが、詳細教えて
145デフォルトの名無しさん
2017/09/02(土) 13:56:45.51ID:JUCPFkwW JavaScript の勉強を始たばかりです。
言語のリファレンスになる本を探しているのですが、ないでしょうか?
いくつか買ってみたのですが、ブラウザオブジェクトの使い方ばかり書いてあります。(まあ仕方ないですが)
with文って何?とか、名前空間どうなってるのとか。昨日知ったのですが、セミコロンの自動挿入とか。そんなのが分かると嬉しいです。
よろしくお願いします。
言語のリファレンスになる本を探しているのですが、ないでしょうか?
いくつか買ってみたのですが、ブラウザオブジェクトの使い方ばかり書いてあります。(まあ仕方ないですが)
with文って何?とか、名前空間どうなってるのとか。昨日知ったのですが、セミコロンの自動挿入とか。そんなのが分かると嬉しいです。
よろしくお願いします。
146デフォルトの名無しさん
2017/09/02(土) 14:41:59.39ID:RyZz2Z0y mozilla developper network
147デフォルトの名無しさん
2017/09/02(土) 15:30:33.15ID:rpkOHCdV でかい本屋行ってサイか蝶が表紙の本をレジに持ってけ
148デフォルトの名無しさん
2017/09/02(土) 18:52:24.90ID:KtcnwiAx149デフォルトの名無しさん
2017/09/03(日) 12:00:03.28ID:xFesh8nH mdn以上に正確に書かれている書籍はない
あるなら教えてくれ
ECMS scriptの仕様書は実装者向けで難解だ
mdnで曖昧な時に頑張って読む
あるなら教えてくれ
ECMS scriptの仕様書は実装者向けで難解だ
mdnで曖昧な時に頑張って読む
150デフォルトの名無しさん
2017/09/03(日) 12:01:25.10ID:DIhXI1rF JavaScriptは仕様以外の部分が多いので
仕様だけをみても使い物にならんからな。
例えばブラウザの機能はすべてJavaScriptの仕様の範囲外だ
仕様だけをみても使い物にならんからな。
例えばブラウザの機能はすべてJavaScriptの仕様の範囲外だ
151デフォルトの名無しさん
2017/09/03(日) 13:05:04.70ID:uToqw/FJ 関数呼び出しで戻り値を受け取らなければ
その関数は今呼んだ関数が終わってから実行されるんですか?
その関数は今呼んだ関数が終わってから実行されるんですか?
152デフォルトの名無しさん
2017/09/03(日) 13:18:23.42ID:xFesh8nH no
153デフォルトの名無しさん
2017/09/03(日) 14:50:30.58ID:xFesh8nH154デフォルトの名無しさん
2017/09/03(日) 15:00:42.17ID:DIhXI1rF つまりどの言語でも
仕様だけを見ても使い物にはならないと言ってる
仕様だけを見ても使い物にはならないと言ってる
155デフォルトの名無しさん
2017/09/03(日) 15:25:00.82ID:qkpMKllN156デフォルトの名無しさん
2017/09/03(日) 17:39:25.34ID:xFesh8nH > 仕様だけを見ても使い物にはならないと言ってる
そうは言っとらん
> JavaScriptは仕様以外の部分が多いので
> 仕様だけをみても使い物にならんからな。
javascriptが特殊だと言っている
そうは言っとらん
> JavaScriptは仕様以外の部分が多いので
> 仕様だけをみても使い物にならんからな。
javascriptが特殊だと言っている
157デフォルトの名無しさん
2017/09/03(日) 21:39:39.67ID:cT8O4Ek3 つまり、
韓国人死ね
だろ
韓国人死ね
だろ
158デフォルトの名無しさん
2017/09/04(月) 09:16:19.32ID:WrS0lJ8W うむ、助詞は日本語ネイティヴ以外には難しいと言い訳はできるな
「javascriptも」のつもりで「javascriptは」と書いてしまった
朝鮮人ならありえる
「javascriptも」のつもりで「javascriptは」と書いてしまった
朝鮮人ならありえる
159デフォルトの名無しさん
2017/09/04(月) 23:45:53.39ID:ERq8KL0N 違うぞ。
指摘されても認めてないだろ。本質的に分かってないんだよ。
間違ったんじゃない。間違っていることを認識出来てないんだ。
そして在日韓国人は「日本語が下手糞なこと」を絶対に認めない。
なぜならそれは彼等の存在意義に関わるかららしい。
(日本語が上手いというのが唯一本国韓国人に対するアピールポイントらしい)
だが実際はここで見れば分かるとおり、日本語も韓国語も駄目駄目だ。
だから彼等はまともな(厳密な)議論をしたことがない、というか成立しない。
つまり彼等は議論が出来ない、というか、
彼等内で行われている議論は全く正確さ/厳密さを欠いている物でしかない。
そして彼等はそれで議論が出来ていると勘違いしている。声闘の文化もあるしね。
これが本質的な問題で、いわゆる日本人の議論下手とは全く異なる方向なんだ。
日本人のは単に場慣れしてない、
或いは色々面倒になることを避けて意見を言わない、またはオブラートに包む、
みたいな感じだが、こちらが言ったことは確実に通じていて、
下手すれば助詞の一つで揚げ足を取られたり、いきなりブチ切れられたりする。
これなら放置しておいても場数を詰めば上達するし、
2chに来ている連中はそこそこ出来る奴が多いのも事実だ。
韓国人のは本気で通じてないんだよ。その知能がないんだ。
だから厳密な/正確な議論が出来る人達にとっては邪魔でしかない。
ところが彼等はそれで出来ていると勘違いしている。
というかそれ以上の厳密さで議論する場に参加したことがないから、
そういうまともな議論が出来る(存在する)ことを知らないんだよ。
だから自分たちのレベルが低いことを認識出来ない。
当然ここと同じ事を彼等が得意な(つもりの)韓国語でもやっているはずだし、
同様に本国韓国人にも嫌われるのは自然な成り行きだ。
もちろん他の理由も多々あるにしてもね。
韓国人死ね
指摘されても認めてないだろ。本質的に分かってないんだよ。
間違ったんじゃない。間違っていることを認識出来てないんだ。
そして在日韓国人は「日本語が下手糞なこと」を絶対に認めない。
なぜならそれは彼等の存在意義に関わるかららしい。
(日本語が上手いというのが唯一本国韓国人に対するアピールポイントらしい)
だが実際はここで見れば分かるとおり、日本語も韓国語も駄目駄目だ。
だから彼等はまともな(厳密な)議論をしたことがない、というか成立しない。
つまり彼等は議論が出来ない、というか、
彼等内で行われている議論は全く正確さ/厳密さを欠いている物でしかない。
そして彼等はそれで議論が出来ていると勘違いしている。声闘の文化もあるしね。
これが本質的な問題で、いわゆる日本人の議論下手とは全く異なる方向なんだ。
日本人のは単に場慣れしてない、
或いは色々面倒になることを避けて意見を言わない、またはオブラートに包む、
みたいな感じだが、こちらが言ったことは確実に通じていて、
下手すれば助詞の一つで揚げ足を取られたり、いきなりブチ切れられたりする。
これなら放置しておいても場数を詰めば上達するし、
2chに来ている連中はそこそこ出来る奴が多いのも事実だ。
韓国人のは本気で通じてないんだよ。その知能がないんだ。
だから厳密な/正確な議論が出来る人達にとっては邪魔でしかない。
ところが彼等はそれで出来ていると勘違いしている。
というかそれ以上の厳密さで議論する場に参加したことがないから、
そういうまともな議論が出来る(存在する)ことを知らないんだよ。
だから自分たちのレベルが低いことを認識出来ない。
当然ここと同じ事を彼等が得意な(つもりの)韓国語でもやっているはずだし、
同様に本国韓国人にも嫌われるのは自然な成り行きだ。
もちろん他の理由も多々あるにしてもね。
韓国人死ね
160デフォルトの名無しさん
2017/09/04(月) 23:46:16.66ID:ERq8KL0N しかしこれは本当に本質的な問題で、ここでプチ日本語講座をやったところで解決しない。
馬鹿が馬鹿であることを自覚出来ないってのは常だからね。
短期的な解決法はとにかく韓国人というか
「議論が成立するレベルの日本語が使えない奴」を排除していくことだ。
これについては俺は何度も「お前ら自身が損をするから発言を慎め」と言ってきたが彼等は聞かない。
(まあ彼等は上手いつもりだからそうなるのも自然ではあるのだが)
だからどうにもならないよ。
レベルの低い奴が混ざるだけで迷惑だ、ということを彼等は認識出来てない。
そして彼等(というか在日韓国人コミュニティ)はこの理由で
「正統に排除」されるのを差別だといってゴネてきた連中だ。
東大が入試で馬鹿を「正統に排除」するのは区別であり、差別ではない。
同様に、2chで2chに不十分な日本語の奴を排除するのも区別でしかない。
彼等にはこれを理解する知能すらないんだ。
マジで彼等は腐っているし、本国韓国人からもゴミ扱いされて当然だ。
マジで韓国人は死ね
一朝一夕には解決しない。話しても通じない。
となると、「在日韓国人はいるだけで迷惑だ」ということを地道に彼等に教えてやるしかない。
在日韓国人が全員自殺してくれるのが一番助かるんだが。
なんつーか、彼等は迷惑行為を行っているのだが、その自覚がないんだよ。
そりゃ今後とも在日韓国人は死ねと言われ続けるだろうし、至極当然の成り行きでしかないのだが、
彼等はそれを差別だといってゴネるだろうし、
それに対して余計にブチ切れる奴もでるだろうしで、悪循環だね。
在日韓国人が全員自殺してこの悪循環を断ち切ることを切に願う。
つか、ゴキブリは半島に帰れマジで。
馬鹿が馬鹿であることを自覚出来ないってのは常だからね。
短期的な解決法はとにかく韓国人というか
「議論が成立するレベルの日本語が使えない奴」を排除していくことだ。
これについては俺は何度も「お前ら自身が損をするから発言を慎め」と言ってきたが彼等は聞かない。
(まあ彼等は上手いつもりだからそうなるのも自然ではあるのだが)
だからどうにもならないよ。
レベルの低い奴が混ざるだけで迷惑だ、ということを彼等は認識出来てない。
そして彼等(というか在日韓国人コミュニティ)はこの理由で
「正統に排除」されるのを差別だといってゴネてきた連中だ。
東大が入試で馬鹿を「正統に排除」するのは区別であり、差別ではない。
同様に、2chで2chに不十分な日本語の奴を排除するのも区別でしかない。
彼等にはこれを理解する知能すらないんだ。
マジで彼等は腐っているし、本国韓国人からもゴミ扱いされて当然だ。
マジで韓国人は死ね
一朝一夕には解決しない。話しても通じない。
となると、「在日韓国人はいるだけで迷惑だ」ということを地道に彼等に教えてやるしかない。
在日韓国人が全員自殺してくれるのが一番助かるんだが。
なんつーか、彼等は迷惑行為を行っているのだが、その自覚がないんだよ。
そりゃ今後とも在日韓国人は死ねと言われ続けるだろうし、至極当然の成り行きでしかないのだが、
彼等はそれを差別だといってゴネるだろうし、
それに対して余計にブチ切れる奴もでるだろうしで、悪循環だね。
在日韓国人が全員自殺してこの悪循環を断ち切ることを切に願う。
つか、ゴキブリは半島に帰れマジで。
161デフォルトの名無しさん
2017/09/05(火) 00:05:35.88ID:de0tAs+m 書き込み増えてないのに更新来てると思ったらそういう事か
162デフォルトの名無しさん
2017/09/05(火) 02:35:39.68ID:v/8MOc6/163デフォルトの名無しさん
2017/09/05(火) 02:36:12.97ID:v/8MOc6/ × 韓国人博士の商業
○ 韓国人博士の称号
○ 韓国人博士の称号
164デフォルトの名無しさん
2017/09/05(火) 23:21:08.39ID:aMThYtmb 俺は韓国人について詳しいのではなく、単純に状況を分析出来るだけだけどな。
匿名掲示板では不思議なことは起こらない、俺はこの点が気に入っている。
在日韓国人が本国でも嫌われているのは、在日韓国人自体がマジで糞だからだよ。
あらゆる点でね。ここに挙げたのも一つ。
C#のスレでも暴れてるだろ。
http://mevius.2ch.net/test/read.cgi/tech/1492843013/783
だが他の連中が呆れている。理由は、
1) そもそも日本人なら脳内補完されてしまう(気づかないかも、程度の誤字)
2) C#userなら当然何のことを言っているのか分かる
だからそこをあげつらうのはなんの為?って感じになってる。
ところが当の本人は本気で分かってなくて、煽って答えを出させようとしている。
マジで糞だろ。死ねでしかない。
在日韓国人みたいな馬鹿はいるだけで迷惑だ。
だから彼等が嫌われるのは当然であり、これは区別であり、差別ではない。
ということを周知徹底し、韓国人を無視するようにしていかないといけない。
つーか、そうしないと議論が進まない。
韓国人死ね
つっても結局は非韓三原則、これが一番分かりやすいのだが。
韓国人に対しては、
助けない、教えない、関わらない
しっかりと韓国人がクズであることを指摘しつつ、(攻撃されたら反論)
後は放置して勝手に死ぬのを待て、ってことだね。(助けない、教えない、関わらない)
韓国人に対してエネルギーを使うこと自体が勿体ない。
匿名掲示板では不思議なことは起こらない、俺はこの点が気に入っている。
在日韓国人が本国でも嫌われているのは、在日韓国人自体がマジで糞だからだよ。
あらゆる点でね。ここに挙げたのも一つ。
C#のスレでも暴れてるだろ。
http://mevius.2ch.net/test/read.cgi/tech/1492843013/783
だが他の連中が呆れている。理由は、
1) そもそも日本人なら脳内補完されてしまう(気づかないかも、程度の誤字)
2) C#userなら当然何のことを言っているのか分かる
だからそこをあげつらうのはなんの為?って感じになってる。
ところが当の本人は本気で分かってなくて、煽って答えを出させようとしている。
マジで糞だろ。死ねでしかない。
在日韓国人みたいな馬鹿はいるだけで迷惑だ。
だから彼等が嫌われるのは当然であり、これは区別であり、差別ではない。
ということを周知徹底し、韓国人を無視するようにしていかないといけない。
つーか、そうしないと議論が進まない。
韓国人死ね
つっても結局は非韓三原則、これが一番分かりやすいのだが。
韓国人に対しては、
助けない、教えない、関わらない
しっかりと韓国人がクズであることを指摘しつつ、(攻撃されたら反論)
後は放置して勝手に死ぬのを待て、ってことだね。(助けない、教えない、関わらない)
韓国人に対してエネルギーを使うこと自体が勿体ない。
165デフォルトの名無しさん
2017/09/20(水) 21:50:19.54ID:ZyDsW00i 文字数制限の為、二回に分けて書き込ませていただきます。
各テーブルの背景色を条件に処理を分けたいと思い、いろいろと試していますが上手くいきません。
テスト用に書いたもので、背景色(#000000または#ffffff)ごとに合計値をresuleBまたはresultWに合計していきたいのですが、
背景色の取得がうまくいっていないようです。
今後別の処理を記述するため、できれば背景色をキーに分岐を行いたいと思っています。
解決の為、アドバイスをいただければと思います。
よろしくお願いいたします。
各テーブルの背景色を条件に処理を分けたいと思い、いろいろと試していますが上手くいきません。
テスト用に書いたもので、背景色(#000000または#ffffff)ごとに合計値をresuleBまたはresultWに合計していきたいのですが、
背景色の取得がうまくいっていないようです。
今後別の処理を記述するため、できれば背景色をキーに分岐を行いたいと思っています。
解決の為、アドバイスをいただければと思います。
よろしくお願いいたします。
166>>165
2017/09/20(水) 22:01:50.45ID:ZyDsW00i >>165
NGワードに引っかかってしまいコードが書き込めないのでまた、後ほど書き込ませていただきます。
NGワードに引っかかってしまいコードが書き込めないのでまた、後ほど書き込ませていただきます。
167>>165
2017/09/20(水) 22:33:57.96ID:ZyDsW00i function testForm(){
var table = document.getElementsByName("table");
var sumB = 0;
var sumW = 0;
for(i = 0 ; i <= 1 ; i++){
var line = table[i].parentNode;
var result = getComputedStyle(line,'');
if(result.background == "#000000"){sumB = sumB + parseInt(table[i].value);
}else{sumW = sumW + parseInt(table[i].value);}
}
var B = document.getElementById("resultB");
var W = document.getElementById("resultW");
B.innerHTML = sumB;W.innerHTML = sumW;
}
<table border="1">
<tr id = "line1" style="background-color:#000000">
<td><input type="text" name="table" value="0" onBlur=testForm()></td></tr>
<tr id = "line2" style="background-color:#ffffff">
<td><input type="text" name="table" value="0" onBlur=testForm()></td></tr>
</table>
<table border="1" style="width:30px;">
<tr id = "resultLine">
<td id = "resultB"></td>
<td id = "resultW"></td>
</tr>
</table>
</form>お願いいたします。
var table = document.getElementsByName("table");
var sumB = 0;
var sumW = 0;
for(i = 0 ; i <= 1 ; i++){
var line = table[i].parentNode;
var result = getComputedStyle(line,'');
if(result.background == "#000000"){sumB = sumB + parseInt(table[i].value);
}else{sumW = sumW + parseInt(table[i].value);}
}
var B = document.getElementById("resultB");
var W = document.getElementById("resultW");
B.innerHTML = sumB;W.innerHTML = sumW;
}
<table border="1">
<tr id = "line1" style="background-color:#000000">
<td><input type="text" name="table" value="0" onBlur=testForm()></td></tr>
<tr id = "line2" style="background-color:#ffffff">
<td><input type="text" name="table" value="0" onBlur=testForm()></td></tr>
</table>
<table border="1" style="width:30px;">
<tr id = "resultLine">
<td id = "resultB"></td>
<td id = "resultW"></td>
</tr>
</table>
</form>お願いいたします。
168デフォルトの名無しさん
2017/09/20(水) 23:57:51.37ID:VZIyuCp2 >>165
まず背景色をキーにするのはダメ
なぜなら色をどうするかはCSSの仕事だから。
背景色の代わりにクラスを使う
document.getElementsByNameで table を取ってくるのが意味不明
この場合だと tr だろう?
ループの終了判定が1固定なのがだめ。trの数にするべき
まず背景色をキーにするのはダメ
なぜなら色をどうするかはCSSの仕事だから。
背景色の代わりにクラスを使う
document.getElementsByNameで table を取ってくるのが意味不明
この場合だと tr だろう?
ループの終了判定が1固定なのがだめ。trの数にするべき
169デフォルトの名無しさん
2017/09/20(水) 23:59:37.05ID:VZIyuCp2 訂正。読み間違えた。ここはとりあえずOK。とりあえずだが
> document.getElementsByNameで table を取ってくるのが意味不明
> この場合だと tr だろう?
> document.getElementsByNameで table を取ってくるのが意味不明
> この場合だと tr だろう?
170デフォルトの名無しさん
2017/09/21(木) 00:21:05.95ID:ZVbKGIwn id = "line1" とか id を付ける理由がわからん。
サンプルコードなら余計なものは消すべし
tableは複数変えてくるのであれば、
tablesとかいう変数にする。
が、そもそも変数名が適切じゃない。
とりあえずfield(fields)に解明する
.parentNodeじゃなくて、.parentNode.parentNode
でここまでは序の口
サンプルコードなら余計なものは消すべし
tableは複数変えてくるのであれば、
tablesとかいう変数にする。
が、そもそも変数名が適切じゃない。
とりあえずfield(fields)に解明する
.parentNodeじゃなくて、.parentNode.parentNode
でここまでは序の口
171デフォルトの名無しさん
2017/09/21(木) 01:12:09.67ID:ZVbKGIwn ここまでの途中結果
https://jsfiddle.net/52qcoLt7/3/
resultB と resultW の2つを一つのループで計算してるから
処理がわかりづらくなってる。
別々に計算する。そのための関数を作る
https://jsfiddle.net/52qcoLt7/4/
細か不要なところを削る
https://jsfiddle.net/52qcoLt7/5/
これ以上短くするにはjQueryがないと逆に面倒なのでjQuery化
https://jsfiddle.net/52qcoLt7/6/
sum関数を使って少しわかりやすくする
https://jsfiddle.net/52qcoLt7/7/
sum関数などというものを自分で作るよりlodash使ったほうがいいや
https://jsfiddle.net/52qcoLt7/8/
ES6のアロー関数を使う
https://jsfiddle.net/52qcoLt7/9/
もう関数の中にまとめちゃえ
https://jsfiddle.net/52qcoLt7/10/
見づらくなったので修正
https://jsfiddle.net/52qcoLt7/11/
https://jsfiddle.net/52qcoLt7/3/
resultB と resultW の2つを一つのループで計算してるから
処理がわかりづらくなってる。
別々に計算する。そのための関数を作る
https://jsfiddle.net/52qcoLt7/4/
細か不要なところを削る
https://jsfiddle.net/52qcoLt7/5/
これ以上短くするにはjQueryがないと逆に面倒なのでjQuery化
https://jsfiddle.net/52qcoLt7/6/
sum関数を使って少しわかりやすくする
https://jsfiddle.net/52qcoLt7/7/
sum関数などというものを自分で作るよりlodash使ったほうがいいや
https://jsfiddle.net/52qcoLt7/8/
ES6のアロー関数を使う
https://jsfiddle.net/52qcoLt7/9/
もう関数の中にまとめちゃえ
https://jsfiddle.net/52qcoLt7/10/
見づらくなったので修正
https://jsfiddle.net/52qcoLt7/11/
172デフォルトの名無しさん
2017/09/21(木) 01:16:29.67ID:ZVbKGIwn 修正後
$(document).on('blur', '[name="input"]', function() {
const toInt = el => parseInt(el.value);
const getValues = selector => $(selector).find('[name="input"]').get().map(toInt);
$('#resultB').text(_.sum(getValues('.classB')));
$('#resultW').text(_.sum(getValues('.classW')));
});
<table border="1">
<tr class="classB">
<td><input type="text" name="input" value="0"></td>
</tr>
<tr class="classW">
<td><input type="text" name="input" value="0"></td>
</tr>
</table>
<table id="result" border="1">
<tr>
<td id="resultB"></td>
<td id="resultW"></td>
</tr>
</table>
.classB {
background-color: #000000;
}
.classW {
background-color: #ffffff;
}
#result {
width: 30px;
}
$(document).on('blur', '[name="input"]', function() {
const toInt = el => parseInt(el.value);
const getValues = selector => $(selector).find('[name="input"]').get().map(toInt);
$('#resultB').text(_.sum(getValues('.classB')));
$('#resultW').text(_.sum(getValues('.classW')));
});
<table border="1">
<tr class="classB">
<td><input type="text" name="input" value="0"></td>
</tr>
<tr class="classW">
<td><input type="text" name="input" value="0"></td>
</tr>
</table>
<table id="result" border="1">
<tr>
<td id="resultB"></td>
<td id="resultW"></td>
</tr>
</table>
.classB {
background-color: #000000;
}
.classW {
background-color: #ffffff;
}
#result {
width: 30px;
}
173>>165
2017/09/21(木) 21:43:40.32ID:+hyTnlbF174デフォルトの名無しさん
2017/09/26(火) 17:15:57.30ID:UanF2VW9 ・「DOM要素」「JavaScriptオブジェクト」
「文字列」ってどういうふうに認識を分ければいいですか、
・どういうときに、「DOM要素」をいじり、
・どういううときに「JavaScriptオブジェクト」で処理し
・どういうときに「文字列」として扱うべきなのか教えてください。
「文字列」ってどういうふうに認識を分ければいいですか、
・どういうときに、「DOM要素」をいじり、
・どういううときに「JavaScriptオブジェクト」で処理し
・どういうときに「文字列」として扱うべきなのか教えてください。
175デフォルトの名無しさん
2017/09/26(火) 17:18:46.94ID:UanF2VW9 ・具体例
> $0
<div class="guide">
<a 略> </a>"
|"<a 略> </a>"
|"<a 略> </a>"
|"<a </a>
</div>
------------------------------------------------------------------------------
> dir($0)
VM22805:1 div.guide
accessKey: ""
align: ""
assignedSlot: nullattributes:
NamedNodeMap {0: class, length: 1}
baseURI: "https://www.2ch.net/"childElementCount: 4
childNodes: (9) [text, a, text, a, text, a, text, a, text]
....
------------------------------------------------------------------------------
> $0.innerHTML
"
<a 略> </a>"
|"<a 略> </a>"
|"<a 略> </a>"
|"<a </a>
"
> $0
<div class="guide">
<a 略> </a>"
|"<a 略> </a>"
|"<a 略> </a>"
|"<a </a>
</div>
------------------------------------------------------------------------------
> dir($0)
VM22805:1 div.guide
accessKey: ""
align: ""
assignedSlot: nullattributes:
NamedNodeMap {0: class, length: 1}
baseURI: "https://www.2ch.net/"childElementCount: 4
childNodes: (9) [text, a, text, a, text, a, text, a, text]
....
------------------------------------------------------------------------------
> $0.innerHTML
"
<a 略> </a>"
|"<a 略> </a>"
|"<a 略> </a>"
|"<a </a>
"
176デフォルトの名無しさん
2017/09/27(水) 12:23:59.68ID:p2MS+Nsv 山田祥寛(よしひろ)、翔泳社
10日でおぼえる jQuery 入門教室 第2版
この本を読め
10日でおぼえる jQuery 入門教室 第2版
この本を読め
177デフォルトの名無しさん
2017/10/04(水) 18:54:10.62ID:QAubw1tX http://www.myu.ac.jp/~akizuki/sct/js/picture/pc_size.htmlみたいに
入力して指定した要素(div等)の大きさをリアルタイムに変えられるようにしたいけど、コードうまくできない
Chromeとかのデベロッパーツールを使えばいいじゃんと言われるオチだけど、cssとか詳しくない人に入力してチェックしてもらうためなので
ググっても関係ない情報ばかり引っかかるお
入力して指定した要素(div等)の大きさをリアルタイムに変えられるようにしたいけど、コードうまくできない
Chromeとかのデベロッパーツールを使えばいいじゃんと言われるオチだけど、cssとか詳しくない人に入力してチェックしてもらうためなので
ググっても関係ない情報ばかり引っかかるお
178デフォルトの名無しさん
2017/10/04(水) 18:57:08.16ID:oEKHra+I 愚痴だけならよそでやってくれ
179デフォルトの名無しさん
2017/10/04(水) 20:37:27.97ID:XYwgRbbh >>177
一行目から行くぞ。
今時DOCTYPEを使わないのはありえない
META HTTP-EQUIVが大文字だったり小文字だったり、意味もわからずコピペしている証拠
今時Shift_JISとかありえない
languageは古い属性いまどき使わない
関数の中の変数にvar(もしくはletやconst)がない
evalは使うな
; の前にスペースはいらない
document.size.value_xなんて参照はいまどきしないgetElement○○を使え
bgcolorなどの物理属性は使うなcssを使え
centerなどのタグも使うな
brは連続して使うな
tableじゃない場所にtableを使うな
20年ぐらい前に素人が書いたコードにしか見えない
一行目から行くぞ。
今時DOCTYPEを使わないのはありえない
META HTTP-EQUIVが大文字だったり小文字だったり、意味もわからずコピペしている証拠
今時Shift_JISとかありえない
languageは古い属性いまどき使わない
関数の中の変数にvar(もしくはletやconst)がない
evalは使うな
; の前にスペースはいらない
document.size.value_xなんて参照はいまどきしないgetElement○○を使え
bgcolorなどの物理属性は使うなcssを使え
centerなどのタグも使うな
brは連続して使うな
tableじゃない場所にtableを使うな
20年ぐらい前に素人が書いたコードにしか見えない
180デフォルトの名無しさん
2017/10/04(水) 22:11:21.81ID:9uS2wtG9 概ね同意だが……br連続って駄目なん?
181デフォルトの名無しさん
2017/10/04(水) 23:54:58.26ID:AL97hIHS jqplotで凡例の項目の一部をデフォルトfalseにしたいのですが
どのようにすればできるでしょうか?
例えば以下のサンプルサイト様の凡例「花子」を
初期起動時にはデフォルトでfalseにするイメージです
http://alphasis.info/2012/04/jquery-plugin-jqplot-line_charts-legend-numberrows/
よろしくお願いします
どのようにすればできるでしょうか?
例えば以下のサンプルサイト様の凡例「花子」を
初期起動時にはデフォルトでfalseにするイメージです
http://alphasis.info/2012/04/jquery-plugin-jqplot-line_charts-legend-numberrows/
よろしくお願いします
182デフォルトの名無しさん
2017/10/05(木) 01:58:15.39ID:RWFlOlgJ web制作管理板の、jQuery スレに、書き込んだ方が良さそう
183183
2017/10/05(木) 06:42:50.41ID:lUKxKZuz すみません、自分一人ではどうしても解決できないことが有ってご質問させていただきます。
【やりたいこと】
任意の数の制御点(0=≦x =<511、0=< y =<1000)を格納した配列を基に、三次Bsplin補完を実行し、
生成された曲線の座標からx=0からx=511までをインデックスとして、y座標を出力したいのです。
任意の数の制御点を生成して、昇順に並べる関数は作りました。
また、Bsplin補完を実際に生成する関数もネットから拾ってきて既に出来ているものがあります。
次にコードを載せます。
【やりたいこと】
任意の数の制御点(0=≦x =<511、0=< y =<1000)を格納した配列を基に、三次Bsplin補完を実行し、
生成された曲線の座標からx=0からx=511までをインデックスとして、y座標を出力したいのです。
任意の数の制御点を生成して、昇順に並べる関数は作りました。
また、Bsplin補完を実際に生成する関数もネットから拾ってきて既に出来ているものがあります。
次にコードを載せます。
184183
2017/10/05(木) 06:51:04.01ID:lUKxKZuz function interpolation(top_elements){
var sp = new Spline();
sp.init(top_elements);
var t = variation;/* any value as parameter */ ;
var val = sp.culc(t);
}
このようなものです。top_elementsは私が作った[x,y]を任意個格納した二次元配列です。
Spline()がBspline補完をする、外部から拝借した関数になります。
tの値を変えたりして何度かやっているのですが、曲線を生成した、ということは、
xもyも連続的なはずですよね?xが512個のインデックスだとしたら、それに対応するyは
当然滑らかにはならないでしょうが、それでもいきなり飛び出た値が出るとか、そういったことはないと思います。
今のままだと、ほとんどxの値に対してランダムというか、作っている人間には突飛な値ばかり出力されてしまいます。
ようするに滑らかな曲線にならないのです。
どなたかご教授お願いします・・・Spline関数に間違いはないと思います。
var sp = new Spline();
sp.init(top_elements);
var t = variation;/* any value as parameter */ ;
var val = sp.culc(t);
}
このようなものです。top_elementsは私が作った[x,y]を任意個格納した二次元配列です。
Spline()がBspline補完をする、外部から拝借した関数になります。
tの値を変えたりして何度かやっているのですが、曲線を生成した、ということは、
xもyも連続的なはずですよね?xが512個のインデックスだとしたら、それに対応するyは
当然滑らかにはならないでしょうが、それでもいきなり飛び出た値が出るとか、そういったことはないと思います。
今のままだと、ほとんどxの値に対してランダムというか、作っている人間には突飛な値ばかり出力されてしまいます。
ようするに滑らかな曲線にならないのです。
どなたかご教授お願いします・・・Spline関数に間違いはないと思います。
185183
2017/10/05(木) 07:23:50.95ID:lUKxKZuz 補遺:二次元配列top_elementsは、xの昇順になっています。
186デフォルトの名無しさん
2017/10/05(木) 15:39:58.45ID:SUARUJDC アルゴリズム調べて自分で書けよ
十数行で書けるんだからさ
十数行で書けるんだからさ
187デフォルトの名無しさん
2017/10/05(木) 18:06:29.65ID:awWISc0p188183
2017/10/05(木) 18:50:12.30ID:lUKxKZuz189デフォルトの名無しさん
2017/10/05(木) 21:37:12.37ID:mF/3dliN 学校の宿題は自分でやってください
190デフォルトの名無しさん
2017/10/05(木) 21:48:37.53ID:k7vHxPO6 先生です。見てますよ。
191デフォルトの名無しさん
2017/10/05(木) 22:47:29.02ID:SUARUJDC 別に宿題でも良いんだが
この手のアルゴリズムはちょっと調べたらCやJavaなんかでの実装が山ほど見つかるじゃん
コピペ手直しならまだ宿題やったってことで良いと思うけど
そこまで人にさせるのはちょっとね
この手のアルゴリズムはちょっと調べたらCやJavaなんかでの実装が山ほど見つかるじゃん
コピペ手直しならまだ宿題やったってことで良いと思うけど
そこまで人にさせるのはちょっとね
192デフォルトの名無しさん
2017/10/06(金) 00:12:32.57ID:gy3l/p8u すみません質問なのですが
HTMLファイルを IE11 でローカルで開いて遊ぶゲームの制作中で
データを保存する機能の部分でエラーが出ます。
Chromeだと問題ないのですがIE11だと動きません。
(未定義または NULL 参照のプロパティ 'setItem' は取得できません)
var storage = localStorage;
storage.setItem("item1", "soda");
console.log(storage.getItem("item1"));
IE11の仕様でローカル書込できない場合
何か回避方法はありますでしょうか。
HTMLファイルを IE11 でローカルで開いて遊ぶゲームの制作中で
データを保存する機能の部分でエラーが出ます。
Chromeだと問題ないのですがIE11だと動きません。
(未定義または NULL 参照のプロパティ 'setItem' は取得できません)
var storage = localStorage;
storage.setItem("item1", "soda");
console.log(storage.getItem("item1"));
IE11の仕様でローカル書込できない場合
何か回避方法はありますでしょうか。
193デフォルトの名無しさん
2017/10/06(金) 00:37:43.35ID:TJk1AKwf ローカルで開いてもらうんなら
そもそもElectronとか使って配布すれば良いじゃない
そもそもElectronとか使って配布すれば良いじゃない
194デフォルトの名無しさん
2017/10/06(金) 01:37:47.85ID:tqIbkLAn195デフォルトの名無しさん
2017/10/10(火) 15:40:09.98ID:nIcnTX/z 次々にDOMの内容が時間とともに書き換わるホームページで
特定の要素が開いたときにすでに存在しているか、これから存在するか、
の2パターンのうち、存在するまで待って何かするにはどうすればいいですか。
やったことはタイマーで3秒くらい待ってから調べる方法ですが
低スペックのパソコンだと時間がズレるのでつかえませんでした。
特定の要素が開いたときにすでに存在しているか、これから存在するか、
の2パターンのうち、存在するまで待って何かするにはどうすればいいですか。
やったことはタイマーで3秒くらい待ってから調べる方法ですが
低スペックのパソコンだと時間がズレるのでつかえませんでした。
196デフォルトの名無しさん
2017/10/10(火) 19:16:14.99ID:aq9ImRxa ハックならsetTimeoutで十分でしょ
きっちりやりたいのならMutationObserverでも試してみたら?
きっちりやりたいのならMutationObserverでも試してみたら?
198デフォルトの名無しさん
2017/10/11(水) 00:31:33.94ID:brH66jkE スマホのwebアプリを作ってるのですが、beforeunloadのようにホーム画面に戻った時や
強制終了した時に発火するイベントはありますか?
iOSとandroidの両方に対応させたいです。
宜しくお願い致します。
強制終了した時に発火するイベントはありますか?
iOSとandroidの両方に対応させたいです。
宜しくお願い致します。
199デフォルトの名無しさん
2017/10/11(水) 07:25:31.32ID:1JkTZdtO >>194
ありがとうございます。
ありがとうございます。
200デフォルトの名無しさん
2017/10/12(木) 00:26:26.49ID:yL279Uuu phantomJS使って画面キャプチャして保存してるんですが
どうしても画像が保存されません…
htmlを出力してみるとアクセスは出来てるみたいなんですが。
コードは以下です。
var page = require('webpage').create();
page.open('http://yahoo.co.jp', function(status) {
console.log("Status: " + status);
if(status === "success") {
page.render('example.png');
}
phantom.exit();
});
どうしても画像が保存されません…
htmlを出力してみるとアクセスは出来てるみたいなんですが。
コードは以下です。
var page = require('webpage').create();
page.open('http://yahoo.co.jp', function(status) {
console.log("Status: " + status);
if(status === "success") {
page.render('example.png');
}
phantom.exit();
});
201デフォルトの名無しさん
2017/10/12(木) 00:31:54.06ID:yL279Uuu http://www.ugtop.com/spill.shtml
ここ見るとMIMEタイプが以下になってるのが原因でしょうか?
普通のブラウザでアクセスするのと比較するとこれくらいしか違いがないので。
[phantomJS]
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[Chrome]
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
ここ見るとMIMEタイプが以下になってるのが原因でしょうか?
普通のブラウザでアクセスするのと比較するとこれくらいしか違いがないので。
[phantomJS]
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[Chrome]
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
202デフォルトの名無しさん
2017/10/12(木) 00:56:54.00ID:BE/Y4M/4 >page.render('example.png');
render は、画面を保存する関数なのか?
render は、画面を保存する関数なのか?
203デフォルトの名無しさん
2017/10/12(木) 01:39:40.89ID:yL279Uuu204デフォルトの名無しさん
2017/10/12(木) 03:24:44.94ID:BE/Y4M/4 1行ずつ、デバッグ実行して、エラーメッセージを取得して、そのメッセージで検索する
ファイルI/O 関連のエラーなら、ブラウザが対応していないとか、
フォルダが無いとか、書き込みできないとか、アクセス権限とか、色々ある
まず、どの原因か、エラーメッセージを取得して、解明する
Linux なら、strace のような、
OS のAPI の呼び出しをチェックするような、コマンドがあって、
どのAPIでエラーが起こっているのか、わかるけど
ファイルI/O 関連のエラーなら、ブラウザが対応していないとか、
フォルダが無いとか、書き込みできないとか、アクセス権限とか、色々ある
まず、どの原因か、エラーメッセージを取得して、解明する
Linux なら、strace のような、
OS のAPI の呼び出しをチェックするような、コマンドがあって、
どのAPIでエラーが起こっているのか、わかるけど
205デフォルトの名無しさん
2017/10/13(金) 13:57:58.99ID:OVzYuRNW function Hoge() {
}
Hoge.piyo = 123;
var hoge = new Hoge();
とかした場合にhogeからHoge.piyoにアクセスする方法はある?
}
Hoge.piyo = 123;
var hoge = new Hoge();
とかした場合にhogeからHoge.piyoにアクセスする方法はある?
206デフォルトの名無しさん
2017/10/13(金) 14:54:34.78ID:ECjh9wjN hoge.constructor.piyo
207デフォルトの名無しさん
2017/10/13(金) 23:41:18.31ID:JHJOvcP0 関数をコンストラクタにして、インスタンスを作りたいのか?
var A = function(x) {
this.y = x;
}
var aa = new A(3);
var bb = new A('a');
console.log(aa, bb);
var A = function(x) {
this.y = x;
}
var aa = new A(3);
var bb = new A('a');
console.log(aa, bb);
208デフォルトの名無しさん
2017/10/14(土) 09:16:31.69ID:vAiN4XDf これとは意図が違うの?
function Hoge() {
}
Hoge.prototype.piyo = 123;
var hoge = new Hoge();
console.log(hoge.piyo);
function Hoge() {
}
Hoge.prototype.piyo = 123;
var hoge = new Hoge();
console.log(hoge.piyo);
209デフォルトの名無しさん
2017/10/14(土) 11:14:33.00ID:rczcWznS インスタンスの意味がわからないのなら、
オブジェクト指向を知らないという事だから、JavaScript は無理
JS は、prototype と言って、普通のオブジェクト指向じゃないから、さらにややこしい
まずこの本で、普通のオブジェクト指向を学ぶ。
スッキリわかる Java入門 第2版、2014
それから、JSのprototype を学ぶ
オブジェクト指向を知らないという事だから、JavaScript は無理
JS は、prototype と言って、普通のオブジェクト指向じゃないから、さらにややこしい
まずこの本で、普通のオブジェクト指向を学ぶ。
スッキリわかる Java入門 第2版、2014
それから、JSのprototype を学ぶ
210デフォルトの名無しさん
2017/10/14(土) 12:52:58.47ID:ZBrjxXQC いきなりprototypeでいいんじゃないかな。
たしかにjsのprototypeは分かりにくいけどクラス使う言語からやってくると、もっとわかんなくなりそう
たしかにjsのprototypeは分かりにくいけどクラス使う言語からやってくると、もっとわかんなくなりそう
211デフォルトの名無しさん
2017/10/14(土) 13:33:10.91ID:6KISst0f JavaScriptでもclassからやったほうがいいんじゃないかな?
classほうがわかりやすいし。それからprototypeでも遅くはないよ。
そもそもprototypeって普段から意識して使ったこと無いしね
内部実装よりも言語仕様の方が重要
classほうがわかりやすいし。それからprototypeでも遅くはないよ。
そもそもprototypeって普段から意識して使ったこと無いしね
内部実装よりも言語仕様の方が重要
212デフォルトの名無しさん
2017/10/14(土) 17:00:10.76ID:PFh9gSOM 分かりにくいのはprototypeプロパティの意義であって
それはプロトタイプベースの本質ともオブジェクト指向の本質とも関係はなく
ただのJSのチンケな旧クラスシステムということでしかない
学習としては__proto__を使って素直で本質的なプロトタイプベースOOPを覚えるか
class構文を使ってよりまともな新クラスシステムに慣れる形が良い
それはプロトタイプベースの本質ともオブジェクト指向の本質とも関係はなく
ただのJSのチンケな旧クラスシステムということでしかない
学習としては__proto__を使って素直で本質的なプロトタイプベースOOPを覚えるか
class構文を使ってよりまともな新クラスシステムに慣れる形が良い
213デフォルトの名無しさん
2017/10/14(土) 22:49:28.49ID:zrGXBjtr >>206
できたわサンクス
できたわサンクス
214デフォルトの名無しさん
2017/10/15(日) 01:15:59.00ID:y0fiNdyH class {
プロパティ
メソッド
}
普通の言語で、これで済む所を、JS では自分で実装していかないといけない
メソッドは、__proto__ で、親クラスへつなげて行くとか、
実行環境を作る人と、同じ技術を学ばなければならない。
こんなのは、インタープリタを作る人の話
オブジェクト指向をわかっていない奴だと、
.constructor, .prototype とか、何もわからずに使うだけ
プロパティ
メソッド
}
普通の言語で、これで済む所を、JS では自分で実装していかないといけない
メソッドは、__proto__ で、親クラスへつなげて行くとか、
実行環境を作る人と、同じ技術を学ばなければならない。
こんなのは、インタープリタを作る人の話
オブジェクト指向をわかっていない奴だと、
.constructor, .prototype とか、何もわからずに使うだけ
215デフォルトの名無しさん
2017/10/15(日) 05:30:29.29ID:8UsxszRz それはちょっと違うかな
物は言いようでクラスに縛られること無くOOPが出来るというのはプロトタイプベースのメリットだけど、
だから自作しないといけないというわけではなくてプロトタイプベースに標準のクラスシステムがあっても何も矛盾しない
というかJSはES5までプロトタイプの設定ができなくて
予め用意された貧弱なクラスシステムを使わざるを得ないといけないということが問題で、
むしろ変わったクラスベース言語と言っても良いくらいだった
.constructor, .prototypeもオブジェクト指向の本質とは何の関係もない、ただJSのクラスシステムの癖なだけ
というか元々JSは手続き型チックに使うことを想定された簡潔なDOM操作スクリプト言語として作られたのであって
それに一応OOPもできますよと言うことでnew演算子を取ってつけただけ
プロトタイプベースなのも、崇高な目的があるわけじゃなくて
OOPが最低限できる素朴な仕組みを用意できれば良かったから
物は言いようでクラスに縛られること無くOOPが出来るというのはプロトタイプベースのメリットだけど、
だから自作しないといけないというわけではなくてプロトタイプベースに標準のクラスシステムがあっても何も矛盾しない
というかJSはES5までプロトタイプの設定ができなくて
予め用意された貧弱なクラスシステムを使わざるを得ないといけないということが問題で、
むしろ変わったクラスベース言語と言っても良いくらいだった
.constructor, .prototypeもオブジェクト指向の本質とは何の関係もない、ただJSのクラスシステムの癖なだけ
というか元々JSは手続き型チックに使うことを想定された簡潔なDOM操作スクリプト言語として作られたのであって
それに一応OOPもできますよと言うことでnew演算子を取ってつけただけ
プロトタイプベースなのも、崇高な目的があるわけじゃなくて
OOPが最低限できる素朴な仕組みを用意できれば良かったから
216デフォルトの名無しさん
2017/10/16(月) 11:07:06.61ID:FZpcfz8T なんでもありの言語にお堅い規約やらなんやらを詰め込もうとするから無理がでてくる
217デフォルトの名無しさん
2017/10/16(月) 11:28:22.60ID:S65ZEl8x まあ単に素朴なだけだけどね
鋼の様な硬い制限は言語のメリットを殺すだけで良くないが、一方で柔軟さ活かせばゴムの様に「矯正力」を発揮させる事ができる
固い考え方に於いての問題を問題として弾くのではなく、問題を飲み込み問題では無くす事ができる
その様にJSらしいプログラミング思想を受け入れることがJS克服の鍵
鋼の様な硬い制限は言語のメリットを殺すだけで良くないが、一方で柔軟さ活かせばゴムの様に「矯正力」を発揮させる事ができる
固い考え方に於いての問題を問題として弾くのではなく、問題を飲み込み問題では無くす事ができる
その様にJSらしいプログラミング思想を受け入れることがJS克服の鍵
218デフォルトの名無しさん
2017/10/16(月) 21:47:15.44ID:PHvG/+lj jsは凄くやらかい言語だよね。欲を言えばマクロが欲しいけど、現状でも割と何でも出来る
219デフォルトの名無しさん
2017/10/17(火) 01:16:06.64ID:1Z+ZTC/f マクロはsweet.js型のが検討された事があるがまだまだデコレータとか先に検討すべき機能はたくさんあるし
Object.observeみたいにその時の流行りと勢いで大胆な機能を入れると、後悔することが教訓になっているので慎重にもなるだろう
今は立案から策定までのペースが早くて10年後もその機能があって良いのかを考えにくくなってる
慎重で優秀なメンバーがいるおかげか高Stageでギリギリ落とされるものもチラホラ
その時は不満でも1年くらいして落ち着いて考えてみるとやっぱり入れ無くて良かったのかなと思える
Object.observeみたいにその時の流行りと勢いで大胆な機能を入れると、後悔することが教訓になっているので慎重にもなるだろう
今は立案から策定までのペースが早くて10年後もその機能があって良いのかを考えにくくなってる
慎重で優秀なメンバーがいるおかげか高Stageでギリギリ落とされるものもチラホラ
その時は不満でも1年くらいして落ち着いて考えてみるとやっぱり入れ無くて良かったのかなと思える
220デフォルトの名無しさん
2017/10/17(火) 08:50:09.14ID:JpL3v0uM そういえば末尾最適化が来てたっけChromeに
あれアロー関数かつ三項演算子でも使えるんかね。今度実験してみよ
あれアロー関数かつ三項演算子でも使えるんかね。今度実験してみよ
221デフォルトの名無しさん
2017/10/17(火) 23:45:33.60ID:h1VDlomm すみません洋書でも知ってたら教えて頂きたいのですが、
jqueryをネイティブのJSに書き直す方法を網羅した
リファレンス本や虎巻、早見表等の書籍がありましたら
教えて下さい。
jqueryをネイティブのJSに書き直す方法を網羅した
リファレンス本や虎巻、早見表等の書籍がありましたら
教えて下さい。
222デフォルトの名無しさん
2017/10/18(水) 00:40:19.37ID:HhDhJUF4 >>221
不完全なのならネットにいくらでもあると思う。
でも網羅してるのはないだろうね。
例えば、onの二番目の引数にselectorを使用した書き方(旧delegate)とか
置き換える方法が書いてあるの見たことない。
http://js.studio-kingdom.com/jquery/events/delegate
網羅しているのがあれば、jQueryがどれだけ複雑な処理を
簡単にかけるかってのがよく分かるんだけどな。
この際だからネイティブのJSに置き換えるんじゃなくて
ReactとかAngularに置き換えたら?
はっきり言って他のフレームワークに置き換える意味はあるけど
jQueryをネイティブのJSに置き換える意味は殆どないよ
不完全なのならネットにいくらでもあると思う。
でも網羅してるのはないだろうね。
例えば、onの二番目の引数にselectorを使用した書き方(旧delegate)とか
置き換える方法が書いてあるの見たことない。
http://js.studio-kingdom.com/jquery/events/delegate
網羅しているのがあれば、jQueryがどれだけ複雑な処理を
簡単にかけるかってのがよく分かるんだけどな。
この際だからネイティブのJSに置き換えるんじゃなくて
ReactとかAngularに置き換えたら?
はっきり言って他のフレームワークに置き換える意味はあるけど
jQueryをネイティブのJSに置き換える意味は殆どないよ
223デフォルトの名無しさん
2017/10/18(水) 01:18:00.87ID:BXrTaZiI jQuery は、タグにイベントハンドラーを付けて、
そのタグの先祖のタグを削除しても、メモリリークをしないほど、すごい!
そのタグの先祖のタグを削除しても、メモリリークをしないほど、すごい!
224デフォルトの名無しさん
2017/10/18(水) 10:01:32.88ID:DiuuPMDh jQueryをどう使ってるかによるんじゃない?
Promise、Animation、Fetchなんかは置き換えできるよね
でも一番地味な要素の取得・操作やイベント周りは結局ラッパーを書くことになると思うよ
そこだけjQuery使うというのも大有りだけど、もしasync-awaitを広範囲に使っているのなら
組み合わせが難しくなるので完全に外すことを検討して良いと思う
awaitとイベントを柔和させるためにはasync-iteratorやObservableが必要だけど、まだ実装されてないからね
まあwhile(await)を使って工夫すればなんとかそれっぽく書けるんだけど、
今はまだObservable系のフレームワーク使った方が良いかもね
Promise、Animation、Fetchなんかは置き換えできるよね
でも一番地味な要素の取得・操作やイベント周りは結局ラッパーを書くことになると思うよ
そこだけjQuery使うというのも大有りだけど、もしasync-awaitを広範囲に使っているのなら
組み合わせが難しくなるので完全に外すことを検討して良いと思う
awaitとイベントを柔和させるためにはasync-iteratorやObservableが必要だけど、まだ実装されてないからね
まあwhile(await)を使って工夫すればなんとかそれっぽく書けるんだけど、
今はまだObservable系のフレームワーク使った方が良いかもね
225デフォルトの名無しさん
2017/10/18(水) 21:29:42.35ID:HhDhJUF4 jQueryのAjaxは、Fetchには置き換えられないよ。
Fetchは仕様のレベルでJavaScriptのXMLHttpRequestの機能の
一部しかサポートされていない。今新しい仕様策定中
Promise(Deffered)は仕様が少し違うけど、
これ実質Ajaxぐらいしか使ってないので、Fetchが置き換えれないのなら
Promiseに置き換える作業も発生しない。
Animationは置き換えは置き換えでもJavaScriptではなくCSSに置き換えだね
jQueryを使ったコードがたくさんあるなら、比較的最近のブラウザでしか
動かないasync-awaitを使っていることはないだろう
将来はasync-iteratorやObservableに変わるということは
今JavaScriptネイティブの古き良きaddEventListenerに変更する意味はあるのだろうか?
あと数年ブラウザネイティブでasync-iteratorやObservableがサポートされるまで
jQueryのままで良いんじゃね? どうせまた変えなきゃいけなくなるし。
コードは少ないほうが置き換える手間も少なくなるよ
Fetchは仕様のレベルでJavaScriptのXMLHttpRequestの機能の
一部しかサポートされていない。今新しい仕様策定中
Promise(Deffered)は仕様が少し違うけど、
これ実質Ajaxぐらいしか使ってないので、Fetchが置き換えれないのなら
Promiseに置き換える作業も発生しない。
Animationは置き換えは置き換えでもJavaScriptではなくCSSに置き換えだね
jQueryを使ったコードがたくさんあるなら、比較的最近のブラウザでしか
動かないasync-awaitを使っていることはないだろう
将来はasync-iteratorやObservableに変わるということは
今JavaScriptネイティブの古き良きaddEventListenerに変更する意味はあるのだろうか?
あと数年ブラウザネイティブでasync-iteratorやObservableがサポートされるまで
jQueryのままで良いんじゃね? どうせまた変えなきゃいけなくなるし。
コードは少ないほうが置き換える手間も少なくなるよ
226デフォルトの名無しさん
2017/10/18(水) 21:42:54.57ID:DiuuPMDh Fetchで置き換えられない具体的で有意義な例を出して欲しい
例えばキャンセルは出来るという議論前出てたよね
例えばキャンセルは出来るという議論前出てたよね
227デフォルトの名無しさん
2017/10/18(水) 21:43:41.72ID:HhDhJUF4 進捗状況は取得できないって結論出てたよね?
228デフォルトの名無しさん
2017/10/18(水) 21:49:34.17ID:HhDhJUF4 キャンセルに対応しているブラウザないみたいだし
https://developer.mozilla.org/en-US/docs/Web/API/AbortController
https://developer.mozilla.org/en-US/docs/Web/API/AbortController
229221
2017/10/18(水) 23:24:44.84ID:gezDC8oz 皆さんご助言ありがとうございます。
ReactとかAngularも検討してみます。
ネイティブの実装方法知らなくても
結果が同じなら書き換えなくていいかもです。
どうもありがとうございます。
ReactとかAngularも検討してみます。
ネイティブの実装方法知らなくても
結果が同じなら書き換えなくていいかもです。
どうもありがとうございます。
230デフォルトの名無しさん
2017/10/19(木) 02:13:50.99ID:EggJcvPa >>224は脱jQueryの指針を表したつもりで
jQueryのそれと全く同じ使い勝手のものが標準にあると言う気もないけど
そもそもjQueryの機能を完全にカバーできるかで考えるのも変だと思うけどな
因みにキャンセルや進歩状況はbody使えばできるんでなかったか?
jQueryのそれと全く同じ使い勝手のものが標準にあると言う気もないけど
そもそもjQueryの機能を完全にカバーできるかで考えるのも変だと思うけどな
因みにキャンセルや進歩状況はbody使えばできるんでなかったか?
231デフォルトの名無しさん
2017/10/19(木) 08:00:15.95ID:o0C7Dgua 調べてみた
キャンセル:
res = await fetch(''); reader = res.body.getReader(); reader.cancel(); OR res.body.cancel()
ダウンロードプログレス:
res = await fetch(''); reader = res.body.getReader(); ......
アップロードプログレス:
(できない)
ただし注意点としてプログレスは勿論キャンセルも実質、最初からReadableStreamで取って行ってるときでないと使えない
つまり、req.text()と先にしておいて、後でそれを予想外に長引いているからとreq.body.cancel()などキャンセルしようということはできない
まあプログレスやキャンセルが必要なのって大きいファイルの取得のときでしょ、
それで大きいファイル取得するときは最初からblobチャンク取っていく形で良いでしょ、ってことなのかもしれないが
一応素晴らしい解決方法もある
Response、body、ReadableStreamが再利用不可なのが問題なので、新しく作ってバイパスしてやればいい
つまり、ストリームに割り込むという考え方が必要
res = await fetch(''); reader = req.body.getReader();
res2 = new Response( new ReadableStream({...readerから読み込む...}), {...ヘッダを複製...}); ←キャンセルしたりプログレスが取れる
text = await res2.text()
キャンセル:
res = await fetch(''); reader = res.body.getReader(); reader.cancel(); OR res.body.cancel()
ダウンロードプログレス:
res = await fetch(''); reader = res.body.getReader(); ......
アップロードプログレス:
(できない)
ただし注意点としてプログレスは勿論キャンセルも実質、最初からReadableStreamで取って行ってるときでないと使えない
つまり、req.text()と先にしておいて、後でそれを予想外に長引いているからとreq.body.cancel()などキャンセルしようということはできない
まあプログレスやキャンセルが必要なのって大きいファイルの取得のときでしょ、
それで大きいファイル取得するときは最初からblobチャンク取っていく形で良いでしょ、ってことなのかもしれないが
一応素晴らしい解決方法もある
Response、body、ReadableStreamが再利用不可なのが問題なので、新しく作ってバイパスしてやればいい
つまり、ストリームに割り込むという考え方が必要
res = await fetch(''); reader = req.body.getReader();
res2 = new Response( new ReadableStream({...readerから読み込む...}), {...ヘッダを複製...}); ←キャンセルしたりプログレスが取れる
text = await res2.text()
232デフォルトの名無しさん
2017/10/19(木) 08:22:28.68ID:o0C7Dgua あーでもアップロードプログレスはできないって情報あったけど
よく考えたらrequest bodyにストリーム使えるわけだから出来そうだな
よく考えたらrequest bodyにストリーム使えるわけだから出来そうだな
233名無しさん@そうだ選挙に行こう! Go to vote!
2017/10/22(日) 09:36:57.74ID:dFN+CZG0 JavaScriptの配列で中身はあるのにforinがまわらない、chromeの開発ツールで見ると1行目の[]の中身がなくて、>でオブジェクト開くと中身があるみたいな状態なんだけど、どなたか経験あります?
説明が難しくて伝わらなかったらごめん
説明が難しくて伝わらなかったらごめん
2017/10/22(日) 10:14:35.32ID:eb/3UN8i
Array.prototype.forEach() を使う
for in は使わない
for in は使わない
2017/10/22(日) 11:50:40.07ID:HjaIXmCn
せめてスクリーンショットでも貼ったら?
2017/10/22(日) 16:00:06.51ID:ZfX9FkbY
配列(Array)の場合はfor inじゃなくてfor(var i=...) とか forEachを使う
詳しくはググれ
詳しくはググれ
237名無しさん@そうだ選挙に行こう! Go to vote!
2017/10/22(日) 16:05:57.85ID:j2iheZbd 配列(Array)の場合はfor inじゃなくてfor(var i=...) とか forEachを使うのはなぜですか?
2017/10/22(日) 16:19:41.29ID:sDdgCD4Q
せめてスクリーンショットでも貼ったら?
239名無しさん@そうだ選挙に行こう! Go to vote!
2017/10/22(日) 16:25:42.64ID:j2iheZbd >>238
そうするとわたしの秘密の情報も漏れてしまうのでイヤです。
そうするとわたしの秘密の情報も漏れてしまうのでイヤです。
2017/10/22(日) 16:26:43.93ID:sDdgCD4Q
ここだけの秘密にするから大丈夫!
241名無しさん@そうだ選挙に行こう! Go to vote!
2017/10/22(日) 16:38:06.12ID:j2iheZbd >>240
じゃあ指切りげんまんしてくれるかな?
じゃあ指切りげんまんしてくれるかな?
2017/10/22(日) 16:48:26.51ID:sDdgCD4Q
243名無しさん@そうだ選挙に行こう! Go to vote!
2017/10/22(日) 17:07:32.86ID:j2iheZbd >>242
じゃいくよ。
あなたも指出して。
_n
( l _、_
\ \ ( <_,` )
ヽ___ ̄ ̄ )
/ /
「指切りげんまんウソついたら針1000本の〜ます」
じゃいくよ。
あなたも指出して。
_n
( l _、_
\ \ ( <_,` )
ヽ___ ̄ ̄ )
/ /
「指切りげんまんウソついたら針1000本の〜ます」
244名無しさん@そうだ選挙に行こう! Go to vote!
2017/10/22(日) 17:32:49.16ID:j2iheZbd こら、早く指出せよ
2017/10/22(日) 17:45:19.81ID:sDdgCD4Q
指出してるよ。お前のディスプレイが対応してないんじゃないの?
246名無しさん@そうだ選挙に行こう! Go to vote!
2017/10/22(日) 18:03:02.65ID:ZsHOZNag >>245
何でそういう嘘つくの?
何でそういう嘘つくの?
247デフォルトの名無しさん
2017/10/22(日) 20:20:06.20ID:sDdgCD4Q 自分が嘘をついたからって、
他人も同じだと思わないように
他人も同じだと思わないように
248デフォルトの名無しさん
2017/10/22(日) 20:58:40.19ID:jvrtRUSZ Win+Shift+Sで切り抜き画面取れるだろ
249233
2017/10/23(月) 07:04:58.81ID:dBI0Tow6250233
2017/10/23(月) 07:14:40.31ID:dBI0Tow6 すまん、あと連想配列なんだわ。
キャプチャは今携帯だから貼れないから後ではる
キャプチャは今携帯だから貼れないから後ではる
251デフォルトの名無しさん
2017/10/23(月) 11:26:08.53ID:a7vEnu+7 配列じゃなくて連想配列?
じゃあそれこそが原因じゃん
じゃあそれこそが原因じゃん
252デフォルトの名無しさん
2017/10/23(月) 13:24:35.32ID:EOed3a7c 自己解決しました。
ファイルを配列に打ち込むライブラリが非同期だったので、処理で使えなかったみたい。
初歩的なミスでした
ファイルを配列に打ち込むライブラリが非同期だったので、処理で使えなかったみたい。
初歩的なミスでした
253デフォルトの名無しさん
2017/10/23(月) 17:29:06.71ID:Ig1NMcyK 多分もう少し、『誠実に』質問できてたらその日中に解決したと思うよ
ついでに見てる人を困らせることも荒らされることも無かった
ついでに見てる人を困らせることも荒らされることも無かった
254デフォルトの名無しさん
2017/11/05(日) 08:20:11.81ID:30Y/ALms node.jsの質問もここで大丈夫ですか?
winstonで取得したdiscordのログをdropboxに上げたいんですが、
ローカルにファイルは保存されているのに
ファイル名の変数が未定義とのエラーが出ます
どうすればうまく定義できるんでしょうか?
https://imgur.com/6Pk8q1b
実際の実行結果がこれで
https://imgur.com/ti3Pdkp
ローカルのファイル一覧がこれです
何度も試した結果大量のファイルが溜まっています
https://www.axfc.net/u/3860035?key=source
件のコードがこれです
スクリプトの名前は読み替えて下さい
まだ書きかけなので不要なライブラリも呼び出したりしており、
スパゲティ化してると思いますがご容赦ください
よろしくお願いします
winstonで取得したdiscordのログをdropboxに上げたいんですが、
ローカルにファイルは保存されているのに
ファイル名の変数が未定義とのエラーが出ます
どうすればうまく定義できるんでしょうか?
https://imgur.com/6Pk8q1b
実際の実行結果がこれで
https://imgur.com/ti3Pdkp
ローカルのファイル一覧がこれです
何度も試した結果大量のファイルが溜まっています
https://www.axfc.net/u/3860035?key=source
件のコードがこれです
スクリプトの名前は読み替えて下さい
まだ書きかけなので不要なライブラリも呼び出したりしており、
スパゲティ化してると思いますがご容赦ください
よろしくお願いします
255デフォルトの名無しさん
2017/11/05(日) 11:55:47.11ID:30Y/ALms ひとまず自己解決
varとかconstとかってローカル変数だったのね……
普段使わないから知らなかった
スレ汚し失礼しました
varとかconstとかってローカル変数だったのね……
普段使わないから知らなかった
スレ汚し失礼しました
256デフォルトの名無しさん
2017/11/05(日) 11:57:07.72ID:qm0+5m87 100時間悩んでも分からなそうな質問だけにして
257デフォルトの名無しさん
2017/11/13(月) 07:37:16.57ID:Cp9C2uqN コメントで
/*!
...
*/
のように ! がついてるコメントの名称と意味を教えてください
/*!
...
*/
のように ! がついてるコメントの名称と意味を教えてください
258デフォルトの名無しさん
2017/11/13(月) 10:59:35.62ID:AfQlhP1w SASS なら、圧縮しても削除されないコメントだけど
259デフォルトの名無しさん
2017/11/13(月) 18:01:54.37ID:RXMQG+No Googleは最近そういう記号でもまともに検索できるようになったんだからググったら良いと思うよ
260デフォルトの名無しさん
2017/11/13(月) 20:13:27.57ID:EexnuGm1 初心者です。「this. は.以降の変数を自分自身のコンパイラーとして呼べる」
と書籍に書いてあったのですが、イマイチ分かりません。
噛み砕いて教えていただけたら嬉しいです
と書籍に書いてあったのですが、イマイチ分かりません。
噛み砕いて教えていただけたら嬉しいです
261デフォルトの名無しさん
2017/11/13(月) 20:16:28.64ID:8bmF3HL1 説明しよう「この本は捨てるべし」と言う意味だ
262デフォルトの名無しさん
2017/11/13(月) 20:16:47.25ID:vNY3xg7l263デフォルトの名無しさん
2017/11/13(月) 20:54:47.92ID:AfQlhP1w Haxe の、this は、常にインスタンス自信を指すけど、
悪名高い、JavaScript のthisは、そうじゃないから嫌われている。
すごく複雑だから、検索して
悪名高い、JavaScript のthisは、そうじゃないから嫌われている。
すごく複雑だから、検索して
264デフォルトの名無しさん
2017/11/13(月) 22:49:11.94ID:RXMQG+No 全然複雑じゃない
複雑だと思うから複雑なだけであって、実際は第0番目の引数ということでしか無い
引数が色んな値になり得るのは当たり前で、どんな場合にどんな値が来るのかを知らないといけないのも当然
難しく考える必要は一切ない
複雑だと思うから複雑なだけであって、実際は第0番目の引数ということでしか無い
引数が色んな値になり得るのは当たり前で、どんな場合にどんな値が来るのかを知らないといけないのも当然
難しく考える必要は一切ない
265デフォルトの名無しさん
2017/11/14(火) 00:36:38.93ID:XnMPPPKZ >>264
これな。関数a内でthisが使われていた場合
aの呼び出し方でthisが何かが決まる
somthing.a() だったら a内のthisはsomthingを示す。
a() だったらwindow.a() or global.a()のシンタックスシュガーと考えるので
a内のthisはwindow or globalとなる。
a = a.bind(something) ってすると、
関数aのthisはsomethingに強制できるから
a() だとしてもthisはsomthingを指す。
これな。関数a内でthisが使われていた場合
aの呼び出し方でthisが何かが決まる
somthing.a() だったら a内のthisはsomthingを示す。
a() だったらwindow.a() or global.a()のシンタックスシュガーと考えるので
a内のthisはwindow or globalとなる。
a = a.bind(something) ってすると、
関数aのthisはsomethingに強制できるから
a() だとしてもthisはsomthingを指す。
266デフォルトの名無しさん
2017/11/14(火) 07:55:00.49ID:dgQmKgaa 応用の部分がややこしいだけで、基本はメソッドを呼び出した時のオブジェクト(インスタンス)自身
基本を理解してないのに応用から始めるから理解できないだけ
基本を理解してないのに応用から始めるから理解できないだけ
267デフォルトの名無しさん
2017/11/14(火) 11:29:27.42ID:+3XzgWpP268257
2017/11/14(火) 12:25:45.28ID:7jNyp118 誰もわかりませんか?
269デフォルトの名無しさん
2017/11/14(火) 13:41:14.06ID:SW/qgnh7 >>267
エスパーすると、コンパイラーではなくレシーバーだろ、つまり
proto = { prop: hoge }
obj = Object.create(proto)
のとき、obj.propと記述すると
ベースがproto、参照名がprop、this値がobjという参照型の値が作られる
その値が解決されるときにthis値のobjをレシーバーとして、参照名と共に
ベースであるprotoの[[Get]]関数が呼ばれる
もし直接解決の代わりに()演算子によって関数呼び出しされると
結果的にthis値のobjが解決後の関数値をもって作られたコンテキスト上でthis変数のように振る舞う
エスパーすると、コンパイラーではなくレシーバーだろ、つまり
proto = { prop: hoge }
obj = Object.create(proto)
のとき、obj.propと記述すると
ベースがproto、参照名がprop、this値がobjという参照型の値が作られる
その値が解決されるときにthis値のobjをレシーバーとして、参照名と共に
ベースであるprotoの[[Get]]関数が呼ばれる
もし直接解決の代わりに()演算子によって関数呼び出しされると
結果的にthis値のobjが解決後の関数値をもって作られたコンテキスト上でthis変数のように振る舞う
270デフォルトの名無しさん
2017/11/14(火) 13:41:48.27ID:SW/qgnh7271257
2017/11/14(火) 18:06:19.25ID:7jNyp118 >>270
名称は?
名称は?
272デフォルトの名無しさん
2017/11/14(火) 18:56:23.36ID:dgQmKgaa >>271
webpackやGruntやGulpやら、何種類もある
ビルド/ビルドツールとかタスクランナーと呼ばれてる
SASSに相当するのは一般名AltJS、具体名はTypeScript、CoffeeScriptなどなど
webpackやGruntやGulpやら、何種類もある
ビルド/ビルドツールとかタスクランナーと呼ばれてる
SASSに相当するのは一般名AltJS、具体名はTypeScript、CoffeeScriptなどなど
273デフォルトの名無しさん
2017/11/14(火) 22:54:40.95ID:hkMQtuZT > SASSに相当するのは一般名AltJS、具体名はTypeScript、CoffeeScriptなどなど
はい、はずれ〜ワラワラ
SASSはCSSにコンパイルするもので、AltJSじゃありませ〜ん。JSなんてどこにも出てきませ〜ん
はい、はずれ〜ワラワラ
SASSはCSSにコンパイルするもので、AltJSじゃありませ〜ん。JSなんてどこにも出てきませ〜ん
274デフォルトの名無しさん
2017/11/14(火) 23:03:49.67ID:j1DXjIxU 文章読めよ
275257
2017/11/15(水) 07:29:16.78ID:y5EK2afH /*! ←このコメントの名称を聞いてるのですが・・・
276デフォルトの名無しさん
2017/11/15(水) 07:49:16.81ID:i8Zygwqx >>275
その名称もコメント
その名称もコメント
277デフォルトの名無しさん
2017/11/15(水) 08:11:23.56ID:ak6TxLhd278デフォルトの名無しさん
2017/11/15(水) 23:10:11.83ID:JIFjS5yg つか、以前唐突に何も根拠なく「韓国人は優秀ニダ」と連呼し始めたのはこれかよ。
韓国政府、日本に関係改善の意思を伝える「韓国人材の日本企業への就職拡大の必要性を強調。日本も共感」★4
http://lavender.5ch.net/test/read.cgi/news4plus/1510660601/
韓国って国家単位で詐欺してるよな。
韓国人なんて詐欺国家の末端構成員だから全く信用ならねえ。
つか、あいつら嘘つき過ぎてて、辻褄とかそういうの考えないのな。
韓国人が優秀なことにするのなら、頭脳流出の心配を一ミリでもしろよアホ共め。
韓国人死ね
韓国政府、日本に関係改善の意思を伝える「韓国人材の日本企業への就職拡大の必要性を強調。日本も共感」★4
http://lavender.5ch.net/test/read.cgi/news4plus/1510660601/
韓国って国家単位で詐欺してるよな。
韓国人なんて詐欺国家の末端構成員だから全く信用ならねえ。
つか、あいつら嘘つき過ぎてて、辻褄とかそういうの考えないのな。
韓国人が優秀なことにするのなら、頭脳流出の心配を一ミリでもしろよアホ共め。
韓国人死ね
279デフォルトの名無しさん
2017/11/18(土) 10:41:15.63ID:ts5n7/sY javascript勉強中の初心者です。
宜しくお願いします。
伝の心という難病患者さんが使用するソフトがあるのですが、
https://www.youtube.com/watch?v=GpcY_UMoiLY&t=97s
このように、
ボタンを自動で選択して、一定時間後自動で隣の項目に移動し、最後はまたもとのボタンに戻る
というコードをどう書いたらいいのか教えていただけませんでしょうか。
自分なりに調べて、setTimeoutなどがあるというのはわかったのですが
何分初心者なのでうまく行きません。
宜しくお願いします。
宜しくお願いします。
伝の心という難病患者さんが使用するソフトがあるのですが、
https://www.youtube.com/watch?v=GpcY_UMoiLY&t=97s
このように、
ボタンを自動で選択して、一定時間後自動で隣の項目に移動し、最後はまたもとのボタンに戻る
というコードをどう書いたらいいのか教えていただけませんでしょうか。
自分なりに調べて、setTimeoutなどがあるというのはわかったのですが
何分初心者なのでうまく行きません。
宜しくお願いします。
280デフォルトの名無しさん
2017/11/18(土) 11:11:33.37ID:O6tkbZbZ >>279
そのビデオは入力支援機器で操作してるんだろ
そのビデオは入力支援機器で操作してるんだろ
281あ
2017/11/18(土) 11:46:18.95ID:OVm4Skm9 >>279
伝の心久しぶりに聞いたな。専門分野だ。
画面のコントロールにID振っておいて、
タイマーのメインループで一つずつ「次のコントロール」を選んでる
var current = 0
var max=10
function selNext(){
$('#ctr'+current).focus()
current=(current+1) % max
}
みたいになってる。
伝の心久しぶりに聞いたな。専門分野だ。
画面のコントロールにID振っておいて、
タイマーのメインループで一つずつ「次のコントロール」を選んでる
var current = 0
var max=10
function selNext(){
$('#ctr'+current).focus()
current=(current+1) % max
}
みたいになってる。
282あ
2017/11/18(土) 11:48:05.45ID:OVm4Skm9 障害者の人の操作体系、日本語入力のときの句点の次には割り込みで確定に一度フォーカスするとか、色々小細工があったはず。
283デフォルトの名無しさん
2017/11/18(土) 12:15:21.06ID:llwTwelI TAB順でいいなら、一定時間後にタブ押すとかTabIndexだっけ?を使えば良いかもな
ID順にならない移動があるなら
['#a', '#c,' '#d'] みたいに配列に入れておいて
その順番での移動を再生するみたいな感じになるだろうな
ID順にならない移動があるなら
['#a', '#c,' '#d'] みたいに配列に入れておいて
その順番での移動を再生するみたいな感じになるだろうな
284デフォルトの名無しさん
2017/11/18(土) 15:43:03.74ID:elbo/rx8 >>279
sleep()は無いけどsetTimeoutを自分で呼べばとりあえずforっぽく書ける
https://jsfiddle.net/avp7hjvw/show/
他にはsetIntervalとgeneratorとの組合せとかも出来るけど、
https://jsfiddle.net/74srLa7L/show/
async/awaitが汎用性が高いのでオススメ
一旦sleep()を自作すればほぼ普通の流れで書ける
https://jsfiddle.net/4ntz4fju/show/
sleep()は無いけどsetTimeoutを自分で呼べばとりあえずforっぽく書ける
https://jsfiddle.net/avp7hjvw/show/
他にはsetIntervalとgeneratorとの組合せとかも出来るけど、
https://jsfiddle.net/74srLa7L/show/
async/awaitが汎用性が高いのでオススメ
一旦sleep()を自作すればほぼ普通の流れで書ける
https://jsfiddle.net/4ntz4fju/show/
285あ
2017/11/19(日) 00:20:38.43ID:LuozPxgy286デフォルトの名無しさん
2017/11/19(日) 09:48:24.65ID:lkOoO3E5 ブレークポイントでデバッグする方法について教えてください
Window.openした後の行でブレークするにはどうすればよいのでしょうか?
F12画面を常に表示させても新しいタブやウィンドウが表示させた後では間に合いません。
Window.openした後の行でブレークするにはどうすればよいのでしょうか?
F12画面を常に表示させても新しいタブやウィンドウが表示させた後では間に合いません。
287デフォルトの名無しさん
2017/11/19(日) 18:56:52.53ID:AG+sglXv debuggerステートメントじゃアカン?
288デフォルトの名無しさん
2017/11/20(月) 17:57:53.01ID:NlfseZma プルダウンでdefaultのままだった場合に送信ボタンが押せないようにしたいのですがどうすればいいでしょうか?
289デフォルトの名無しさん
2017/11/20(月) 22:26:33.83ID:nz1STwP7 onchangeイベントで切り替えればそれっぽくはなるんじゃね
https://jsfiddle.net/znz8vtdc/
https://jsfiddle.net/znz8vtdc/
290デフォルトの名無しさん
2017/11/20(月) 23:43:46.47ID:cMsYfe5A >>289
addEventListener使ったほうが良いよ。
https://jsfiddle.net/znz8vtdc/1/
それと使わなくていいならform属性はまだ使いたくないな
IEで対応してない
ついでにjQueryで書き直したのがこれ
https://jsfiddle.net/znz8vtdc/2/
addEventListener使ったほうが良いよ。
https://jsfiddle.net/znz8vtdc/1/
それと使わなくていいならform属性はまだ使いたくないな
IEで対応してない
ついでにjQueryで書き直したのがこれ
https://jsfiddle.net/znz8vtdc/2/
291デフォルトの名無しさん
2017/11/21(火) 08:36:00.61ID:C3yOyH33292デフォルトの名無しさん
2017/11/21(火) 13:01:06.42ID:TQKi5Xp5 >>287
ありがとうございます。
alertより全然いいですね。
ただ、ソースに手を入れずブレークする方法ないですかね。
ユーザーのシステムから自社システムにリダイレクトして自社システムに入ってくるので、できれば自社システムで解決したいです。
ありがとうございます。
alertより全然いいですね。
ただ、ソースに手を入れずブレークする方法ないですかね。
ユーザーのシステムから自社システムにリダイレクトして自社システムに入ってくるので、できれば自社システムで解決したいです。
293デフォルトの名無しさん
2017/11/23(木) 17:44:46.79ID:1SOgFX2j FireGestureやFoxyGesturesのJS記述に関する質問は大丈夫でしょうか。
他に飛んだほうがよければ教えていただけると助かります。
他に飛んだほうがよければ教えていただけると助かります。
294デフォルトの名無しさん
2017/11/23(木) 18:25:46.32ID:8uWmG6OQ そんなもん質問の内容によるわ
295デフォルトの名無しさん
2017/11/24(金) 03:00:15.28ID:KiUMltEw node.jsではプログラム名を記述せずとも
node .
でプログラムを実行出来ますが、
プログラム名はどう推定しているのでしょうか?
package.jsonを見て決めていると思っていたのですが、
package.jsonがなくてもindex.jsを実行しました
node .
でプログラムを実行出来ますが、
プログラム名はどう推定しているのでしょうか?
package.jsonを見て決めていると思っていたのですが、
package.jsonがなくてもindex.jsを実行しました
296デフォルトの名無しさん
2017/11/24(金) 08:57:23.60ID:1jm3Zinm 答え自分で言ってるじゃん
そのくらい雰囲気で感じ取れなきゃダメだよ
そのくらい雰囲気で感じ取れなきゃダメだよ
297デフォルトの名無しさん
2017/11/24(金) 11:40:25.14ID:ecLkFla5 nodejs index.js
で検索するくらいの知能が無いのか?
で検索するくらいの知能が無いのか?
298デフォルトの名無しさん
2017/11/24(金) 15:53:05.57ID:7iAU48Fn そんな起動の仕方があったことを初めて知った。
299デフォルトの名無しさん
2017/11/25(土) 03:09:00.02ID:7N3/BfvS300デフォルトの名無しさん
2017/11/25(土) 05:33:34.88ID:ThHbjkCN ここは自ら学ぼうとしたけどどうしてもわからない人のための救済スレだよ
ググるなんて一番最初にすること
ググるなんて一番最初にすること
301デフォルトの名無しさん
2017/11/25(土) 10:08:18.15ID:FWelsGSm >>299
日本語読めないゴミクズは消えろ 二度と来るな
>(4) 常に自発的に調べる心構えを持ってください。
> 具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
> わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
日本語読めないゴミクズは消えろ 二度と来るな
>(4) 常に自発的に調べる心構えを持ってください。
> 具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
> わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
302デフォルトの名無しさん
2017/11/25(土) 11:44:48.76ID:JS4CjxNP303デフォルトの名無しさん
2017/11/25(土) 11:51:03.05ID:JS4CjxNP node.jsにはrequireをしなくても使えるコアモジュールがありますが
そういうモジュールのことを何と呼びますか?
node.jsに標準添付のモジュールを標準モジュール、
グローバルオブジェクトとして組み込まれているこの種のモジュールのことを
コアモジュール、と呼ぶと思っていたのですが
コアモジュールは標準添付のモジュールのことでした
ではグローバルオブジェクト化されているモジュールの呼び名は?
ドキュメントを見ても、それっぽい名前がない気がします
どうなのでしょうか?
そういうモジュールのことを何と呼びますか?
node.jsに標準添付のモジュールを標準モジュール、
グローバルオブジェクトとして組み込まれているこの種のモジュールのことを
コアモジュール、と呼ぶと思っていたのですが
コアモジュールは標準添付のモジュールのことでした
ではグローバルオブジェクト化されているモジュールの呼び名は?
ドキュメントを見ても、それっぽい名前がない気がします
どうなのでしょうか?
304デフォルトの名無しさん
2017/11/25(土) 12:27:56.73ID:ROPjRSyJ そんなもんない
305デフォルトの名無しさん
2017/11/25(土) 12:42:22.96ID:FWelsGSm >>302-303
消えろゴミクズ
消えろゴミクズ
306デフォルトの名無しさん
2017/11/25(土) 13:12:17.00ID:99QBz+fh この板には、荒らしが多い
荒らしに構うな。
荒らしと会話するな
荒らしに構うな。
荒らしと会話するな
307デフォルトの名無しさん
2017/11/25(土) 13:25:15.61ID:uC06z7qi308デフォルトの名無しさん
2017/11/25(土) 13:26:46.79ID:uC06z7qi309デフォルトの名無しさん
2017/11/25(土) 13:35:55.88ID:FWelsGSm310デフォルトの名無しさん
2017/11/25(土) 13:50:39.74ID:UiY7gN7d くだらないじゃれあいしたきゃ他でやってくれよ
311デフォルトの名無しさん
2017/11/25(土) 14:45:30.90ID:uC06z7qi >>309
大抵の質問スレには、
質問者になら無知で無能な自分も偉そうに出来ると勘違いした、
あなたのような最底辺のドクズが巣くっているものです
ですから自分がまず質問スレですることは、あなたのような連中を追い出すことです
見るたびに殴りつけますので、今後お見知りおきを。
分かりましたね?
大抵の質問スレには、
質問者になら無知で無能な自分も偉そうに出来ると勘違いした、
あなたのような最底辺のドクズが巣くっているものです
ですから自分がまず質問スレですることは、あなたのような連中を追い出すことです
見るたびに殴りつけますので、今後お見知りおきを。
分かりましたね?
312デフォルトの名無しさん
2017/11/25(土) 15:21:08.83ID:99QBz+fh 荒らしに構うな。
荒らしと会話するな
荒らしと会話する者も、荒らしと同じ!
荒らしと会話するな
荒らしと会話する者も、荒らしと同じ!
313デフォルトの名無しさん
2017/11/25(土) 17:54:08.33ID:ThHbjkCN 日本語で会話ができるうちは荒らしとは言えない
314デフォルトの名無しさん
2017/11/25(土) 18:52:33.44ID:FWelsGSm315デフォルトの名無しさん
2017/11/28(火) 02:34:55.73ID:llZrhpn1 node.jsに、rubyで言うirbみたいな
インタラクティブなインターフェイスはないでしょうか?
インタラクティブなインターフェイスはないでしょうか?
316デフォルトの名無しさん
2017/11/28(火) 08:03:37.72ID:snbmatiB nodeコマンド?
317デフォルトの名無しさん
2017/11/28(火) 08:42:37.86ID:nYQtzTcH318デフォルトの名無しさん
2017/11/28(火) 13:18:34.49ID:4cXFRnBa319デフォルトの名無しさん
2017/11/28(火) 21:25:15.44ID:nYQtzTcH 頭悪そうな質問だと思ってたら 案の定ゴミクズの質問だったか?
追い出すはどうした?
追い出すはどうした?
320デフォルトの名無しさん
2017/11/28(火) 21:55:01.66ID:PkJOT8pW 荒らしに構うな。
荒らしと会話するな。
会話すると、ずっと荒らしが続くだけ
荒らしと会話する者も、荒らしと同じやぞ!
荒らしと会話するな。
会話すると、ずっと荒らしが続くだけ
荒らしと会話する者も、荒らしと同じやぞ!
321デフォルトの名無しさん
2017/11/29(水) 00:46:00.93ID:NqL6/Qja JavaScriptではPHPの$$varみたいなことは出来ないのでしょうか?
node.jsでモジュールを読むのに、一行ずつrequireを記述するのではなく
モジュールを記述した配列を回して読みたいです
全てのモジュールを格納するオブジェクトを作って
各モジュールをそのプロパティにするようにしたら出来ると思いますが
それはnode.jsの作法的に良くないのでしょうか?
node.jsでモジュールを読むのに、一行ずつrequireを記述するのではなく
モジュールを記述した配列を回して読みたいです
全てのモジュールを格納するオブジェクトを作って
各モジュールをそのプロパティにするようにしたら出来ると思いますが
それはnode.jsの作法的に良くないのでしょうか?
322デフォルトの名無しさん
2017/11/29(水) 01:12:44.54ID:NqL6/Qja モジュールを読むたびに名前空間をガンガン汚していくのってどうなんでしょう
変数名を決める時にも、
その変数名が何らかのモジュールの名前で使われていないかを
いちいち気にしないといけないのってイケてないですよね?
モジュールは他の変数とのバッティングが起きないように、
特有のプレフィックスを付けた変数に読むようにした方がいいと思います
$fsとか$httpとか。
そうですね?
変数名を決める時にも、
その変数名が何らかのモジュールの名前で使われていないかを
いちいち気にしないといけないのってイケてないですよね?
モジュールは他の変数とのバッティングが起きないように、
特有のプレフィックスを付けた変数に読むようにした方がいいと思います
$fsとか$httpとか。
そうですね?
323デフォルトの名無しさん
2017/11/29(水) 01:37:28.79ID:lXeLFRwv324デフォルトの名無しさん
2017/11/29(水) 01:43:52.82ID:/RfTzpPk Babel なら、import 文を使う
import A from './a/A'
import React from 'react'
import A from './a/A'
import React from 'react'
325デフォルトの名無しさん
2017/11/29(水) 02:05:27.98ID:NqL6/Qja importですか
見た記憶はありますが何か分かっていませんでした
調べてみます
ありがとうございました
見た記憶はありますが何か分かっていませんでした
調べてみます
ありがとうございました
326デフォルトの名無しさん
2017/11/29(水) 20:03:19.07ID:Va1ZfTbH327デフォルトの名無しさん
2017/11/30(木) 00:49:24.21ID:IRGu1MZY PHPはphp.netにドキュメントが集積されていて
そこを検索すれば大抵のことは分かるのですが、
node.jsにはそういう場所はないのでしょうか?
https://nodejs.org/にコアモジュールのドキュメントはありますが
いまいち見にくい感じです
この公式サイトがnode.jsの最良のドキュメントなのでしょうか?
いいドキュメントのある場所があれば教えて下さい
そこを検索すれば大抵のことは分かるのですが、
node.jsにはそういう場所はないのでしょうか?
https://nodejs.org/にコアモジュールのドキュメントはありますが
いまいち見にくい感じです
この公式サイトがnode.jsの最良のドキュメントなのでしょうか?
いいドキュメントのある場所があれば教えて下さい
328デフォルトの名無しさん
2017/11/30(木) 02:39:03.46ID:eLldrsxy PHPは言語及び環境と豊富なAPIのセットだが
Nodeはサーバ構築の為の最低限の環境とAPIしかない
それを知るにはそこで十分
Nodeはサーバ構築の為の最低限の環境とAPIしかない
それを知るにはそこで十分
329デフォルトの名無しさん
2017/12/01(金) 01:46:38.66ID:Pv6jsFPS そうですか
どうも引っかかるところが多くて学習がサクサク進まない気がしますが
慣れでしょうか
ありがとうございました
どうも引っかかるところが多くて学習がサクサク進まない気がしますが
慣れでしょうか
ありがとうございました
330デフォルトの名無しさん
2017/12/01(金) 08:48:40.71ID:2kltAqhV 基本的なJSの非同期の使いこなしと
サーバーの立場は知っておかないと躓くかもな
サーバーの立場は知っておかないと躓くかもな
331デフォルトの名無しさん
2017/12/01(金) 09:47:18.01ID:AT8KOZxB332デフォルトの名無しさん
2017/12/01(金) 18:00:25.82ID:5uJXNlV4 過去の経緯を知っていると最近のjsとnodeはよくなってきたなあとも思えるが、初学者にはまだまだとっちらかった学びにくい界隈だろうな
333デフォルトの名無しさん
2017/12/01(金) 18:06:30.81ID:AT8KOZxB >>332
大概ReactとかVueとかなら簡単に使えるようにするためのbootstrap環境用意してるからそっちを使ったほうがいい。
大概ReactとかVueとかなら簡単に使えるようにするためのbootstrap環境用意してるからそっちを使ったほうがいい。
334デフォルトの名無しさん
2017/12/01(金) 19:52:18.61ID:XI19UOB5 MicrosoftやgithubのログインみたいにID パスワードが合ってるかどうかの判断を画面切り替えないでやるのってJavaScriptでは無理なんかな?
335デフォルトの名無しさん
2017/12/01(金) 20:33:46.71ID:u+SbUYxr できるよ
336デフォルトの名無しさん
2017/12/01(金) 20:50:54.89ID:XI19UOB5 検索の仕方が悪いのかな
全然見つからん…
是非教えて頂きたい
全然見つからん…
是非教えて頂きたい
337デフォルトの名無しさん
2017/12/01(金) 23:31:08.67ID:2kltAqhV JSとしてはただサーバーに問い合わせるだけだぞ?
Ajaxじゃん
実際ログイン管理をするのはサーバー
Ajaxじゃん
実際ログイン管理をするのはサーバー
338デフォルトの名無しさん
2017/12/01(金) 23:57:15.06ID:jFvanr8n >>336
react使えばいいのよ
react使えばいいのよ
339デフォルトの名無しさん
2017/12/01(金) 23:57:58.09ID:LJ6W9d+W XMLHttpRequest, fetch
340デフォルトの名無しさん
2017/12/02(土) 00:28:15.90ID:UE7qzU9L 例えば、localStorage から値を取得して、それと比較して
一致していれば、
<div id="passw">OK</div>
不一致なら、
<div id="passw">ダメ</div>
とかに更新するだけだろ
実際には、localStorage じゃなくて、どこかのサーバーに問い合わせるけど
一致していれば、
<div id="passw">OK</div>
不一致なら、
<div id="passw">ダメ</div>
とかに更新するだけだろ
実際には、localStorage じゃなくて、どこかのサーバーに問い合わせるけど
341デフォルトの名無しさん
2017/12/02(土) 00:33:02.19ID:4pFOIwNa <div id="message">…</div>
divタグ内の要素が増えたとき、もしくは
特定の関数が呼ばれたときハンドリングする方法はありませんか?
onchangeでもonreloadでも感知できません。
divタグ内の要素が増えたとき、もしくは
特定の関数が呼ばれたときハンドリングする方法はありませんか?
onchangeでもonreloadでも感知できません。
342デフォルトの名無しさん
2017/12/02(土) 00:45:30.74ID:CkwJjnIF >>341
MutationObserver
MutationObserver
343デフォルトの名無しさん
2017/12/02(土) 01:05:45.09ID:NPLQU/VQ344デフォルトの名無しさん
2017/12/02(土) 03:38:45.44ID:UE7qzU9L345デフォルトの名無しさん
2017/12/02(土) 08:39:48.21ID:CkwJjnIF Web制作板は荒れているので、プログラム板で質問しても良い
実際には人数が多いのではなく、少人数が馴れ合ってるだけ
実際には人数が多いのではなく、少人数が馴れ合ってるだけ
346デフォルトの名無しさん
2017/12/02(土) 09:06:09.90ID:KabSb+PE VSCodeはデフォルトでnode.jsのデバッグができるんですね
これはすごくいいのでは?
当然ですが標準モジュールもJavaScriptで書かれているので、
デバッガで追っていけば関数のインターフェイスや処理も良く分かります
PHPに比べてドキュメントの整備がいまいちに見えたのは、
ソースコードを見れば分かるだろということかもしれませんね
これはすごくいいのでは?
当然ですが標準モジュールもJavaScriptで書かれているので、
デバッガで追っていけば関数のインターフェイスや処理も良く分かります
PHPに比べてドキュメントの整備がいまいちに見えたのは、
ソースコードを見れば分かるだろということかもしれませんね
347デフォルトの名無しさん
2017/12/02(土) 12:16:56.69ID:gOjO7QJq Nodeの数少なく基礎的で単純なAPIに
あれ以上何の説明がいると言うんだろうか?
あれ以上何の説明がいると言うんだろうか?
348デフォルトの名無しさん
2017/12/02(土) 13:02:03.55ID:rAnS15Bb >>345
せやね。俺はこっちも見てるのでどちらでも答えるよ
せやね。俺はこっちも見てるのでどちらでも答えるよ
349デフォルトの名無しさん
2017/12/02(土) 14:04:42.19ID:WQRORJsZ >>347
「ゆとり女には無理」って説明だろうね。
つかNodeスレで聞けよな。
ただまあここら辺がPHPerが馬鹿にされる原因でもあるのだろう。
PHPは言語が糞過ぎて類推が利かなすぎる。だから全部マニュアルを読んで覚える物だと感違いしてるのさ。
「ゆとり女には無理」って説明だろうね。
つかNodeスレで聞けよな。
ただまあここら辺がPHPerが馬鹿にされる原因でもあるのだろう。
PHPは言語が糞過ぎて類推が利かなすぎる。だから全部マニュアルを読んで覚える物だと感違いしてるのさ。
350デフォルトの名無しさん
2017/12/02(土) 16:17:49.61ID:Wi8X5cnu >>347
php.netと比べればいくらでも改善の余地が見つかると思いますが?
php.netと比べればいくらでも改善の余地が見つかると思いますが?
351デフォルトの名無しさん
2017/12/02(土) 16:19:41.28ID:Wi8X5cnu >>349
web制作版がクライアントサイドJavaScript、
プログラム板がサーバサイドJavaScript、
つまりnode.js用のスレだと認識していますが違うのですか?
おかしなことを言う人がいるものですね
web制作版がクライアントサイドJavaScript、
プログラム板がサーバサイドJavaScript、
つまりnode.js用のスレだと認識していますが違うのですか?
おかしなことを言う人がいるものですね
352デフォルトの名無しさん
2017/12/02(土) 16:32:35.34ID:WQRORJsZ >>351
どこを見てそんな解釈が?
おまえは多分一生上達しないタイプだ。偶にいるんだよ、何でこいつは相変わらずセンス無いままなのだろう、て奴が。
多分、プログラマ辞めて違う職種に転職した方がいいぞマジで。見込みなしだよ。
どこを見てそんな解釈が?
おまえは多分一生上達しないタイプだ。偶にいるんだよ、何でこいつは相変わらずセンス無いままなのだろう、て奴が。
多分、プログラマ辞めて違う職種に転職した方がいいぞマジで。見込みなしだよ。
353デフォルトの名無しさん
2017/12/02(土) 17:16:12.03ID:VpKdJFYd >>351
その理屈だと本来WebProg板を探すべき
その理屈だと本来WebProg板を探すべき
354デフォルトの名無しさん
2017/12/03(日) 02:09:45.76ID:qnn1ynO5355デフォルトの名無しさん
2017/12/03(日) 02:31:12.70ID:vU8ed0NF Ctrl+,
356デフォルトの名無しさん
2017/12/03(日) 04:45:44.80ID:qnn1ynO5 入力補完は型定義ファイル(拡張子d.ts)によって行われる
そしてこの型定義ファイルとはTypeScriptのファイル
ということのようなので、TypeScriptによる説明しかないのでしょうか?
むしろTypeScriptを使えという圧を感じないでもありません、
(VSCodeもTypeScriptもMS製なので)
TypeScriptはAngularにも採用されているし、おそらくいいものなのでしょうけど、
今すぐに使いたいとも思いません
単にJSDocのコメントを表示して欲しいだけなのですが
それは出来ないのでしょうか?
そしてこの型定義ファイルとはTypeScriptのファイル
ということのようなので、TypeScriptによる説明しかないのでしょうか?
むしろTypeScriptを使えという圧を感じないでもありません、
(VSCodeもTypeScriptもMS製なので)
TypeScriptはAngularにも採用されているし、おそらくいいものなのでしょうけど、
今すぐに使いたいとも思いません
単にJSDocのコメントを表示して欲しいだけなのですが
それは出来ないのでしょうか?
357デフォルトの名無しさん
2017/12/03(日) 05:33:22.31ID:e/8zs/a/ 相変わらず検索ということをしないなぁ
自分が書いた文そのままアドレスバーに打ち込めよ
自分が書いた文そのままアドレスバーに打ち込めよ
358デフォルトの名無しさん
2017/12/03(日) 13:41:20.68ID:1Lfl4AAz TypeScriptの記法が良く分からなかったのですが
よく見たら引数の型をはっきり書いてるんですね
これは、率直にいってJavaScriptより良さそうです
実際IntelliSenseがTypeScriptベースで、素のJavaScriptの情報を提供していないのは
それがJavaScriptよりもいいものだ、という確信があるからでしょう
IntelliSenseが何を書いているか分かる程度には
TypeScriptを勉強するのが一番いいと思いました
もしかして生JavaScriptは終わりつつある言語なのでは?
>>357
検索で済んだら質問スレいらないんですよ
よく見たら引数の型をはっきり書いてるんですね
これは、率直にいってJavaScriptより良さそうです
実際IntelliSenseがTypeScriptベースで、素のJavaScriptの情報を提供していないのは
それがJavaScriptよりもいいものだ、という確信があるからでしょう
IntelliSenseが何を書いているか分かる程度には
TypeScriptを勉強するのが一番いいと思いました
もしかして生JavaScriptは終わりつつある言語なのでは?
>>357
検索で済んだら質問スレいらないんですよ
359デフォルトの名無しさん
2017/12/03(日) 21:39:29.63ID:e/8zs/a/ ここは君のふと思いついた疑問を垂れ流すスレじゃないから
本当に困った人ができるだけ検索するなり自己解決しようとしても分からなかったことを聞くスレだからね
自分で助かろうとする人を救うスレだから、勘違いしないように
本当に困った人ができるだけ検索するなり自己解決しようとしても分からなかったことを聞くスレだからね
自分で助かろうとする人を救うスレだから、勘違いしないように
360デフォルトの名無しさん
2017/12/03(日) 22:29:37.45ID:CdnEE9AY Haxe でも、FlashDevelop がデフォルトエディタだけど、
VS Code 用のプラグインもある
検索すれば?
VS Code 用のプラグインもある
検索すれば?
361デフォルトの名無しさん
2017/12/04(月) 14:00:35.10ID:bcJqUv+k Haxeっていう言語は知らなかったのですが
>Adobe Flashおよび独自のNekoVMで実行可能なバイトコードにコンパイルされるほか、
>JavaScript、ActionScript、C++、C#、Java、PHP、Python、Luaへの
>ソースコードの変換が可能
すごくトリッキーな、面白い言語ですね
全然性質の違うJavaScriptにもCにも変換するというのがすごい
>Adobe Flashおよび独自のNekoVMで実行可能なバイトコードにコンパイルされるほか、
>JavaScript、ActionScript、C++、C#、Java、PHP、Python、Luaへの
>ソースコードの変換が可能
すごくトリッキーな、面白い言語ですね
全然性質の違うJavaScriptにもCにも変換するというのがすごい
362デフォルトの名無しさん
2017/12/04(月) 14:50:24.83ID:bcJqUv+k Haxeについてのネット上の記事を読んでみましたが
AltJSとしてはやはり無理があるようですね
言語をコンバートできたとしても
APIの部分でのすりあわせがあるので。
開発者がゲームを作っている人らしく、
そういう人じゃないとまず作らないような、野生感満点のプロダクトですね
AltJSとしてはやはり無理があるようですね
言語をコンバートできたとしても
APIの部分でのすりあわせがあるので。
開発者がゲームを作っている人らしく、
そういう人じゃないとまず作らないような、野生感満点のプロダクトですね
363デフォルトの名無しさん
2017/12/04(月) 23:20:05.94ID:7G6x18yw 世の中には同じ疑問を持っているやつが沢山いて、そいつら向けの解説記事も沢山ある
検索してそう言う記事や文献がないと言う事は、その問題が解決されていないと言う事だ
検索で済めば質問スレは不要とか言ってるバカは検索能力が欠如していて、文献を読む能力も皆無なのだろう
googleがあれば質問スレなんか不要
と言う事で、次スレは立てないように
検索してそう言う記事や文献がないと言う事は、その問題が解決されていないと言う事だ
検索で済めば質問スレは不要とか言ってるバカは検索能力が欠如していて、文献を読む能力も皆無なのだろう
googleがあれば質問スレなんか不要
と言う事で、次スレは立てないように
364デフォルトの名無しさん
2017/12/04(月) 23:50:23.98ID:WhmjW5An おすなよ、おすなよ
365デフォルトの名無しさん
2017/12/05(火) 00:04:14.36ID:KWhjoBwr >>358みたいな馬鹿は死ねでいいだろ
ただ、こういう馬鹿も一定数居るところを見ると、
有料で初心者質問チャットをすると成立するのかね?
知恵遅れのベストアンサーってこれか?と思って調べてみたが、換金は無理っぽいんだが。
ただ、こういう馬鹿も一定数居るところを見ると、
有料で初心者質問チャットをすると成立するのかね?
知恵遅れのベストアンサーってこれか?と思って調べてみたが、換金は無理っぽいんだが。
366デフォルトの名無しさん
2017/12/05(火) 00:28:22.51ID:MhmSijC3 毎年必ず初心者は出てくる
小学生、幼稚園児、乳児、いつからプログラミングを始めても必ず初心者の状態はある
だから初心者というのはいなくならない
小学生、幼稚園児、乳児、いつからプログラミングを始めても必ず初心者の状態はある
だから初心者というのはいなくならない
367デフォルトの名無しさん
2017/12/05(火) 00:33:10.00ID:KWhjoBwr いやそういう意味じゃねえよ
検索しない馬鹿は死ね、だろ
つかこのスレ相変わらず日本語が通じねえな
検索しない馬鹿は死ね、だろ
つかこのスレ相変わらず日本語が通じねえな
368デフォルトの名無しさん
2017/12/05(火) 02:06:20.09ID:yXQoPrVt369デフォルトの名無しさん
2017/12/05(火) 02:07:41.11ID:hFLcfi/C 次スレの代わりに
バカに検索キーワードを教えてあげるスレ
バカに検索キーワードを教えてあげるスレ
370デフォルトの名無しさん
2017/12/05(火) 02:10:55.64ID:hFLcfi/C371デフォルトの名無しさん
2017/12/05(火) 02:12:30.66ID:hFLcfi/C ローカルルールを守らないスレ荒らしに回答する事は荒らしに加担する事なので慎むように
372デフォルトの名無しさん
2017/12/05(火) 02:21:01.49ID:yXQoPrVt クライアントJavaScriptでは
function test(){
console.log('function called');
}
var fnName = "test";
window[fnName]();
みたいな形で変数に関数名を入れて呼ぶことが出来ますが
node.jsでは出来ないのでしょうか?
そのスコープをオブジェクト化ものがあればいいのですが。
function test(){
console.log('function called');
}
var fnName = "test";
window[fnName]();
みたいな形で変数に関数名を入れて呼ぶことが出来ますが
node.jsでは出来ないのでしょうか?
そのスコープをオブジェクト化ものがあればいいのですが。
373デフォルトの名無しさん
2017/12/05(火) 02:21:55.08ID:yXQoPrVt374デフォルトの名無しさん
2017/12/05(火) 11:25:42.83ID:sRCR7R5n プライドが高く自己アピールが激しい馬鹿はホント救いようがない
375デフォルトの名無しさん
2017/12/05(火) 22:29:23.97ID:E5nY6LZp >>372の件ですが
function test(){
console.log('function called');
}
var fnName = "test";
eval(fnName+'()');
で出来ました
evalは使うべきでないものという先入観があってすっかり忘れていましたが、
本当に使うべきではないのかをよく検討すべきですよね?
外からやってきたダーティーな値を引数にする場合や
パフォーマンスがよほどシビアな場合以外は
特に使っても問題ないと思います
どうなのでしょうか?
function test(){
console.log('function called');
}
var fnName = "test";
eval(fnName+'()');
で出来ました
evalは使うべきでないものという先入観があってすっかり忘れていましたが、
本当に使うべきではないのかをよく検討すべきですよね?
外からやってきたダーティーな値を引数にする場合や
パフォーマンスがよほどシビアな場合以外は
特に使っても問題ないと思います
どうなのでしょうか?
376デフォルトの名無しさん
2017/12/05(火) 22:42:58.23ID:7E8Z5SC6 だめ、そんなことしなくてできる
377デフォルトの名無しさん
2017/12/05(火) 22:43:23.95ID:7E8Z5SC6 言っとくがグローバルな変数は使うな
378デフォルトの名無しさん
2017/12/05(火) 23:17:41.42ID:bv7GN3wK eval とか、グローバル変数などは、仕事では使えない
ほとんどの本や、プロジェクトで禁止されている
ほとんどの本や、プロジェクトで禁止されている
379デフォルトの名無しさん
2017/12/06(水) 00:04:27.12ID:6mLln89k Nodeでは最上位オブジェクト名はglobalまたはrootまたはGLOBALだけど
function test(){}
で定義してもglobal.testにマッピングされないようなので、
global['test']()でも呼び出せないですね。
var a = {};
a.test = function(){};
a['test']();
程度にとどめておくのがいいかと。
function test(){}
で定義してもglobal.testにマッピングされないようなので、
global['test']()でも呼び出せないですね。
var a = {};
a.test = function(){};
a['test']();
程度にとどめておくのがいいかと。
380デフォルトの名無しさん
2017/12/06(水) 00:52:15.86ID:yAnE7imd381デフォルトの名無しさん
2017/12/06(水) 00:59:15.86ID:E7ZMan5g 自演乙
382デフォルトの名無しさん
2017/12/06(水) 01:10:47.84ID:yAnE7imd VSCodeってGit連携もイケてますし、
JavaScript/TypeScript用のプレイグラウンドの拡張機能もありますし
node.jsとの相性最高なのでは?
いまいちイモい感じだったMSが、こんなモダンなエディタを無料で提供するなんて
いい時代ですね
>>381
何故そう思ったんですか?
不思議な発想ですね
JavaScript/TypeScript用のプレイグラウンドの拡張機能もありますし
node.jsとの相性最高なのでは?
いまいちイモい感じだったMSが、こんなモダンなエディタを無料で提供するなんて
いい時代ですね
>>381
何故そう思ったんですか?
不思議な発想ですね
383デフォルトの名無しさん
2017/12/06(水) 07:48:21.64ID:0Ad3mlcJ384デフォルトの名無しさん
2017/12/06(水) 07:50:30.30ID:0Ad3mlcJ385デフォルトの名無しさん
2017/12/06(水) 10:05:51.53ID:gu2sxgoY Nodeとか関係なくグローバルオブジェクト=グローバルスコープがJSの仕様何だから>>379は間違いだけどな
386デフォルトの名無しさん
2017/12/06(水) 15:40:54.20ID:s/vk2t6t youtubeのapiとかgoogleのとか使いたいときって
NODE。JSというのをインストールすればいいんですか?
NODE.JSというのはサバ―サイドらしいんですけど
サバ―じゃなくてもいいんですか?
NODE。JSというのをインストールすればいいんですか?
NODE.JSというのはサバ―サイドらしいんですけど
サバ―じゃなくてもいいんですか?
387デフォルトの名無しさん
2017/12/06(水) 17:20:18.39ID:EVkWZnTM388デフォルトの名無しさん
2017/12/06(水) 17:23:46.06ID:akGob5Tq389デフォルトの名無しさん
2017/12/06(水) 17:31:28.95ID:EVkWZnTM 荒らしは質問スレなら問答無用に質問者に偉そうにできると勘違いしているゴミなので
質問者と回答者で協力し、技術圧で追い出しましょう
ひたすら技術的な話だけしていれば自然と消えて行きます
質問者と回答者で協力し、技術圧で追い出しましょう
ひたすら技術的な話だけしていれば自然と消えて行きます
390デフォルトの名無しさん
2017/12/06(水) 17:57:00.02ID:6mLln89k >>380
スコープのどこに書くかで動作が若干違います
グローバルスコープで定義するとwindowにマッピングされます
function test1(){}
window.test1(); //呼び出し可能
しかし、関数内で定義した場合はwindowにマッピングされません
(function(){
function test2(){}
window.test2(); // 未定義エラー
})()
>>380の書き方からすると、この違いについて理解されていると思いますが、
スコープの最上位オブジェクトは存在しません(スクリプトからアクセスできない)ので、何かにマッピングされるということはありません
後者の状況でwindowから呼び出したい場合は
window.test2 = function(){};
(Nodeでは global.test2 = function(){}; )
という形で定義する必要があります
が、windowやglobaのプロパティ・メソッドとして定義することは
グローバル変数と同じ扱いなので、あまりお勧めしません
スコープのどこに書くかで動作が若干違います
グローバルスコープで定義するとwindowにマッピングされます
function test1(){}
window.test1(); //呼び出し可能
しかし、関数内で定義した場合はwindowにマッピングされません
(function(){
function test2(){}
window.test2(); // 未定義エラー
})()
>>380の書き方からすると、この違いについて理解されていると思いますが、
スコープの最上位オブジェクトは存在しません(スクリプトからアクセスできない)ので、何かにマッピングされるということはありません
後者の状況でwindowから呼び出したい場合は
window.test2 = function(){};
(Nodeでは global.test2 = function(){}; )
という形で定義する必要があります
が、windowやglobaのプロパティ・メソッドとして定義することは
グローバル変数と同じ扱いなので、あまりお勧めしません
391デフォルトの名無しさん
2017/12/06(水) 19:25:11.50ID:Gv6Lsm12 普通、各オブジェクトを1つずつ、グローバル変数にはしない。
そうすると、グローバル変数の数が多すぎる
モジュール(1つのファイル)全体で、1つのグローバル変数にする
そうすると、グローバル変数の数が多すぎる
モジュール(1つのファイル)全体で、1つのグローバル変数にする
392デフォルトの名無しさん
2017/12/06(水) 20:50:30.84ID:E7ZMan5g393デフォルトの名無しさん
2017/12/06(水) 22:44:39.73ID:Nz0YboQ1 くっそ初心者の質問で悪いんですが、
指南してもらえると嬉しいです。
下記のコードで同じ画像を4つ横に並べようと思ってるんですが、並びません。
なんとなく理由は思い浮かぶんですが、
(getElementByIdで渡されたのは値ではなく、参照的扱い?)
どう書けばかっこよく書けるのか分かりません。
かっこいいJavaScripterになりたいので厳しめに教えてください。
<img id="gazou" src="image/gazou.png" width="200" height="200">
var dispGazou= function(){
for(var i = 0; i < 4; i++){
var k = document.getElementById("gazou");
k.style.marginLeft = (parseFloat(k.width) * i) + "px";
dA.appendChild(k);
}
}
指南してもらえると嬉しいです。
下記のコードで同じ画像を4つ横に並べようと思ってるんですが、並びません。
なんとなく理由は思い浮かぶんですが、
(getElementByIdで渡されたのは値ではなく、参照的扱い?)
どう書けばかっこよく書けるのか分かりません。
かっこいいJavaScripterになりたいので厳しめに教えてください。
<img id="gazou" src="image/gazou.png" width="200" height="200">
var dispGazou= function(){
for(var i = 0; i < 4; i++){
var k = document.getElementById("gazou");
k.style.marginLeft = (parseFloat(k.width) * i) + "px";
dA.appendChild(k);
}
}
394デフォルトの名無しさん
2017/12/07(木) 00:48:56.51ID:VqpUyywF >dA.appendChild(k);
dA という変数が存在しない
スタイルの設定など、DOM 操作なら、jQuery が簡単
それと、質問はこのスレよりも、web制作管理板のJS スレで聞いた方が良い。
向こうの板の方が、人が多いから
dA という変数が存在しない
スタイルの設定など、DOM 操作なら、jQuery が簡単
それと、質問はこのスレよりも、web制作管理板のJS スレで聞いた方が良い。
向こうの板の方が、人が多いから
395デフォルトの名無しさん
2017/12/07(木) 00:53:34.20ID:kyxQutt+ age
396デフォルトの名無しさん
2017/12/07(木) 00:54:03.82ID:xz3KkEcx >>393
たいした工夫もなく書くとするとこんな感じかな。
これはjQueryを使ったやりかた
https://jsfiddle.net/8cLk4adb/
<img id="gazou" src="https://placehold.jp/12/c42d3f/ffffff/50x50.png">
<div id="result"></div>
for (let i = 0; i < 4; i++) {
$("#gazou").clone().removeAttr('id').appendTo("#result");
}
要は要素の複製をしてないのが悪いということ
たいした工夫もなく書くとするとこんな感じかな。
これはjQueryを使ったやりかた
https://jsfiddle.net/8cLk4adb/
<img id="gazou" src="https://placehold.jp/12/c42d3f/ffffff/50x50.png">
<div id="result"></div>
for (let i = 0; i < 4; i++) {
$("#gazou").clone().removeAttr('id').appendTo("#result");
}
要は要素の複製をしてないのが悪いということ
397デフォルトの名無しさん
2017/12/07(木) 00:55:39.17ID:kyxQutt+ あ、説明忘れてた。removeAttrしてるのは、
同じIDを複数作ることは許されてないから
同じIDを複数作ることは許されてないから
398デフォルトの名無しさん
2017/12/07(木) 03:26:45.64ID:3cBZxP60 >>389
荒らすなゴミクズ
荒らすなゴミクズ
399デフォルトの名無しさん
2017/12/07(木) 03:38:39.99ID:aN6m9OAD 流されてしまったので>>386もお願いします。
400デフォルトの名無しさん
2017/12/07(木) 08:39:08.46ID:X4iAmJSx401デフォルトの名無しさん
2017/12/07(木) 19:33:03.11ID:UFJ/HYJM httpモジュールやrouterモジュールを使って
node.jsでちょっとしたサーバを作っています
routerはexpressの一部を切り出したモジュールで、
express同様、
router.use(bodyParser.json());
みたいな感じにミドルウェアを登録します
リクエストボディ関連で良く分からない挙動が出ているので、
bodyParserで処理する前のリクエストボディを確認したいのですが、
どうやればいいのでしょうか?
node.jsでちょっとしたサーバを作っています
routerはexpressの一部を切り出したモジュールで、
express同様、
router.use(bodyParser.json());
みたいな感じにミドルウェアを登録します
リクエストボディ関連で良く分からない挙動が出ているので、
bodyParserで処理する前のリクエストボディを確認したいのですが、
どうやればいいのでしょうか?
402デフォルトの名無しさん
2017/12/07(木) 19:48:15.48ID:UFJ/HYJM httpのrequestハンドラの中にブレークポイントを設定して
requestオブジェクトを見てみても、それらしいものがないものが見当たりません
socketとかconnectionを持っているので、
これを使ってストリームを読んだりするのでしょうか?
requestオブジェクトを見てみても、それらしいものがないものが見当たりません
socketとかconnectionを持っているので、
これを使ってストリームを読んだりするのでしょうか?
403デフォルトの名無しさん
2017/12/07(木) 22:48:50.60ID:UFJ/HYJM >>402の件ですが
http://m12i.hatenablog.com/entry/2016/11/19/180937
ここを読んで分かったのですが、
requestオブジェクト自体がReadableストリームでした
なのでdataハンドラとendハンドラを使ってデータを読み込める
それがリクエストボディ、ということなんですね
http://m12i.hatenablog.com/entry/2016/11/19/180937
ここを読んで分かったのですが、
requestオブジェクト自体がReadableストリームでした
なのでdataハンドラとendハンドラを使ってデータを読み込める
それがリクエストボディ、ということなんですね
404デフォルトの名無しさん
2017/12/08(金) 03:52:29.78ID:e0K/WWuz 流されてしまったので>>386もお願いします。
405デフォルトの名無しさん
2017/12/08(金) 04:08:48.08ID:mLINq33C >>404
クライアントサイドJavaScript=ブラウザの上で動くJavaScript
サーバサイドJavaScript=OSの上で動くJavaScript
という意味です
Windowsやmacのような一般的なパソコンがあるなら、node.jsも使えますよ
クライアントサイドJavaScript=ブラウザの上で動くJavaScript
サーバサイドJavaScript=OSの上で動くJavaScript
という意味です
Windowsやmacのような一般的なパソコンがあるなら、node.jsも使えますよ
406デフォルトの名無しさん
2017/12/08(金) 04:17:07.90ID:e0K/WWuz ありがとうございます。
407デフォルトの名無しさん
2017/12/08(金) 09:04:19.59ID:s68wsKP7 俺も中学でJS知ったときはこんな感じで下手くそな自演して悦に入ってたわ
自尊心は高くアピールしたいけど臆病なんだよな、分かるよ
自尊心は高くアピールしたいけど臆病なんだよな、分かるよ
408デフォルトの名無しさん
2017/12/08(金) 13:40:21.78ID:w1hGvN04409デフォルトの名無しさん
2017/12/09(土) 00:09:34.41ID:ihDnRLCG node.js界ではrequestにreq、responseにres
という変数名を当てていることが多いようですが
自動補完が発達した今では、
セコい省略をするよりも分かりやすい変数名を付ける方を優先すべき、
と思っていたのでモヤモヤします
reqやresを使う合理的な理由はあるのでしょうか?
という変数名を当てていることが多いようですが
自動補完が発達した今では、
セコい省略をするよりも分かりやすい変数名を付ける方を優先すべき、
と思っていたのでモヤモヤします
reqやresを使う合理的な理由はあるのでしょうか?
410デフォルトの名無しさん
2017/12/09(土) 00:29:04.97ID:/arVeZ+Z >>409
ようするに可読性が十分であるかが問題の焦点だよ
長過ぎる名前っていうのも実は場合によっては読みにくい
ローカル変数のような使い捨て変数に長過ぎる名前をつけるなんてありえないから
まず短い名前が許されるのは、その変数のスコープが小さい場合
俺のルールでは一文字の変数に略して良いのは、その変数が一行のスコープしか存在しない場合だな
例えば requests.map(r => foo(r)) みたいな感じな。
なぜ一文字でいいかというと、それはその一行を見るだけでrが何を意味するのかわかるからだ。
reqやresは関数やブロックの中でだけ使われる変数ならOKだ。
大体予想がつき、それを確定するにはその前後数行を読めばいいだけ
だから関数やブロックと言っても短い行数(どんなに長くても30行程度)である必要がある
だけど普通はその程度で書く。書かなければいけないレベル。だから短くても許される
省略してはいけないのは、略称を見ても予想がつかないもの。
この時予想がつくかどうかは、その人のバックグラウンドできまるわけだが
少なくともプログラミングをしているのだからソフトウェア用語は略しても
(スコープが小さいことが前提だが)予想がつく
あとはその業務で誰もがそう略しているといえるようなものだけだなそうでないものは略してはいけない
> 自動補完が発達した今では、
自動補完は「書く時」にサポートしてくれるものであって「読む時」にサポートしてくれるものじゃない。
ぶっちゃけ書く時間というのは無視できる。読むときのほうが何度も読むし時間がかかる
その時コードが読めればそれで十分なんだよ。だから予想がつく略であればOK
そのためにも数十行程度のスコープであることが前提
名前を省略するなっていうのは、とても大きなスコープの場合の話
技術力が高い人ほど、関数の行数は短くなり、わかりやすくなり、略した変数を使う権利が与えられるw
手段と目的を履き違えたらダメだよ。略がいけないのは読んだ人がわかりにくいからで
別にわかりにくくないのであれば、略してOK
ようするに可読性が十分であるかが問題の焦点だよ
長過ぎる名前っていうのも実は場合によっては読みにくい
ローカル変数のような使い捨て変数に長過ぎる名前をつけるなんてありえないから
まず短い名前が許されるのは、その変数のスコープが小さい場合
俺のルールでは一文字の変数に略して良いのは、その変数が一行のスコープしか存在しない場合だな
例えば requests.map(r => foo(r)) みたいな感じな。
なぜ一文字でいいかというと、それはその一行を見るだけでrが何を意味するのかわかるからだ。
reqやresは関数やブロックの中でだけ使われる変数ならOKだ。
大体予想がつき、それを確定するにはその前後数行を読めばいいだけ
だから関数やブロックと言っても短い行数(どんなに長くても30行程度)である必要がある
だけど普通はその程度で書く。書かなければいけないレベル。だから短くても許される
省略してはいけないのは、略称を見ても予想がつかないもの。
この時予想がつくかどうかは、その人のバックグラウンドできまるわけだが
少なくともプログラミングをしているのだからソフトウェア用語は略しても
(スコープが小さいことが前提だが)予想がつく
あとはその業務で誰もがそう略しているといえるようなものだけだなそうでないものは略してはいけない
> 自動補完が発達した今では、
自動補完は「書く時」にサポートしてくれるものであって「読む時」にサポートしてくれるものじゃない。
ぶっちゃけ書く時間というのは無視できる。読むときのほうが何度も読むし時間がかかる
その時コードが読めればそれで十分なんだよ。だから予想がつく略であればOK
そのためにも数十行程度のスコープであることが前提
名前を省略するなっていうのは、とても大きなスコープの場合の話
技術力が高い人ほど、関数の行数は短くなり、わかりやすくなり、略した変数を使う権利が与えられるw
手段と目的を履き違えたらダメだよ。略がいけないのは読んだ人がわかりにくいからで
別にわかりにくくないのであれば、略してOK
411デフォルトの名無しさん
2017/12/09(土) 01:12:56.78ID:as7dcCOb >>410
長々と乙だが、お前らゆとりの問題はそこなんだよ。
お前らがそんなレスをしている限り、お前らが居るスレが良スレになることはない。
誰を助けるべきか、よく考えろ。
パヨクがグダグダよく言っているが、あれは単なる論点のすり替えだ。騙されてはいけない。
韓国人やパヨクが嫌われているのは、迷惑行為をしているからでしかない。差別ではなく、区別だ。
お前はこのnode女を飼うつもりなのか?それでスレが良くなるとでも思っているのか?
お花畑すぎるのも、周りの人には大迷惑だということに気づけ。
ここら辺に関してゆとりは全く傍若無人だから嫌われるし、
俺は「ゆとりも殺さないといけない」と結論づけてる。
もっとも、被害を被るのは結局お前らであり、
また、自覚してないようだが、既にそうなっているんだがな。
長々と乙だが、お前らゆとりの問題はそこなんだよ。
お前らがそんなレスをしている限り、お前らが居るスレが良スレになることはない。
誰を助けるべきか、よく考えろ。
パヨクがグダグダよく言っているが、あれは単なる論点のすり替えだ。騙されてはいけない。
韓国人やパヨクが嫌われているのは、迷惑行為をしているからでしかない。差別ではなく、区別だ。
お前はこのnode女を飼うつもりなのか?それでスレが良くなるとでも思っているのか?
お花畑すぎるのも、周りの人には大迷惑だということに気づけ。
ここら辺に関してゆとりは全く傍若無人だから嫌われるし、
俺は「ゆとりも殺さないといけない」と結論づけてる。
もっとも、被害を被るのは結局お前らであり、
また、自覚してないようだが、既にそうなっているんだがな。
412デフォルトの名無しさん
2017/12/09(土) 01:41:15.62ID:ihDnRLCG413デフォルトの名無しさん
2017/12/09(土) 01:45:45.34ID:/arVeZ+Z >>411
いつも通りお前JavaScriptの話をしてないな
いつも通りお前JavaScriptの話をしてないな
414デフォルトの名無しさん
2017/12/09(土) 04:38:14.43ID:AH0VvwMJ >>410
そうそう、名前よりスコープを短く保つの大事
そうそう、名前よりスコープを短く保つの大事
415デフォルトの名無しさん
2017/12/09(土) 05:40:13.02ID:H4MZye12 その通り
スコープは短く、変数名は短くが重要
スコープは短く、変数名は短くが重要
416デフォルトの名無しさん
2017/12/09(土) 10:21:28.93ID:/arVeZ+Z スコープは短く。それができたなら変数名を短くする権利が与えられる
が正解な
が正解な
417デフォルトの名無しさん
2017/12/09(土) 10:25:04.49ID:4JIsVpvA ゴミクズの質問は
1 ゴミクズ以外の誰でも検索すれば一発でわかる
2 正答が存在しないことがわかりきっている
1はローカルルールにやめろとかいてあるし
2はこんな場末の掲示板でやっても見せ合いオナニーにしかならん
本当にゴミクズ
1 ゴミクズ以外の誰でも検索すれば一発でわかる
2 正答が存在しないことがわかりきっている
1はローカルルールにやめろとかいてあるし
2はこんな場末の掲示板でやっても見せ合いオナニーにしかならん
本当にゴミクズ
418デフォルトの名無しさん
2017/12/09(土) 11:15:52.51ID:as7dcCOb >>412-413
まあお前らが居る限り、
俺がどんだけ努力しても(俺流のやり方では)スレが正常化しないと分かってしまったからね。
俺は田んぼに肥料をやってたくさん米をならすことは出来るが、
それが全部お前らイナゴのエサになってしまうだけだと分かったら、
先にイナゴを殺すしかないだろ。だから、俺は
韓国人死ね
ゆとり死ね
な訳だ。ただし俺が老害化していて、俺の考えが間違っている可能性
(ゆとり流の別解法が存在する可能性)も勿論残っているから、俺はとりあえず傍観モードな訳だ。
お前らの回答には間違いも散見されるが、それについて指摘するつもりもない。
お前らのやり方で正常化するようなら、お前らの勝ちでいいし、俺ら老害は去るべきではある。
ただ本来は、お前らがルールだというのなら、お前らが新たに立てた別スレでやるのが筋であって、
旧来のスレを乗っ取ってやっているお前らにはどだい無理だというのも自明なんだが。
(お前らはお前らだけで人を集めるだけの魅力/能力がない、と自己証明している。
本当に良いスレが出来れば自然と人はそっちに流れるものでしかないんだが)
他言語スレ見て見ろ。JavaScriptのスレが如何に酷いかはよく分かる。
そして、2chのスレはどこでも同じような雰囲気だ。
それは「そういう物しかできないから」であり、また、「そうじゃないと持続しない」からなんだよ。
2chはずっとシステムを変えてない。
その中でお前らみたいに色々努力する奴も必ずいるし、俺も俺なりに抗ってみた時期もある。
でも結局、落ち着いているところに落ち着いている、というのが今の2chだ。
それ以上の物を作るのは相当に難しい。
今なぜこうなっているのかすら理解できないお前らみたいな馬鹿にはこれを凌駕するのは到底無理なわけだが、
まあそれでもお手並み拝見はするべき、だから傍観してる。
>>417の言うことは全く正解だ。
なぜ検索しないのかは俺にもさっぱり分からない。つか、検索した方が早いだろ。
まあお前らが居る限り、
俺がどんだけ努力しても(俺流のやり方では)スレが正常化しないと分かってしまったからね。
俺は田んぼに肥料をやってたくさん米をならすことは出来るが、
それが全部お前らイナゴのエサになってしまうだけだと分かったら、
先にイナゴを殺すしかないだろ。だから、俺は
韓国人死ね
ゆとり死ね
な訳だ。ただし俺が老害化していて、俺の考えが間違っている可能性
(ゆとり流の別解法が存在する可能性)も勿論残っているから、俺はとりあえず傍観モードな訳だ。
お前らの回答には間違いも散見されるが、それについて指摘するつもりもない。
お前らのやり方で正常化するようなら、お前らの勝ちでいいし、俺ら老害は去るべきではある。
ただ本来は、お前らがルールだというのなら、お前らが新たに立てた別スレでやるのが筋であって、
旧来のスレを乗っ取ってやっているお前らにはどだい無理だというのも自明なんだが。
(お前らはお前らだけで人を集めるだけの魅力/能力がない、と自己証明している。
本当に良いスレが出来れば自然と人はそっちに流れるものでしかないんだが)
他言語スレ見て見ろ。JavaScriptのスレが如何に酷いかはよく分かる。
そして、2chのスレはどこでも同じような雰囲気だ。
それは「そういう物しかできないから」であり、また、「そうじゃないと持続しない」からなんだよ。
2chはずっとシステムを変えてない。
その中でお前らみたいに色々努力する奴も必ずいるし、俺も俺なりに抗ってみた時期もある。
でも結局、落ち着いているところに落ち着いている、というのが今の2chだ。
それ以上の物を作るのは相当に難しい。
今なぜこうなっているのかすら理解できないお前らみたいな馬鹿にはこれを凌駕するのは到底無理なわけだが、
まあそれでもお手並み拝見はするべき、だから傍観してる。
>>417の言うことは全く正解だ。
なぜ検索しないのかは俺にもさっぱり分からない。つか、検索した方が早いだろ。
419デフォルトの名無しさん
2017/12/09(土) 11:59:56.41ID:88o+DXYi420デフォルトの名無しさん
2017/12/09(土) 13:02:57.59ID:eKIgo3Je ふと思ったんですが、非同期関数の中から投げられた例外ってどうなるんでしょうか?
処理がtryブロックをとっくに抜けたタイミングで
コールバック関数の中から投げられた例外って、catchできないですよね・・?
処理がtryブロックをとっくに抜けたタイミングで
コールバック関数の中から投げられた例外って、catchできないですよね・・?
421デフォルトの名無しさん
2017/12/09(土) 13:25:06.55ID:eKIgo3Je try {
setTimeout(()=>{
throw '!';
},1000);
}catch(e){
console.log('cought:'+e);
}
console.log('tryの外');
とやったら、やはりcatch出来ませんでした
catchする方法はないのでしょうか?
そもそも例外と非同期処理の間に相容れないものがある気がします
処理が失敗した時、
その失敗にどう対応するかは後で考えようという場合に、とりあえず例外を投げるようにしておく、
という方針がありますが
それが使えないということですよね?
setTimeout(()=>{
throw '!';
},1000);
}catch(e){
console.log('cought:'+e);
}
console.log('tryの外');
とやったら、やはりcatch出来ませんでした
catchする方法はないのでしょうか?
そもそも例外と非同期処理の間に相容れないものがある気がします
処理が失敗した時、
その失敗にどう対応するかは後で考えようという場合に、とりあえず例外を投げるようにしておく、
という方針がありますが
それが使えないということですよね?
422デフォルトの名無しさん
2017/12/09(土) 13:34:40.91ID:/arVeZ+Z >>421
setTimeoutはどのオブジェクトに生えてるメソッドだと思う?
そうwindow。いつもは省略しているがwindow.setTimeoutが
正式なメソッド名
だからwindow自身にエラーをキャッチする方法がある
それが何かは俺の次のやつに書かせようw
setTimeoutはどのオブジェクトに生えてるメソッドだと思う?
そうwindow。いつもは省略しているがwindow.setTimeoutが
正式なメソッド名
だからwindow自身にエラーをキャッチする方法がある
それが何かは俺の次のやつに書かせようw
423デフォルトの名無しさん
2017/12/09(土) 13:38:50.66ID:/arVeZ+Z あと非同期処理にはpromiseを使う
promiseにはcatchする方法がある
promiseにはcatchする方法がある
424デフォルトの名無しさん
2017/12/09(土) 18:46:24.37ID:H4MZye12 >>416
それは違う
それは違う
425デフォルトの名無しさん
2017/12/09(土) 19:04:13.13ID:/arVeZ+Z 違う理由を言わないやつの説得力はゼロ
426デフォルトの名無しさん
2017/12/09(土) 20:50:28.56ID:zmyZSbxv >>420-421
オライリーの「初めてのJavaScript 第3版」に書いてあるけど、
例外処理は、コールバック関数の内外とか、
コンテキストが異なるものには、対応できない
co, Koa のジェネレータ・ランナーを使えば、
例外処理を、同期的に書ける
オライリーの「初めてのJavaScript 第3版」に書いてあるけど、
例外処理は、コールバック関数の内外とか、
コンテキストが異なるものには、対応できない
co, Koa のジェネレータ・ランナーを使えば、
例外処理を、同期的に書ける
427デフォルトの名無しさん
2017/12/09(土) 21:52:31.86ID:pUCWrG+/428デフォルトの名無しさん
2017/12/09(土) 22:07:36.10ID:H4MZye12 >>425
ブーメラン乙
ブーメラン乙
429デフォルトの名無しさん
2017/12/09(土) 22:17:25.71ID:/arVeZ+Z430デフォルトの名無しさん
2017/12/10(日) 00:15:32.29ID:UNA0XEib431デフォルトの名無しさん
2017/12/10(日) 00:18:20.75ID:ML6lMJWk432デフォルトの名無しさん
2017/12/10(日) 01:01:28.67ID:Rt5tAWZZ つまり、
韓国人死ね
だろ。つかマジで、最低限の会話が成立しないと無理だろ。
韓国人死ね
だろ。つかマジで、最低限の会話が成立しないと無理だろ。
433デフォルトの名無しさん
2017/12/10(日) 01:24:23.47ID:UNA0XEib この人の場合は「ライブラリ批判者は死ね」だろう
434421
2017/12/10(日) 04:52:47.16ID:rMheBEyi ご回答ありがとうございます
知らない言葉も出てきて、すぐには消化できないのでゆっくり見ていきます
ありがとうございました
知らない言葉も出てきて、すぐには消化できないのでゆっくり見ていきます
ありがとうございました
435デフォルトの名無しさん
2017/12/10(日) 05:21:10.58ID:rMheBEyi とりあえず、初めてのJavaScriptをぽちりました
「Brendan Eichはコンピュータサイエンスに関するしっかりとした知識をもっており、
とても洗練されたアイデアをJavaScriptに注ぎ込みました。
多くの点で時代の最先端を行くもので、
大多数の開発者がその素晴らしさに気づくには15年もの時間がかかりました。」
これは本当にそう思いますねぇ
「Brendan Eichはコンピュータサイエンスに関するしっかりとした知識をもっており、
とても洗練されたアイデアをJavaScriptに注ぎ込みました。
多くの点で時代の最先端を行くもので、
大多数の開発者がその素晴らしさに気づくには15年もの時間がかかりました。」
これは本当にそう思いますねぇ
436デフォルトの名無しさん
2017/12/10(日) 05:29:41.50ID:i9S99WfY437デフォルトの名無しさん
2017/12/10(日) 07:16:37.65ID:ML6lMJWk438デフォルトの名無しさん
2017/12/10(日) 07:48:06.08ID:rMheBEyi >>424の人は、文字通りの単なる荒らしだと思いますよ
JavaScriptにすらたいして興味ないんじゃないですか?
全くなければJavaScriptスレを覗きもしないので、少しは興味があるでしょうが
JavaScriptにすらたいして興味ないんじゃないですか?
全くなければJavaScriptスレを覗きもしないので、少しは興味があるでしょうが
439デフォルトの名無しさん
2017/12/10(日) 08:51:23.89ID:Rt5tAWZZ >>436
分かるとは思うが、そいつは煽り抜きでガチのアスペだぞ。マジでこんな感じ。
> 心理学的に言えば、部分部分でサポートがないと、
> 細かい点は認知していないと言うことが明白ですね。
> http://fanblogs.jp/hasuraa/archive/261/0
こんなところで油売ってるのではなく、病院に行った方がいいと思うんだが。 👀
Rock54: Caution(BBR-MD5:842eac59f97f47c0d6fb1bed016df49c)
分かるとは思うが、そいつは煽り抜きでガチのアスペだぞ。マジでこんな感じ。
> 心理学的に言えば、部分部分でサポートがないと、
> 細かい点は認知していないと言うことが明白ですね。
> http://fanblogs.jp/hasuraa/archive/261/0
こんなところで油売ってるのではなく、病院に行った方がいいと思うんだが。 👀
Rock54: Caution(BBR-MD5:842eac59f97f47c0d6fb1bed016df49c)
440デフォルトの名無しさん
2017/12/10(日) 14:14:32.73ID:xhmVQVTE 違うと言うだけなら幼稚園児にもできる
441デフォルトの名無しさん
2017/12/10(日) 14:18:35.77ID:LGKWxZaW 多分、恋は盲目ってやつだろ(違う)
442デフォルトの名無しさん
2017/12/10(日) 14:35:24.89ID:ML6lMJWk 正しいことをしている人に「間違ってる!」とだけ言い放って
どこが?と聞いたら「自分で考えろ!」と言って
討論(?)に勝った気になってるんですよw
どこが?と聞いたら「自分で考えろ!」と言って
討論(?)に勝った気になってるんですよw
443デフォルトの名無しさん
2017/12/10(日) 14:52:45.19ID:LGKWxZaW マジレスすると、
>>416 で「が正解な」と言うのは理由なく「間違ってる!」と言っているのと同じでそこが突っ込まれてるんだと思うぞ
もしかすると書いた本人はその気がないのかも知れないが、そう受け取られてしまう書き方だというのを自覚した方がいいよ
>>416 で「が正解な」と言うのは理由なく「間違ってる!」と言っているのと同じでそこが突っ込まれてるんだと思うぞ
もしかすると書いた本人はその気がないのかも知れないが、そう受け取られてしまう書き方だというのを自覚した方がいいよ
444デフォルトの名無しさん
2017/12/10(日) 15:05:18.12ID:Rt5tAWZZ >>443
マジレスすると、
ガチアスペ ID:ML6lMJWk
Node糞女荒らし ID:rMheBEyi
以外は全員それ分かってるけどな。
現実として、このレベルで無駄に諍いが起きるほど日本語が不自由なやつは死ねでしかないだろ。
そして当人たちは君や俺が今何言ってるかも理解できないんだぜ。
だって俺のこの書き込みは事の発端のやり取りより難しいわけでさ。マジでどうしようもない。
韓国人死ね マジで
ただなあ、さすがにこのレベルのやり取りは、2chでもなかなかないんだがなあ。
JavaScriptだけ異常に馬鹿揃いなのは本当に不思議なんだが。
マジレスすると、
ガチアスペ ID:ML6lMJWk
Node糞女荒らし ID:rMheBEyi
以外は全員それ分かってるけどな。
現実として、このレベルで無駄に諍いが起きるほど日本語が不自由なやつは死ねでしかないだろ。
そして当人たちは君や俺が今何言ってるかも理解できないんだぜ。
だって俺のこの書き込みは事の発端のやり取りより難しいわけでさ。マジでどうしようもない。
韓国人死ね マジで
ただなあ、さすがにこのレベルのやり取りは、2chでもなかなかないんだがなあ。
JavaScriptだけ異常に馬鹿揃いなのは本当に不思議なんだが。
445デフォルトの名無しさん
2017/12/10(日) 16:45:18.19ID:uhJerKM5 今Javascript勉強中の初心者です。、
HTML、cssもある程度読み書きいけるようになってきたのですが、
jQueryに手を出そうと考えています。
そこで質問なのですが、
実際の業務では、jQueryは使われるものなのでしょうか?
それとも実際の業務ではJavascriptはバニラのような状態で使用されるものなのでしょうか?
業務経験者の方がいらっしゃったら教えていただけたらと思います。
HTML、cssもある程度読み書きいけるようになってきたのですが、
jQueryに手を出そうと考えています。
そこで質問なのですが、
実際の業務では、jQueryは使われるものなのでしょうか?
それとも実際の業務ではJavascriptはバニラのような状態で使用されるものなのでしょうか?
業務経験者の方がいらっしゃったら教えていただけたらと思います。
446デフォルトの名無しさん
2017/12/10(日) 17:57:58.67ID:f6Iopq8z 普通に使われるよ
常時使われるかと言うと勿論要件に依る
常時使われるかと言うと勿論要件に依る
447デフォルトの名無しさん
2017/12/10(日) 18:06:39.50ID:uhJerKM5448デフォルトの名無しさん
2017/12/10(日) 20:02:11.89ID:QIqSykkT 「初めてのJavaScript」を読んでいますが
配列を
['a',
'b',
'c',]
みたいに末尾要素の後ろにコンマを書く書き方って、今では許容されているのですね
これはPHPでは出来るのにJavaScriptでは出来ない書き方だと思っていましたが、
JavaScriptの仕様からすると本来出来るもので、
実装が仕様に追いついてきたとのこと。
時代は進歩しているものですね?
配列を
['a',
'b',
'c',]
みたいに末尾要素の後ろにコンマを書く書き方って、今では許容されているのですね
これはPHPでは出来るのにJavaScriptでは出来ない書き方だと思っていましたが、
JavaScriptの仕様からすると本来出来るもので、
実装が仕様に追いついてきたとのこと。
時代は進歩しているものですね?
449デフォルトの名無しさん
2017/12/10(日) 20:10:40.08ID:0VP/mrFZ jsonがダメなのと勘違いしてるんじゃないかな
450デフォルトの名無しさん
2017/12/10(日) 20:10:53.52ID:i9S99WfY 今では関数定義や呼び出しの引数でも末尾カンマ使えるよ
っていうか配列の末尾カンマ問題はただ古いIEがJScript実装だったってことで
IE9以降はオブジェクトも含めて問題ないでしょ
っていうか配列の末尾カンマ問題はただ古いIEがJScript実装だったってことで
IE9以降はオブジェクトも含めて問題ないでしょ
451デフォルトの名無しさん
2017/12/10(日) 20:43:06.76ID:K5F4H8OZ452デフォルトの名無しさん
2017/12/10(日) 20:44:23.68ID:ML6lMJWk JavaScriptは配列に限って昔から末尾のカンマを許容していた
ECMAScript 3では、末尾のカンマは許容されていなかった
ECMAScript 5.1では、配列とオブジェクトの両方で末尾のカンマは許容される
ECMAScript 2017では、関数の引数の末尾のカンマが許容されるようになった
ECMAScript 3では、末尾のカンマは許容されていなかった
ECMAScript 5.1では、配列とオブジェクトの両方で末尾のカンマは許容される
ECMAScript 2017では、関数の引数の末尾のカンマが許容されるようになった
453デフォルトの名無しさん
2017/12/11(月) 22:16:57.15ID:+TRAJ54C ID:eKIgo3Je = ID:rMheBEyi = ID:uhJerKM5 = ID:QIqSykkT な。
まあお前らがその程度だからこのスレもこの程度なんだが。
まあお前らがその程度だからこのスレもこの程度なんだが。
454デフォルトの名無しさん
2017/12/11(月) 22:30:59.52ID:iA9W3nMK >>453
前半と後半は違うだろ
前半と後半は違うだろ
455デフォルトの名無しさん
2017/12/11(月) 22:44:36.20ID:+TRAJ54C ID:/arVeZ+Z = ID:ML6lMJWk = ID:iA9W3nMK
456デフォルトの名無しさん
2017/12/11(月) 22:49:11.29ID:iA9W3nMK 少なくとも400以降の話には参加してないで
457デフォルトの名無しさん
2017/12/11(月) 23:21:19.27ID:VpcUL49S458デフォルトの名無しさん
2017/12/12(火) 10:10:23.52ID:tSfAvCPq javascriptで普通のアプリケーションを作るにはNode.jsで
作ればいいですか?
作ればいいですか?
459デフォルトの名無しさん
2017/12/12(火) 11:01:32.61ID:rIOQBs6l 普通のアプリケーションとはなんですか?
460デフォルトの名無しさん
2017/12/12(火) 11:31:40.43ID:tSfAvCPq 普通のアプリケーションとは
プログラムをテキストファイルにかいて
インタープリターに送ると
アプリケーションが始まるものです。
プログラムをテキストファイルにかいて
インタープリターに送ると
アプリケーションが始まるものです。
461デフォルトの名無しさん
2017/12/12(火) 14:28:11.85ID:YM2U+6VB Nodeはどちらかと言うとバッチのイメージ
OS上で動く普通のアプリをJSで書きたいのならWinストアアプリとかの方向なんじゃないかな
もしくはWeb技術使いたいのならElectronとかから、単純なWebアプリまで沢山選択肢はある
OS上で動く普通のアプリをJSで書きたいのならWinストアアプリとかの方向なんじゃないかな
もしくはWeb技術使いたいのならElectronとかから、単純なWebアプリまで沢山選択肢はある
462デフォルトの名無しさん
2017/12/12(火) 14:56:29.79ID:m2RQFNY8 クロージャというのは、
周囲のスコープを保持している関数のことでも、
関数を「包み込んでいる」スコープのことでもなく、
スコープと関数をまるごと包み込んでいる目に見えない何かのことなのでしょうか?
今までは、周囲のスコープを保持している関数のことを、
スコープを閉じ込めたもの=クロージャ、だと思っていましたが
「初めてのJavaScript」を読むとどうも違うようです
周囲のスコープを保持している関数のことでも、
関数を「包み込んでいる」スコープのことでもなく、
スコープと関数をまるごと包み込んでいる目に見えない何かのことなのでしょうか?
今までは、周囲のスコープを保持している関数のことを、
スコープを閉じ込めたもの=クロージャ、だと思っていましたが
「初めてのJavaScript」を読むとどうも違うようです
463デフォルトの名無しさん
2017/12/12(火) 15:06:14.25ID:m2RQFNY8 関数=コードとして目に見える
スコープ=ブロックや関数という形で目に見える
クロージャ=目に見えない抽象的な概念
という感じでしょうか?
これはなかなか理解しにくいですよね
「初めてのJavaScript」は、とてもいい本、
おそらくJavaScript本の中で最良の部類の本ですが、
書名から連想するような初心者向けの本では全くないですね!
スコープ=ブロックや関数という形で目に見える
クロージャ=目に見えない抽象的な概念
という感じでしょうか?
これはなかなか理解しにくいですよね
「初めてのJavaScript」は、とてもいい本、
おそらくJavaScript本の中で最良の部類の本ですが、
書名から連想するような初心者向けの本では全くないですね!
464デフォルトの名無しさん
2017/12/12(火) 16:16:20.25ID:tSfAvCPq >>461
ありがとうございます!
ありがとうございます!
465デフォルトの名無しさん
2017/12/12(火) 16:27:23.61ID:abEQ9Zko あいかわらず、検索すらしないゴミクズ
スレ荒らしには構わないように
スレ荒らしには構わないように
466デフォルトの名無しさん
2017/12/12(火) 19:02:11.06ID:dRU/liaf クロージャーは一種の記憶メモリ的な感じ?
467デフォルトの名無しさん
2017/12/12(火) 21:14:31.67ID:m2RQFNY8 本来一回限りで消えてしまう関数スコープを
無名関数にそれへの参照を保持させることですぐには消えないものにする
という一種のテクニックです
技術的にはそんなに難解ではないのですが、
用語法が分かりにくいんですよね
クロージャって何のこと指して言ってるの?っていう。
>>465
ハーゲ
無名関数にそれへの参照を保持させることですぐには消えないものにする
という一種のテクニックです
技術的にはそんなに難解ではないのですが、
用語法が分かりにくいんですよね
クロージャって何のこと指して言ってるの?っていう。
>>465
ハーゲ
468デフォルトの名無しさん
2017/12/12(火) 21:54:07.20ID:4svaTAZj469デフォルトの名無しさん
2017/12/13(水) 00:22:32.40ID:SAZcFDe1 var outFunc = function(){
var count = 0;
return function(){ return ++count; };
}();
console.log(outFunc()); // 1
console.log(outFunc()); // 2
クロージャは静的スコープ。簡易クラス
内側の関数から見て、スコープ外のcount を使っている。
一見、スコープの外側の環境を閉じ込めているように見えるが、
実際にはその変数をコピーしておらず、ただ参照しているだけなので要注意!
内側の関数を戻した、外側のoutFunc をクラスと見れば、
count がメンバー変数(プロパティ)で、内側の関数がメソッドになる。
メソッドでメンバー変数を更新すれば、更新後のメンバー変数が保持されるのは当たり前
var count = 0;
return function(){ return ++count; };
}();
console.log(outFunc()); // 1
console.log(outFunc()); // 2
クロージャは静的スコープ。簡易クラス
内側の関数から見て、スコープ外のcount を使っている。
一見、スコープの外側の環境を閉じ込めているように見えるが、
実際にはその変数をコピーしておらず、ただ参照しているだけなので要注意!
内側の関数を戻した、外側のoutFunc をクラスと見れば、
count がメンバー変数(プロパティ)で、内側の関数がメソッドになる。
メソッドでメンバー変数を更新すれば、更新後のメンバー変数が保持されるのは当たり前
470デフォルトの名無しさん
2017/12/13(水) 00:29:51.85ID:SAZcFDe1 初めてのJavaScript 第3版、オライリー、2017
これを読むには、数年以上の勉強が必要。
ES6(2015) の本だから、Babel で、ES5 に変換して実行する。
初心者は、ES3, ES5, ES6 の順番に勉強する方が良い
特に、ES6ではクラス構文もできて、
オブジェクト指向に近くなったから、難易度が急上昇した
漏れは、10言語は知っているけど、この本に苦戦中
これを読むには、数年以上の勉強が必要。
ES6(2015) の本だから、Babel で、ES5 に変換して実行する。
初心者は、ES3, ES5, ES6 の順番に勉強する方が良い
特に、ES6ではクラス構文もできて、
オブジェクト指向に近くなったから、難易度が急上昇した
漏れは、10言語は知っているけど、この本に苦戦中
471デフォルトの名無しさん
2017/12/13(水) 07:14:43.01ID:u+kiVKe2472デフォルトの名無しさん
2017/12/13(水) 07:29:26.28ID:u+kiVKe2473デフォルトの名無しさん
2017/12/13(水) 07:30:57.93ID:u+kiVKe2474デフォルトの名無しさん
2017/12/13(水) 11:05:15.10ID:p2PjkbUD >>469
ありがとうございます
たしかにふるまいはクラスに似ていますね
静的スコープというのはレキシカルスコープというやつですね
たまに本の中で見かけるけど、良く分からず、分からないままにしていた言葉です
いま検索したところ、「JavaScript Good Parts」の中に
「JavaScriptの関数は、(大部分は)レキシカルなスコープを持つファーストクラスオブジェクトである」
と言及がありました。しかしその後、「レキシカルなスコープ」については説明がない
こんな風に、ただ出てくるだけの言葉、という印象があり、
今まで流していたのですが、これを機に勉強したいと思います
ありがとうございました
ありがとうございます
たしかにふるまいはクラスに似ていますね
静的スコープというのはレキシカルスコープというやつですね
たまに本の中で見かけるけど、良く分からず、分からないままにしていた言葉です
いま検索したところ、「JavaScript Good Parts」の中に
「JavaScriptの関数は、(大部分は)レキシカルなスコープを持つファーストクラスオブジェクトである」
と言及がありました。しかしその後、「レキシカルなスコープ」については説明がない
こんな風に、ただ出てくるだけの言葉、という印象があり、
今まで流していたのですが、これを機に勉強したいと思います
ありがとうございました
475デフォルトの名無しさん
2017/12/13(水) 15:17:12.86ID:OuVjfgAH >>474の件ですが
レキシカルスコープを分からなかったというより
ダイナミックスコープを知らなかっただけでした
ダイナミックスコープはコードの実行時にコールスタックを辿って変数を決める方式で
関数の中でローカルとして宣言されていない変数を見つけると、
処理系はコールスタックを辿り、呼び出し元のスコープの中で変数を探す
それを変数が見つかるか、グローバルスコープに突き当たるまで繰り返す
そういうものが
ダイナミックスコープだというのですが、
そんなの見たことがありません
それもそのはずで、
現代のプログラミング言語のほとんどがレキシカルスコープを採用しているとのこと。
そしてレキシカルスコープはダイナミックではないスコープ、
つまり現代のほとんどのプログラマーが「スコープとはこういうものだ」
と考えているスコープです
つまり構文の包含関係によって変数が決められる方式です
構文の包含関係に基づくので、変数が解決されるのは構文解析時です
そんなわけで普段プログラムを書いていて、
レキシカルスコープとダイナミックスコープの違いを意識することはあまりなさそうですが
処理系の内部動作にまで視点を広げた時には、
興味深いトピックとして立ち上がってきそうですね
レキシカルスコープを分からなかったというより
ダイナミックスコープを知らなかっただけでした
ダイナミックスコープはコードの実行時にコールスタックを辿って変数を決める方式で
関数の中でローカルとして宣言されていない変数を見つけると、
処理系はコールスタックを辿り、呼び出し元のスコープの中で変数を探す
それを変数が見つかるか、グローバルスコープに突き当たるまで繰り返す
そういうものが
ダイナミックスコープだというのですが、
そんなの見たことがありません
それもそのはずで、
現代のプログラミング言語のほとんどがレキシカルスコープを採用しているとのこと。
そしてレキシカルスコープはダイナミックではないスコープ、
つまり現代のほとんどのプログラマーが「スコープとはこういうものだ」
と考えているスコープです
つまり構文の包含関係によって変数が決められる方式です
構文の包含関係に基づくので、変数が解決されるのは構文解析時です
そんなわけで普段プログラムを書いていて、
レキシカルスコープとダイナミックスコープの違いを意識することはあまりなさそうですが
処理系の内部動作にまで視点を広げた時には、
興味深いトピックとして立ち上がってきそうですね
476デフォルトの名無しさん
2017/12/13(水) 19:01:59.92ID:u+kiVKe2477デフォルトの名無しさん
2017/12/13(水) 19:22:41.91ID:zb+ujaUZ ダイナミックスコープというとLispでしか見たことねぇ
478デフォルトの名無しさん
2017/12/13(水) 19:58:36.06ID:uoR9h+SG ググれないブス >>475
朴訥おじさん >>470
ガチアスペ >>431
の3人で別スレ立てて、好きなようにやってみろ。
俺はそっちには行かないし、そこが繁盛するならそれでいいし。
お前らが駄目なのは、良い物をより良い物が倒す実力主義ではなく、
良い国に悪い韓国人がたかる背乗り主義だからなんだよ。
だから少しマシになってもすぐお前らによって潰されてしまう。
しかもお前らはそれを未だに自覚できてない。学習能力0だなマジで。
韓国人死ね
脱線するが、経団連もこの辺完全にお花畑老害になっている。
自分達の国を自分達で改善できないゴキブリ韓国人なんて呼んだ所で、
この国が良くなる筈もない。悪くなるに決まっている。
だから移民なんてそんなに簡単じゃない。
お前らがスレを上手く運営できると思っているのなら、
実際にお前らで別スレを立てて繁盛させ、結果的に人をそこに集め、旧来のスレを殺してみせろ。
これは実力主義であり、正しいスレの殺し方だ。
ゴキブリ韓国人流の背乗り主義はマジでやめろ。誰の為にもならない。
朴訥おじさん >>470
ガチアスペ >>431
の3人で別スレ立てて、好きなようにやってみろ。
俺はそっちには行かないし、そこが繁盛するならそれでいいし。
お前らが駄目なのは、良い物をより良い物が倒す実力主義ではなく、
良い国に悪い韓国人がたかる背乗り主義だからなんだよ。
だから少しマシになってもすぐお前らによって潰されてしまう。
しかもお前らはそれを未だに自覚できてない。学習能力0だなマジで。
韓国人死ね
脱線するが、経団連もこの辺完全にお花畑老害になっている。
自分達の国を自分達で改善できないゴキブリ韓国人なんて呼んだ所で、
この国が良くなる筈もない。悪くなるに決まっている。
だから移民なんてそんなに簡単じゃない。
お前らがスレを上手く運営できると思っているのなら、
実際にお前らで別スレを立てて繁盛させ、結果的に人をそこに集め、旧来のスレを殺してみせろ。
これは実力主義であり、正しいスレの殺し方だ。
ゴキブリ韓国人流の背乗り主義はマジでやめろ。誰の為にもならない。
479デフォルトの名無しさん
2017/12/13(水) 22:26:39.76ID:OuVjfgAH 何か気持ち悪い人が棲息していますが昔からなんでしょうか?
質問者と回答者で力を合わせて浄化を目指しましょう
質問者と回答者で力を合わせて浄化を目指しましょう
480デフォルトの名無しさん
2017/12/13(水) 22:45:00.28ID:uoR9h+SG481デフォルトの名無しさん
2017/12/13(水) 22:54:52.19ID:OuVjfgAH ちなみに>>474のJavaScript Good Partsの箇所ですが
JavaScriptでJavaScriptを実装するという面白い試みを紹介している箇所だったので
その記事が載っている「ビューティフルコード」をぽちりました
少し読みましたが、これも良書のにおいがプンプンします
こういうセレンディピティが起きるのが質問スレの醍醐味ですね
JavaScriptでJavaScriptを実装するという面白い試みを紹介している箇所だったので
その記事が載っている「ビューティフルコード」をぽちりました
少し読みましたが、これも良書のにおいがプンプンします
こういうセレンディピティが起きるのが質問スレの醍醐味ですね
482デフォルトの名無しさん
2017/12/14(木) 01:38:00.53ID:bGPtLfUR 静的スコープは、Ruby, Groovy では、{ }, block で作れる。
モジュール・クラスも、{ }で囲むだけで、スコープを作れる
でも、JS では、スコープの機能は、function にしたから、
スコープを作るために、functionをネストしなければならない。
モジュール・クラスのスコープを作る場合も、functionを使わなければならない
つまり、スコープと関数の概念を切り離せていない。
関数スコープだけなのは、Python と同じ
でも、Ruby, Groovy では、ネストしなくてよい
Rubyのblock(処理)を、オブジェクトとして持ち運ぶ場合は、
proc に変換して、どこでも実行できる。
つまり、第一級関数と同じ
JS みたいに、functionを使って、スコープを作るのは、ややこしいだけ
モジュール・クラスも、{ }で囲むだけで、スコープを作れる
でも、JS では、スコープの機能は、function にしたから、
スコープを作るために、functionをネストしなければならない。
モジュール・クラスのスコープを作る場合も、functionを使わなければならない
つまり、スコープと関数の概念を切り離せていない。
関数スコープだけなのは、Python と同じ
でも、Ruby, Groovy では、ネストしなくてよい
Rubyのblock(処理)を、オブジェクトとして持ち運ぶ場合は、
proc に変換して、どこでも実行できる。
つまり、第一級関数と同じ
JS みたいに、functionを使って、スコープを作るのは、ややこしいだけ
483デフォルトの名無しさん
2017/12/14(木) 01:39:01.61ID:LEbaYuuB484デフォルトの名無しさん
2017/12/14(木) 01:43:59.68ID:LEbaYuuB JavaScriptの場合は
let func = () => console.log("ok");
func()
みたいにして実行できるけど、
Rubyだと、
func.call() みたいにしないといけないのがダサいんだよな
callってなんだよwww
let func = () => console.log("ok");
func()
みたいにして実行できるけど、
Rubyだと、
func.call() みたいにしないといけないのがダサいんだよな
callってなんだよwww
485デフォルトの名無しさん
2017/12/14(木) 02:02:21.42ID:LEbaYuuB http://hamuhamu.hatenablog.jp/entry/2015/05/01/050530
> Rubyのメソッドは、変数への代入が出来ないので、第一級オブジェクトではない。
> 第一級オブジェクトではないから変数への代入が出来ないといったほうが正しいのかも。
>
> Rubyのメソッドをクロージャとして扱うには Proc や lambda を使います。
> 厳密に言うと Rubyにおいて Proc や lambda を扱ったものは、第一級オブジェクトではないらしい。
> Rubyのメソッドは、変数への代入が出来ないので、第一級オブジェクトではない。
> 第一級オブジェクトではないから変数への代入が出来ないといったほうが正しいのかも。
>
> Rubyのメソッドをクロージャとして扱うには Proc や lambda を使います。
> 厳密に言うと Rubyにおいて Proc や lambda を扱ったものは、第一級オブジェクトではないらしい。
486482
2017/12/14(木) 03:26:42.01ID:bGPtLfUR まあ漏れが言いたかったのは、JS のfunction を使う場合、
別に関数として呼び出すわけじゃない
多くの場合、スコープが欲しいだけだから、{ } で十分。
一々、function を使わされるのが、誤解を招く
言語に、関数スコープしか無いから
別に関数として呼び出すわけじゃない
多くの場合、スコープが欲しいだけだから、{ } で十分。
一々、function を使わされるのが、誤解を招く
言語に、関数スコープしか無いから
487デフォルトの名無しさん
2017/12/14(木) 03:30:45.38ID:LEbaYuuB488デフォルトの名無しさん
2017/12/15(金) 02:30:34.13ID:OK9q/vji まあ何でもかんでも{}で足りるというわけでもない
その点での即時関数の代わりにGoogleが推してるdo文は実際欲しい
O.oの二の舞いにならなければよいが
その点での即時関数の代わりにGoogleが推してるdo文は実際欲しい
O.oの二の舞いにならなければよいが
489デフォルトの名無しさん
2017/12/15(金) 02:54:50.32ID:/sicteF5 純粋関数を
1.同じ入力に対しては同じ出力を返す。
2.「副作用」をもたない。つまりプログラムの状態を変えない。
と「初めてのJavaScript」は説明します
そして関数外部にあった変数をクロージャに含んで、
スタティック変数のように使うようにしたことを、「副作用がなくなった」と言います
スタティック変数的な変数であっても
「プログラムの状態」には変わりがないのでは?
とも思うのですが、ここでいう「プログラムの状態」というのは、
関数の外の変数、という意味なのでしょうか?
またオブジェクトのメンバを変更するオブジェクトメソッドは
副作用があるのでしょうか?ないのでしょうか?
1.同じ入力に対しては同じ出力を返す。
2.「副作用」をもたない。つまりプログラムの状態を変えない。
と「初めてのJavaScript」は説明します
そして関数外部にあった変数をクロージャに含んで、
スタティック変数のように使うようにしたことを、「副作用がなくなった」と言います
スタティック変数的な変数であっても
「プログラムの状態」には変わりがないのでは?
とも思うのですが、ここでいう「プログラムの状態」というのは、
関数の外の変数、という意味なのでしょうか?
またオブジェクトのメンバを変更するオブジェクトメソッドは
副作用があるのでしょうか?ないのでしょうか?
490デフォルトの名無しさん
2017/12/15(金) 07:29:42.36ID:yuhdgz4g またgoogle一発で回答に辿りつける質問をしてやがる
相当に知能が低いんだろうな
荒らすな ハーゲ
相当に知能が低いんだろうな
荒らすな ハーゲ
491デフォルトの名無しさん
2017/12/15(金) 12:20:54.74ID:/sicteF5 >>490
またハゲた発想ですね〜
ツルッパゲです
ググったんですか?見つかったんですか?
それならそれをここに書けばいいのです
ググって見つかってはい終わりじゃないんですよ
情報は検討しなければならないのです
ネットに書かれてあればそれが事実だ、真実だ、とはならないんです
そのために質問スレがあるのです
分かりますね?
またハゲた発想ですね〜
ツルッパゲです
ググったんですか?見つかったんですか?
それならそれをここに書けばいいのです
ググって見つかってはい終わりじゃないんですよ
情報は検討しなければならないのです
ネットに書かれてあればそれが事実だ、真実だ、とはならないんです
そのために質問スレがあるのです
分かりますね?
492デフォルトの名無しさん
2017/12/15(金) 19:10:29.62ID:OK9q/vji >>489
定義は難しいというか、本来プログラミング言語のものではないので無理がある
例えば同じ引数を与えると必ず同じ値を返す関数と言ってもいいが、
内部的にMathを利用していて、それが書き換えられた場合まで突かれると厳しい
まあそこまで厳密ではなくて良いとすれば、反対にMathのような関数外の変数を書き換える
関数と言っても良いが、これでもループを形成すれば副作用的なものは作れる(モナド)
結局純粋関数かどうかなんて実用的なプログラミング言語には関係ない話で考えなくても良い
それよりかは、「外部変数を書き換えないようにする」とかもっと具体的な部分に注目したほうが良い
定義は難しいというか、本来プログラミング言語のものではないので無理がある
例えば同じ引数を与えると必ず同じ値を返す関数と言ってもいいが、
内部的にMathを利用していて、それが書き換えられた場合まで突かれると厳しい
まあそこまで厳密ではなくて良いとすれば、反対にMathのような関数外の変数を書き換える
関数と言っても良いが、これでもループを形成すれば副作用的なものは作れる(モナド)
結局純粋関数かどうかなんて実用的なプログラミング言語には関係ない話で考えなくても良い
それよりかは、「外部変数を書き換えないようにする」とかもっと具体的な部分に注目したほうが良い
493デフォルトの名無しさん
2017/12/15(金) 19:40:38.29ID:yuhdgz4g >>491
普通に検索すれば一発でたどり着くしわかりきっている事なので普通のスレ住民には問題無い
ローカルルールなど知らんと宣言してるスレ荒らしの無能さに起因する事情など考えてやる必要はない
消えろ ハーゲ
普通に検索すれば一発でたどり着くしわかりきっている事なので普通のスレ住民には問題無い
ローカルルールなど知らんと宣言してるスレ荒らしの無能さに起因する事情など考えてやる必要はない
消えろ ハーゲ
494デフォルトの名無しさん
2017/12/15(金) 22:49:36.49ID:QRFEcBGB495デフォルトの名無しさん
2017/12/16(土) 00:32:27.16ID:ArLhqftT496デフォルトの名無しさん
2017/12/16(土) 03:45:36.96ID:cfKhsYp6497デフォルトの名無しさん
2017/12/16(土) 09:08:48.12ID:TBmZZU6f498デフォルトの名無しさん
2017/12/16(土) 12:17:20.92ID:PI7Fni2Y ブックマークレットに登録したMutationObserverを使って変更を検知できるようになったのですが、
ページがリロードされるとMutationObserverで登録した処理が
無効になってしまいます。どうすればいいでしょうか。
ページがリロードされるとMutationObserverで登録した処理が
無効になってしまいます。どうすればいいでしょうか。
499デフォルトの名無しさん
2017/12/16(土) 12:25:26.17ID:plaGBrRo >>498
ブックマークレットは自動的に実行できないので
ページ開いた時に実行できるブラウザ拡張機能を使用する
例えば、Tampermonkey とかな
ちなみに俺はこれを使って、ページを開いたらすぐに
ダウンロードボタンを押すようにしているw
ブックマークレットは自動的に実行できないので
ページ開いた時に実行できるブラウザ拡張機能を使用する
例えば、Tampermonkey とかな
ちなみに俺はこれを使って、ページを開いたらすぐに
ダウンロードボタンを押すようにしているw
500デフォルトの名無しさん
2017/12/16(土) 13:17:40.00ID:PI7Fni2Y >>499
スパイウェアじゃないよね?
スパイウェアじゃないよね?
501デフォルトの名無しさん
2017/12/16(土) 15:16:12.12ID:l/j+3zYC Javascriptで出来てるから不安なら自分で調べれば良い
502デフォルトの名無しさん
2017/12/17(日) 18:01:20.58ID:RetSeKI5 配列についての質問なのですが、
配列にプロパティを持たせたい場合、
どのように宣言すれば良いでしょうか。
下記のようなことがしたいと考えています。
var cell = new Array(3){
プロパティ1つ目 x;
プロパティ2つ目 y;
};
上記のようなことがしたい場合、
x,yの要素を持つクラスを作成し、
配列でインスタンスを作成するしかないでしょうか?
何か良い方法があれば御指南頂ければと思います。
よろしくお願いします。
配列にプロパティを持たせたい場合、
どのように宣言すれば良いでしょうか。
下記のようなことがしたいと考えています。
var cell = new Array(3){
プロパティ1つ目 x;
プロパティ2つ目 y;
};
上記のようなことがしたい場合、
x,yの要素を持つクラスを作成し、
配列でインスタンスを作成するしかないでしょうか?
何か良い方法があれば御指南頂ければと思います。
よろしくお願いします。
503デフォルトの名無しさん
2017/12/18(月) 01:18:31.16ID:TbHEuMcS あるクラスのインスタンスを、欲しい数だけ作る
それらを、配列(入れ物・コンテナ)に入れる
それらを、配列(入れ物・コンテナ)に入れる
504デフォルトの名無しさん
2017/12/18(月) 02:24:48.51ID:AyELD5Wz var cell = new Array(3);
としたなら、cellはArrayのインスタンス
>x,yの要素を持つクラスを作成し、
>配列でインスタンスを作成するしかないでしょうか?
この辺の意味が分からんけど、
cell.プロパティ1つ目 = x;
cell.プロパティ2つ目 = y;
としない、またはできない理由は何?
としたなら、cellはArrayのインスタンス
>x,yの要素を持つクラスを作成し、
>配列でインスタンスを作成するしかないでしょうか?
この辺の意味が分からんけど、
cell.プロパティ1つ目 = x;
cell.プロパティ2つ目 = y;
としない、またはできない理由は何?
505デフォルトの名無しさん
2017/12/18(月) 03:52:52.68ID:y8UTlrAF よく分からんが、
3x3の2次元配列を用意してcell[x][y]とアクセスできるCellクラスを作りたいってことか?
3x3の2次元配列を用意してcell[x][y]とアクセスできるCellクラスを作りたいってことか?
506デフォルトの名無しさん
2017/12/18(月) 05:39:05.31ID:y8UTlrAF それとも
cell[0]へのアクセサcell.x
cell[1]へのアクセサcell.y
を定義したいということだろうか
cell[0]へのアクセサcell.x
cell[1]へのアクセサcell.y
を定義したいということだろうか
507502
2017/12/18(月) 09:08:59.64ID:GCevG/T9 質問が悪く、すみません。
アクセスの仕方としては、
cell[0].x = 保管したい値1;
cell[0].y = 保管したい値2;
のような感じです。
オセロの作成を色々手探りでやっているのですが、
cellには画像、x座標、y座標のデータを持たせて、
画像のクリックイベントで格納しておいたx座標y座標を使いたいと考えています。
cellのインデックスには空、白、黒の3つを割り当てたいと考えています。
長々とすみません。
アクセスの仕方としては、
cell[0].x = 保管したい値1;
cell[0].y = 保管したい値2;
のような感じです。
オセロの作成を色々手探りでやっているのですが、
cellには画像、x座標、y座標のデータを持たせて、
画像のクリックイベントで格納しておいたx座標y座標を使いたいと考えています。
cellのインデックスには空、白、黒の3つを割り当てたいと考えています。
長々とすみません。
508デフォルトの名無しさん
2017/12/18(月) 11:48:27.42ID:QFnOzmP0 {x,y}の配列が作りたいって事ね
一時はTypedObjectとかあったけど、
まあそれに倣わなくても地道にループで初期化するので良いと思うけどね
どうしても最大限抽象化したいのならProxyArray案もあるけど
一時はTypedObjectとかあったけど、
まあそれに倣わなくても地道にループで初期化するので良いと思うけどね
どうしても最大限抽象化したいのならProxyArray案もあるけど
509デフォルトの名無しさん
2017/12/18(月) 12:01:43.50ID:gMlWIj9K >cellのインデックスには空、白、黒の3つを割り当てたいと考えています。
これがよくわからん
これがよくわからん
510デフォルトの名無しさん
2017/12/18(月) 12:05:17.13ID:AyELD5Wz cell[0] = {};
cell[0].x = 保管したい値1;
cell[0].y = 保管したい値2;
cell[0]はObjectクラスのインスタンスとも言えるけど、そこまで深く考えなくてもいいと思う
cell[0].x = 保管したい値1;
cell[0].y = 保管したい値2;
cell[0]はObjectクラスのインスタンスとも言えるけど、そこまで深く考えなくてもいいと思う
511502
2017/12/18(月) 23:23:12.95ID:GCevG/T9512デフォルトの名無しさん
2017/12/18(月) 23:28:13.94ID:SUjpjhtq おいおい、ここまで話を進めたのはいいけど、
最初の初期化であれば普通はこう書くだろ?
var cell = [{x: 値1, y:値2}];
最初の初期化であれば普通はこう書くだろ?
var cell = [{x: 値1, y:値2}];
513デフォルトの名無しさん
2017/12/18(月) 23:28:37.89ID:SUjpjhtq 配列なら複数形のほうがいいかもな
var cells = [{x: 値1, y:値2}];
var cells = [{x: 値1, y:値2}];
514デフォルトの名無しさん
2017/12/18(月) 23:56:31.62ID:TbHEuMcS 普通に、マス目のクラスを作って、メソッドも加える
そのインスタンスを、64個作って、配列に入れておく
そのインスタンスを、64個作って、配列に入れておく
515デフォルトの名無しさん
2017/12/19(火) 00:41:12.80ID:XZb67Fvp 他のゲームならコマのオブジェクトを作るほうがいいかもしれんけど
オセロなら8x8のマスのオブジェクトに空・白・黒の状態持たせたほうがいいよねぇ
オセロなら8x8のマスのオブジェクトに空・白・黒の状態持たせたほうがいいよねぇ
516デフォルトの名無しさん
2017/12/20(水) 00:05:23.45ID:I9jY9U5H すみません、もしこのスレで
axiosを使っている人がいましたら
伺いたいのですが
activexobject(microsoft.xmlhttp)を呼び出す方法と
もしそれがなければ改造方法の指南を受けたいです。
よろしくお願いします。
axiosを使っている人がいましたら
伺いたいのですが
activexobject(microsoft.xmlhttp)を呼び出す方法と
もしそれがなければ改造方法の指南を受けたいです。
よろしくお願いします。
517デフォルトの名無しさん
2017/12/20(水) 07:53:01.76ID:+SxGwy2+ なんでaxios?
new ActiveXObject()じゃいかんのか?
new ActiveXObject()じゃいかんのか?
518デフォルトの名無しさん
2017/12/20(水) 07:56:45.40ID:LPYqovlm クラウドワークスやランサーズで作成依頼しなよ
519516
2017/12/20(水) 23:53:51.72ID:I9jY9U5H すみません、
Vueのコンポーネント作成で使いたいと思いました。
昔のIEでローカル配置データの読み込みができたらと考えていました。
Vueのコンポーネント作成で使いたいと思いました。
昔のIEでローカル配置データの読み込みができたらと考えていました。
520デフォルトの名無しさん
2017/12/21(木) 00:18:55.83ID:hxAUg2rz ローカルファイルとか、OS のネイティブAPI を使うのなら、Electron。
Electron から、Angular, React, Vue を使う
Electronではじめるアプリ開発
~JavaScript/HTML/CSSでデスクトップアプリを作ろう
野口 将人・倉見 洋輔、2017
Electron から、Angular, React, Vue を使う
Electronではじめるアプリ開発
~JavaScript/HTML/CSSでデスクトップアプリを作ろう
野口 将人・倉見 洋輔、2017
521デフォルトの名無しさん
2017/12/21(木) 16:16:41.07ID:id1EZsfE 分かりにくくて申し訳ないです。
<body onload=“function a();”>
function a(){
sum = new Sum()
}
function Sum(){
...........略
}
3つのカタマリ は別ファイルなのですが、実行するとUncaught ReferenceError:Sum is not difinedと出てしまいます。
不備が分かる方、問題点を教えていただけるととても助かります。
上から順にHTML. script.js script-2jsで
javascriptはscriptタグを2つ並べて参照しました。
<script>〜</script>
<script>〜</script>
<body onload=“function a();”>
function a(){
sum = new Sum()
}
function Sum(){
...........略
}
3つのカタマリ は別ファイルなのですが、実行するとUncaught ReferenceError:Sum is not difinedと出てしまいます。
不備が分かる方、問題点を教えていただけるととても助かります。
上から順にHTML. script.js script-2jsで
javascriptはscriptタグを2つ並べて参照しました。
<script>〜</script>
<script>〜</script>
522デフォルトの名無しさん
2017/12/21(木) 16:30:20.65ID:IAn/uGw3 script.jsとscript-2jsの読む順番をひっくり返せ
523デフォルトの名無しさん
2017/12/21(木) 17:32:55.79ID:id1EZsfE >>522
順序を入れ替えましたが、ダメでした.......
順序を入れ替えましたが、ダメでした.......
524デフォルトの名無しさん
2017/12/21(木) 18:59:15.11ID:oRquw3RP まともに質問できないゴミクズ質問者に見当違いの答えを返すアホ回答者
ゴミクズ質問者のせいで終わったスレ
原因は確実に9文字のアレだな
ゴミクズ質問者のせいで終わったスレ
原因は確実に9文字のアレだな
525デフォルトの名無しさん
2017/12/21(木) 19:32:01.61ID:id1EZsfE >>524
その9文字を教えていただけると助かります
その9文字を教えていただけると助かります
526デフォルトの名無しさん
2017/12/21(木) 20:16:32.59ID:prpojwIY どうせ間違いだから聞くだけ無駄w
527デフォルトの名無しさん
2017/12/21(木) 21:10:06.93ID:0DSNwaJI 3つのファイルは同じ場所にあるの?
後aとSumはもういいからhtmlを省略せずに示してくれると分かりやすい
後aとSumはもういいからhtmlを省略せずに示してくれると分かりやすい
528デフォルトの名無しさん
2017/12/21(木) 23:24:13.84ID:hxAUg2rz ><body onload=“function a();”>
全角文字を使うな。
半角ダブルクォーテーションにする
<body onload="function a();">
全角文字を使うな。
半角ダブルクォーテーションにする
<body onload="function a();">
529デフォルトの名無しさん
2017/12/22(金) 19:09:03.87ID:qarTviTk >>527
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>gaming</title>
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
<script src="script-2.js"></script>
<script src="script-3.js"></script>
<script src="script-4.js"></script>
<body onload="initial()">
<h1>javascript game!</h1>
<p>click here to start game</p>
<canvas id="canvas" style="background-color:#eef;" width="800" height="400" onclick="start();">
<audio id="item_get" preload="auto">
<source src="item _get.mp3" type="audio/mp3"></audio>
</body></html>
コピペする時点で、変な処理が加わった可能性もあるのですが、構造はこのようです。
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>gaming</title>
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
<script src="script-2.js"></script>
<script src="script-3.js"></script>
<script src="script-4.js"></script>
<body onload="initial()">
<h1>javascript game!</h1>
<p>click here to start game</p>
<canvas id="canvas" style="background-color:#eef;" width="800" height="400" onclick="start();">
<audio id="item_get" preload="auto">
<source src="item _get.mp3" type="audio/mp3"></audio>
</body></html>
コピペする時点で、変な処理が加わった可能性もあるのですが、構造はこのようです。
530デフォルトの名無しさん
2017/12/22(金) 19:17:47.53ID:qarTviTk531デフォルトの名無しさん
2017/12/22(金) 19:19:43.35ID:qarTviTk532デフォルトの名無しさん
2017/12/22(金) 21:19:07.25ID:6yk8gXaG >>531
めんどくせーから、やり方教えるから自分でやれ
まずひとつのファイルに書いて動くかどうか確認しろ
動かなかったら動くと思うところまで削って確認しろ
動いたら、ファイルを分けるなどして動かなくなる
ところまで戻していけ
そうすりゃどこに原因が有るかわかる
めんどくせーから、やり方教えるから自分でやれ
まずひとつのファイルに書いて動くかどうか確認しろ
動かなかったら動くと思うところまで削って確認しろ
動いたら、ファイルを分けるなどして動かなくなる
ところまで戻していけ
そうすりゃどこに原因が有るかわかる
533デフォルトの名無しさん
2017/12/22(金) 21:35:37.49ID:qarTviTk >>532
そうですね、自分でいろいろいじってやってみます!
そうですね、自分でいろいろいじってやってみます!
534デフォルトの名無しさん
2017/12/22(金) 23:01:02.77ID:RZt5N+k9 そんなにファイルを分けているなら、CommonJS でも使えば?
Node.js, Electron, Webpack, Babel, jQuery とか
Node.js, Electron, Webpack, Babel, jQuery とか
535デフォルトの名無しさん
2017/12/23(土) 00:09:58.18ID:p1jtMZEV オブザーバーの利点が今ひとつ解らない。
カスタムイベント用意して
個別にそのイベントリスナー登録すればすむのに
管理オブジェクトがオブザーバーリスト持ったり
専用の関数を継承したり等
何故態々面倒な事をするのだろうか。
カスタムイベント用意して
個別にそのイベントリスナー登録すればすむのに
管理オブジェクトがオブザーバーリスト持ったり
専用の関数を継承したり等
何故態々面倒な事をするのだろうか。
536デフォルトの名無しさん
2017/12/23(土) 00:51:49.01ID:FPRjmoIB Mediator
中央管制塔のように全体を統轄する
「Observer Mediator」で検索!
自分でやったら、イベントの削除とかが面倒くさい。
削除しなかったら、ずっとメモリを使い続ける(メモリリーク)
イベントを取り付けた要素の、先祖の要素が削除された場合に、
イベントを削除する機会を失うから、メモリリークになる
jQuery では、そういう場合でも、メモリリークにならないから、すごい!
中央管制塔のように全体を統轄する
「Observer Mediator」で検索!
自分でやったら、イベントの削除とかが面倒くさい。
削除しなかったら、ずっとメモリを使い続ける(メモリリーク)
イベントを取り付けた要素の、先祖の要素が削除された場合に、
イベントを削除する機会を失うから、メモリリークになる
jQuery では、そういう場合でも、メモリリークにならないから、すごい!
537デフォルトの名無しさん
2017/12/23(土) 05:07:57.15ID:SOP9Z5sy もう随分前からNative-JS間の循環参照の問題は解決して
参照が残ってなければ消えるけどな
ネイティブの実装も極めて特定の場合に参照が残っている場合でも消えてしまうんだが
jQueryはそれをより気にせずアグレッシブに消すというだけで良し悪しがある
参照が残ってなければ消えるけどな
ネイティブの実装も極めて特定の場合に参照が残っている場合でも消えてしまうんだが
jQueryはそれをより気にせずアグレッシブに消すというだけで良し悪しがある
538536
2017/12/23(土) 23:45:25.73ID:FPRjmoIB Backbone.js ではメモリリークになるけど、
jQuery ではならない、って聞いた
jQuery ではならない、って聞いた
539デフォルトの名無しさん
2017/12/24(日) 14:34:11.59ID:WeE5WMFr node.jsでのファイルの存在確認には
fsモジュールのaccessメソッドが使われますが、
ファイルがないと例外が投げられます(同期の場合)
この挙動おかしくないですか?
ファイルがあるならtrue、ないならfalseを返せばいいはずです
例外は何かしら例外的な事象を知らせるために投げられるものですが
ファイルの有無を調べるメソッドにおいて、
ファイルがないことは例外的事象でも何でもありません
何でこんなことになってるのでしょうか?
fsモジュールのaccessメソッドが使われますが、
ファイルがないと例外が投げられます(同期の場合)
この挙動おかしくないですか?
ファイルがあるならtrue、ないならfalseを返せばいいはずです
例外は何かしら例外的な事象を知らせるために投げられるものですが
ファイルの有無を調べるメソッドにおいて、
ファイルがないことは例外的事象でも何でもありません
何でこんなことになってるのでしょうか?
540デフォルトの名無しさん
2017/12/24(日) 14:43:46.49ID:o8ETW9H4 下記のコードについて質問です。
配列内容をシャッフルするコードのようなのですが、
forの動作に疑問を持ったので教えて頂ければと思います。
・,(カンマ)で区切ってある箇所は連続して処理されるという認識で間違いないでしょうか?
・for文が止まる理由は、for文の真ん中の条件式の k; が0になる=false と判断されるということでしょうか?
Array.prototype.shuffle = function() {
for(var j, x, k = this.length; k; j = Math.floor(Math.random() * k), x = this[--k], this[k] = this[j], this[j] = x);
return this;
};
質問が分かりづらかったらすみません。
よろしくお願いします。
配列内容をシャッフルするコードのようなのですが、
forの動作に疑問を持ったので教えて頂ければと思います。
・,(カンマ)で区切ってある箇所は連続して処理されるという認識で間違いないでしょうか?
・for文が止まる理由は、for文の真ん中の条件式の k; が0になる=false と判断されるということでしょうか?
Array.prototype.shuffle = function() {
for(var j, x, k = this.length; k; j = Math.floor(Math.random() * k), x = this[--k], this[k] = this[j], this[j] = x);
return this;
};
質問が分かりづらかったらすみません。
よろしくお願いします。
541デフォルトの名無しさん
2017/12/24(日) 15:07:00.78ID:UCQX5tUj542デフォルトの名無しさん
2017/12/24(日) 15:41:38.56ID:A3ERayLu >>540
意味がわからないのは、そのコードの可読性が低いから、
だめだよ。そんな書き方をしたら
普通に書こう。前提として for(ここ; ここ; ここ) の「ここ」の部分は省略できる
まず、一番目の「ここ」は初期化なのだから forの外に移動できる
Array.prototype.shuffle = function() {
var j, x, k = this.length;
for(; k; j = Math.floor(Math.random() * k), x = this[--k], this[k] = this[j], this[j] = x);
return this;
};
そして、3番目の「ここ」はループの中に入れることができる
Array.prototype.shuffle = function() {
var j, x, k = this.length;
for(; k;) {
j = Math.floor(Math.random() * k), x = this[--k], this[k] = this[j], this[j] = x
}
return this;
};
意味がわからないのは、そのコードの可読性が低いから、
だめだよ。そんな書き方をしたら
普通に書こう。前提として for(ここ; ここ; ここ) の「ここ」の部分は省略できる
まず、一番目の「ここ」は初期化なのだから forの外に移動できる
Array.prototype.shuffle = function() {
var j, x, k = this.length;
for(; k; j = Math.floor(Math.random() * k), x = this[--k], this[k] = this[j], this[j] = x);
return this;
};
そして、3番目の「ここ」はループの中に入れることができる
Array.prototype.shuffle = function() {
var j, x, k = this.length;
for(; k;) {
j = Math.floor(Math.random() * k), x = this[--k], this[k] = this[j], this[j] = x
}
return this;
};
543デフォルトの名無しさん
2017/12/24(日) 15:45:14.80ID:A3ERayLu あとは整形しよう
Array.prototype.shuffle = function() {
var j, x, k = this.length;
for(; k;) {
j = Math.floor(Math.random() * k);
x = this[--k];
this[k] = this[j];
this[j] = x;
}
return this;
};
そしてforではなくwhile使ったりと普通の書き方に書き直す
Array.prototype.shuffle = function() {
var k = this.length;
while(k) {
var j = Math.floor(Math.random() * k);
k--;
var x = this[k];
this[k] = this[j];
this[j] = x;
}
return this;
};
Array.prototype.shuffle = function() {
var j, x, k = this.length;
for(; k;) {
j = Math.floor(Math.random() * k);
x = this[--k];
this[k] = this[j];
this[j] = x;
}
return this;
};
そしてforではなくwhile使ったりと普通の書き方に書き直す
Array.prototype.shuffle = function() {
var k = this.length;
while(k) {
var j = Math.floor(Math.random() * k);
k--;
var x = this[k];
this[k] = this[j];
this[j] = x;
}
return this;
};
544デフォルトの名無しさん
2017/12/24(日) 16:00:39.17ID:A3ERayLu ES6使った最新の書き方だとこうなるかな
Array.prototype.shuffle = function() {
for (let i = this.length; i > 0; i--) {
const a = i - 1;
const b = Math.floor(Math.random() * i);
[this[a], this[b]] = [this[b], this[a]];
}
return this;
};
console.log([0,1,2,3,4,5,6,7,8,9].shuffle());
そしてlodashにはshuffle関数は用意されてるので何も作る必要はないw
https://lodash.com/docs/4.17.4#shuffle
Array.prototype.shuffle = function() {
for (let i = this.length; i > 0; i--) {
const a = i - 1;
const b = Math.floor(Math.random() * i);
[this[a], this[b]] = [this[b], this[a]];
}
return this;
};
console.log([0,1,2,3,4,5,6,7,8,9].shuffle());
そしてlodashにはshuffle関数は用意されてるので何も作る必要はないw
https://lodash.com/docs/4.17.4#shuffle
545540
2017/12/24(日) 16:21:10.56ID:o8ETW9H4546デフォルトの名無しさん
2017/12/24(日) 16:40:02.32ID:Aqm+dg8E その実装のは破壊的、lodashのは非破壊的、別もの
547デフォルトの名無しさん
2017/12/25(月) 12:00:33.73ID:4sWgRikP shuffleだけのためにlodashを使うのは、徒歩30秒の距離で車を使うようなもの
548デフォルトの名無しさん
2017/12/25(月) 12:13:26.06ID:f+SL+sZc 別に誰もそれだけの為に導入しろと言ってる訳ではなかろう
549デフォルトの名無しさん
2017/12/25(月) 20:32:26.17ID:A5UkwOIg550デフォルトの名無しさん
2017/12/26(火) 04:19:36.08ID:TqP2PjCC 今回は仕事でデバッグするわけじゃないんだから可動性は関係ない
勉強では可読性は時間をかけてほぐせばいいだけ
ただ初心者はアルゴリズムの理解力がないからどのみち他人のコードを読むのは辛いのが当たり前
勉強では可読性は時間をかけてほぐせばいいだけ
ただ初心者はアルゴリズムの理解力がないからどのみち他人のコードを読むのは辛いのが当たり前
551デフォルトの名無しさん
2017/12/26(火) 13:57:09.06ID:92mUXoN6 youtube player api で動画を再生しているdivの画像を取得
(youtube動画のフレーム画像を取得)
する方法はありますか?
(youtube動画のフレーム画像を取得)
する方法はありますか?
552デフォルトの名無しさん
2017/12/26(火) 16:08:36.57ID:jvaXshWl >>550
アルゴリズムどころか基本的な文法で詰まってるだけじゃん
アルゴリズムどころか基本的な文法で詰まってるだけじゃん
553デフォルトの名無しさん
2017/12/26(火) 18:26:24.24ID:rRAcDTGz 素人なりに firefox の addon を書いている最中なのですが
それに適した質問スレなどはありますか
このスレが最適でしょうか
それに適した質問スレなどはありますか
このスレが最適でしょうか
554デフォルトの名無しさん
2017/12/26(火) 21:25:20.55ID:TqP2PjCC 今の拡張機能界はChromeベースのがWeb標準になって
Firefox/Edgeもそれとかなりの互換性持ってるから
ここで聞いても答えてくれやすいと思うよ
結構難しいAPIも多いしね
Firefox/Edgeもそれとかなりの互換性持ってるから
ここで聞いても答えてくれやすいと思うよ
結構難しいAPIも多いしね
555デフォルトの名無しさん
2017/12/26(火) 22:47:46.06ID:q5h+DApT556デフォルトの名無しさん
2017/12/27(水) 09:48:28.06ID:F3frNi7j557デフォルトの名無しさん
2017/12/28(木) 12:36:05.48ID:YvqDgyTx イマドキのJavaScriptの書き方2018
https://qiita.com/shibukawa/items/19ab5c381bbb2e09d0d9
これの「辞書・ハッシュ用途はオブジェクトではなくてMapを使う」
っていうところですが、
オブジェクトをハッシュとして使うことのデメリットなんて実際上ないし、
Mapの書き方の方がイケてないと思うのですが、どうなのでしょうか?
特にMapオブジェクト生成時に、キーと値を配列で渡しているのが気になります
そもそもオブジェクトをハッシュとして使うというアイデアからJSONが生まれて
JSONが現在も広く使われているのに、
わざわざMapに書き換えるのってアホくさいと思います
そうですね?
https://qiita.com/shibukawa/items/19ab5c381bbb2e09d0d9
これの「辞書・ハッシュ用途はオブジェクトではなくてMapを使う」
っていうところですが、
オブジェクトをハッシュとして使うことのデメリットなんて実際上ないし、
Mapの書き方の方がイケてないと思うのですが、どうなのでしょうか?
特にMapオブジェクト生成時に、キーと値を配列で渡しているのが気になります
そもそもオブジェクトをハッシュとして使うというアイデアからJSONが生まれて
JSONが現在も広く使われているのに、
わざわざMapに書き換えるのってアホくさいと思います
そうですね?
558デフォルトの名無しさん
2017/12/28(木) 12:46:33.55ID:I2ZsYrio559デフォルトの名無しさん
2017/12/28(木) 12:54:46.38ID:YvqDgyTx >>558
オブジェクトをMapに書き換えるメリットって本当にありますか?
オブジェクトをMapに書き換えるメリットって本当にありますか?
560デフォルトの名無しさん
2017/12/28(木) 12:54:48.29ID:E7wukrMJ わからないからゴミクズと呼ばれる
561デフォルトの名無しさん
2017/12/28(木) 13:09:05.03ID:YvqDgyTx オブジェクトではキーと値の一対一の対応が明確なのに
Mapオブジェクトを使う方法ではそこここに配列が介在していて
そのあたりがぼやけています
これはハッシュ専用のオブジェクトを使うというアリバイだけのために
支払うコストとしては多すぎます
そうですね?
>>560
ハーゲ
Mapオブジェクトを使う方法ではそこここに配列が介在していて
そのあたりがぼやけています
これはハッシュ専用のオブジェクトを使うというアリバイだけのために
支払うコストとしては多すぎます
そうですね?
>>560
ハーゲ
562デフォルトの名無しさん
2017/12/28(木) 15:00:20.01ID:vjcxarUk Mapはキーが文字列じゃなくてもOK
563デフォルトの名無しさん
2017/12/28(木) 16:16:29.91ID:YvqDgyTx なるほど
それはオブジェクトにはないメリットですね
用途によっては適所がありそうです
ありがとうございました
それはオブジェクトにはないメリットですね
用途によっては適所がありそうです
ありがとうございました
564デフォルトの名無しさん
2017/12/28(木) 18:15:58.45ID:EahqhR5N565デフォルトの名無しさん
2017/12/28(木) 20:42:21.94ID:E7wukrMJ 本当にゴミクズ ドキュメントに書いてある事を指摘されて
「なるほど」
生きている価値がない
「なるほど」
生きている価値がない
566デフォルトの名無しさん
2017/12/28(木) 20:45:46.92ID:E7wukrMJ567デフォルトの名無しさん
2017/12/28(木) 21:27:26.25ID:MFN1+dHK >>566
相変わらすハゲですね〜
オブジェクトをハッシュとして使ってきた用法に関しては
依然としてオブジェクトの方がいいと思いますよ
ただMapにはMapの使い道がある、と言っているのです
分かりますね?
相変わらすハゲですね〜
オブジェクトをハッシュとして使ってきた用法に関しては
依然としてオブジェクトの方がいいと思いますよ
ただMapにはMapの使い道がある、と言っているのです
分かりますね?
568デフォルトの名無しさん
2017/12/28(木) 21:32:34.92ID:AeGE7eie570デフォルトの名無しさん
2017/12/28(木) 22:14:09.65ID:E7wukrMJ571デフォルトの名無しさん
2017/12/28(木) 23:15:07.71ID:EahqhR5N >>562
ちなみにお前はどんなスレが欲しいんだ?
或いは、自分が何をやっているのか理解しているか?
君の回答よりもMDNの方が詳しく正確に書いてある。
つまりこのブスはMDNすら読んでいないことが確定的に分かっている。
その上で、回答をするのなら、今後ともMDNすら読んでいない奴が質問を繰り返すことになる。
それが君の望むスレなのか?
或いは、君はゴキブリ韓国人と同様、日本人が集まる場所を破壊するのが目的なのか?
MDNすら読め無い馬鹿が集うスレが欲しいのなら、君らがそれを新たに作るのは自由だ。
ただ、ここはそうじゃない。
最低限ググってから質問しろという、2chではごく当たり前のスレだ。
それを無理に乗っ取って回答を続けることは、背乗りゴキブリ韓国人と同レベルだと理解できてるか?
もっと長期的視点で考えろ。
ちなみにお前はどんなスレが欲しいんだ?
或いは、自分が何をやっているのか理解しているか?
君の回答よりもMDNの方が詳しく正確に書いてある。
つまりこのブスはMDNすら読んでいないことが確定的に分かっている。
その上で、回答をするのなら、今後ともMDNすら読んでいない奴が質問を繰り返すことになる。
それが君の望むスレなのか?
或いは、君はゴキブリ韓国人と同様、日本人が集まる場所を破壊するのが目的なのか?
MDNすら読め無い馬鹿が集うスレが欲しいのなら、君らがそれを新たに作るのは自由だ。
ただ、ここはそうじゃない。
最低限ググってから質問しろという、2chではごく当たり前のスレだ。
それを無理に乗っ取って回答を続けることは、背乗りゴキブリ韓国人と同レベルだと理解できてるか?
もっと長期的視点で考えろ。
572デフォルトの名無しさん
2017/12/28(木) 23:26:54.90ID:VRkNjdBa var key = 'a';
// var key = '__proto__';
var obj = {};
obj[key] = obj[key] ? obj[key] + 1 : 1;
文書に出現する、単語の数を数える場合、
その単語が未登録なら1、すでに登録されているなら、1増やす
こういう場合に、たまたま、__proto__ という単語を登録しようとするとバグル。
obj.__proto__ を上書きするから
var wordsMap : Map<String, Int> = new Map();
wordsMap["a"] = 1;
trace(wordsMap["a"]);
上は、Haxe のMap のコードだが、ES4 変換後のコードでは、
wordsMap["$" + key]
のように、キーの前に、$ 文字を連結している
他にも、
var obj = {x : {}};
のように、オブジェクト内のオブジェクトを使う事もできるが、
この方法でも、__proto__ ではバグル
// var key = '__proto__';
var obj = {};
obj[key] = obj[key] ? obj[key] + 1 : 1;
文書に出現する、単語の数を数える場合、
その単語が未登録なら1、すでに登録されているなら、1増やす
こういう場合に、たまたま、__proto__ という単語を登録しようとするとバグル。
obj.__proto__ を上書きするから
var wordsMap : Map<String, Int> = new Map();
wordsMap["a"] = 1;
trace(wordsMap["a"]);
上は、Haxe のMap のコードだが、ES4 変換後のコードでは、
wordsMap["$" + key]
のように、キーの前に、$ 文字を連結している
他にも、
var obj = {x : {}};
のように、オブジェクト内のオブジェクトを使う事もできるが、
この方法でも、__proto__ ではバグル
573デフォルトの名無しさん
2017/12/28(木) 23:55:13.26ID:AeGE7eie つまり、キーとしてそういうものが入らないと
断定できるならば問題ない
キーとなるものはコードに書かれている文字のみで
ユーザーが入力したテキストを入れるとかない限り
心配する必要はないということさ
断定できるならば問題ない
キーとなるものはコードに書かれている文字のみで
ユーザーが入力したテキストを入れるとかない限り
心配する必要はないということさ
574デフォルトの名無しさん
2017/12/29(金) 00:37:14.05ID:h2ZT+2Pd 皇居でブラタモリ
575デフォルトの名無しさん
2017/12/29(金) 00:37:48.77ID:h2ZT+2Pd 誤爆失礼w
576デフォルトの名無しさん
2017/12/29(金) 13:13:32.16ID:PDOKco2M Object.prototypeの問題は
obj={__proto__:null}
obj=Object.create()
で解決するから別にそこがオブジェクトリテラルと比べて
殊更取り上げる程のMapの特徴と言うわけでもない
obj={__proto__:null}
obj=Object.create()
で解決するから別にそこがオブジェクトリテラルと比べて
殊更取り上げる程のMapの特徴と言うわけでもない
577デフォルトの名無しさん
2017/12/30(土) 00:33:29.23ID:GFw+RV/O Object.create(null)もいいが、Mapの利点はforEachで定義順で列挙可能とか、iterableなオブジェクトを生成しやすいとか、あたりじゃないかね
578デフォルトの名無しさん
2017/12/30(土) 12:38:52.32ID:tmNQ0max 全部一次ドキュメントに*日本語でも*記述されてる事だね
ゴミクズ質問者とそれに集るゴミクズ回答者
ゴミクズ質問者とそれに集るゴミクズ回答者
579デフォルトの名無しさん
2017/12/31(日) 11:37:26.89ID:lfwJq0IT JSに一次ドキュメントはない
コメントほぼ無しの仕様書と二次三次ドキュメントだけ
コメントほぼ無しの仕様書と二次三次ドキュメントだけ
580デフォルトの名無しさん
2017/12/31(日) 13:14:45.77ID:WrKHDnuU ゴミクズ回答者はWeb標準のドキュメントがMDNに統合される事(既に統合は進んでいる)を知らないようだ
ゴミクズ回答者にとっては、時間と金をかけて必死で積み上げた取って置きの知識だろうけど
今は無料で即時に入手出来るんだよ
Mapの利点を長々と解説してたが、三平方の定理を発見した古代人がドヤ顔で解説してるようで滑稽だったよ
ゴミクズ回答者にとっては、時間と金をかけて必死で積み上げた取って置きの知識だろうけど
今は無料で即時に入手出来るんだよ
Mapの利点を長々と解説してたが、三平方の定理を発見した古代人がドヤ顔で解説してるようで滑稽だったよ
581デフォルトの名無しさん
2017/12/31(日) 13:21:58.51ID:QYl5Dlef だれかMacの利点を話してた人いたっけ?
582デフォルトの名無しさん
2017/12/31(日) 17:46:10.92ID:GvxCaHuK 初歩的な質問失礼。
ある非同期関数があるとき、それをwrapして同期版を作るうまい方法ってないですかね?
fs.open()を使ってfs.openSync()を作るようなイメージ。
ある非同期関数があるとき、それをwrapして同期版を作るうまい方法ってないですかね?
fs.open()を使ってfs.openSync()を作るようなイメージ。
583デフォルトの名無しさん
2017/12/31(日) 19:02:39.26ID:B2mtcXzM ないです
584デフォルトの名無しさん
2017/12/31(日) 19:05:55.34ID:lWm8BqoC promise
generator runner は、promise と組み合わせて、非同期処理を同期的に書ける。
つまり例外処理を使える(同じコンテキスト)
co, Koa を使う
generator runner は、promise と組み合わせて、非同期処理を同期的に書ける。
つまり例外処理を使える(同じコンテキスト)
co, Koa を使う
585デフォルトの名無しさん
2017/12/31(日) 21:46:58.66ID:GvxCaHuK >>583
やっぱりそうですね。
やっぱりそうですね。
586584
2017/12/31(日) 22:12:55.50ID:lWm8BqoC generator runner
非同期のpromise をラップして、同期処理にしたもの
同期f(){
yield 非同期のpromise;
}
yield で、promise が満たされるまで止まる
非同期のpromise をラップして、同期処理にしたもの
同期f(){
yield 非同期のpromise;
}
yield で、promise が満たされるまで止まる
587デフォルトの名無しさん
2017/12/31(日) 22:49:12.39ID:GvxCaHuK588584
2017/12/31(日) 23:30:23.91ID:lWm8BqoC co, Koa を使う
それを見て
それを見て
589584
2018/01/01(月) 00:11:22.41ID:W1EVIqcJ yield 非同期のpromise;
yield で、promise が満たされるまで止まるように、iterator, generator を作ると、
ES2017 の、async/await と同じになる
それが、co, Koa なんだろう
yield で、promise が満たされるまで止まるように、iterator, generator を作ると、
ES2017 の、async/await と同じになる
それが、co, Koa なんだろう
590デフォルトの名無しさん
2018/01/01(月) 05:14:25.34ID:E9GYpYJ8591デフォルトの名無しさん
2018/01/01(月) 07:54:04.98ID:M7PJ0p4R592デフォルトの名無しさん
2018/01/01(月) 09:38:37.62ID:RL3ivRC9593デフォルトの名無しさん
2018/01/01(月) 12:41:21.48ID:UtygSLzQ >>592
気持ちは分かるが、説明書を読むのと、人から教えられるのではやっぱ感触が違うからな
ROMってる奴のほうが多いと思うし、その人の為、もしくは例え既知であってももう一度それに付いて考えてみる機会ができたという点で為になってると思うよ
気持ちは分かるが、説明書を読むのと、人から教えられるのではやっぱ感触が違うからな
ROMってる奴のほうが多いと思うし、その人の為、もしくは例え既知であってももう一度それに付いて考えてみる機会ができたという点で為になってると思うよ
594デフォルトの名無しさん
2018/01/01(月) 13:52:41.65ID:RL3ivRC9 >>593
ならねーよ。死ねよ。
考える機会が欲しいのなら、自分でMDNを定期的に読み返せば済む。
自己完結できない奴は上達しないし、そもそもプログラマに向いてない。
小学1年生の教科書を毎年読み返しても、お前みたいな小学1年生レベルの馬鹿から進歩できないだろ。
JavaScriptのスレはマジで酷いぞ。少しは他スレも読んでみるといい。
当然他スレにも初心者は沸いているわけでね。
何故JavaScriptだけこんなに酷いのかは、俺にはいまだによく分からんが。
568のqiita、20年やっててこの程度しか書けないのか?と思うよ。
JavaScripterは、文法にだけやたらこだわっていて、プログラマとしては全く上達してない。
ならねーよ。死ねよ。
考える機会が欲しいのなら、自分でMDNを定期的に読み返せば済む。
自己完結できない奴は上達しないし、そもそもプログラマに向いてない。
小学1年生の教科書を毎年読み返しても、お前みたいな小学1年生レベルの馬鹿から進歩できないだろ。
JavaScriptのスレはマジで酷いぞ。少しは他スレも読んでみるといい。
当然他スレにも初心者は沸いているわけでね。
何故JavaScriptだけこんなに酷いのかは、俺にはいまだによく分からんが。
568のqiita、20年やっててこの程度しか書けないのか?と思うよ。
JavaScripterは、文法にだけやたらこだわっていて、プログラマとしては全く上達してない。
595デフォルトの名無しさん
2018/01/01(月) 14:22:31.88ID:E9GYpYJ8 >>594
そんなことないと思うよ
これを機にMapについてより深く知った人も多いと思うし
自分もこれまでMapをどう使ってきたかなって思い起こす機械になったし
沢山の物があるWeb学習において重要なことは、
機会があった時に深く知ることを繰り返すことだと思うよ
基礎を完璧に抑えて応用を学んだ行くというのは不可能
だから時々基礎に立ち返る価値はいつになってもあるし、
例えMDNが90点で、ここの情報が2,30点の集まりだったとしても、
色んな人の色んな角度から情報を理解するってことも重要
JSもだし、Webっていうのは皆で作っていくものだからね
言葉の定義や何が良いことかっていうのも、
その瞬間に世界のJSerやWebデベロッパーが何をどう考えているかで変わってくる
だから文法や文脈に拘るっていうのもとても大切なことで
JSerやWebデベロッパーにとってそのすり合わせのための機会っていうのも重要
正解が無く、むしろその自由さが良いこととされている環境だが、だからこそ常に正解を見つけていかないといけない
だから皆が独自に正解を考えるが、実際その環境で何が正解と言えるかというと皆の意見の総和ということになる
だから自分のこだわりを認めてもらおうと、広めようと躍起になって良く揉めるが、それも環境の進化のために必要なこと
その点中央政権があったり、よりプロプライエタリな他言語環境とは雰囲気が違うのは当然
そんなことないと思うよ
これを機にMapについてより深く知った人も多いと思うし
自分もこれまでMapをどう使ってきたかなって思い起こす機械になったし
沢山の物があるWeb学習において重要なことは、
機会があった時に深く知ることを繰り返すことだと思うよ
基礎を完璧に抑えて応用を学んだ行くというのは不可能
だから時々基礎に立ち返る価値はいつになってもあるし、
例えMDNが90点で、ここの情報が2,30点の集まりだったとしても、
色んな人の色んな角度から情報を理解するってことも重要
JSもだし、Webっていうのは皆で作っていくものだからね
言葉の定義や何が良いことかっていうのも、
その瞬間に世界のJSerやWebデベロッパーが何をどう考えているかで変わってくる
だから文法や文脈に拘るっていうのもとても大切なことで
JSerやWebデベロッパーにとってそのすり合わせのための機会っていうのも重要
正解が無く、むしろその自由さが良いこととされている環境だが、だからこそ常に正解を見つけていかないといけない
だから皆が独自に正解を考えるが、実際その環境で何が正解と言えるかというと皆の意見の総和ということになる
だから自分のこだわりを認めてもらおうと、広めようと躍起になって良く揉めるが、それも環境の進化のために必要なこと
その点中央政権があったり、よりプロプライエタリな他言語環境とは雰囲気が違うのは当然
596デフォルトの名無しさん
2018/01/01(月) 14:57:35.96ID:RL3ivRC9 >>595
ゴミクズ韓国人な私はいつまで経っても馬鹿のまま、まで読んだ。
まあとにかく、ググればすぐ分かること、或いはMDNに明示的に書いてあることすらも受け付けるというのなら、
そういう連中を集めて、新しいスレを作ってくれないかな?
何故、既存のスレを乗っ取ろうとする?背乗り韓国人なら死ねよマジで。
韓国人死ね
君がそう思っている。
俺はそうは全く思ってないし、こちらが2chでは主流派だ。
Web流を自負するなら、背乗りではなくて、フォークで決着するべきだ。
何故それをしない?
それで、君達の新しいスレが繁栄し、持続すれば、君達が正しかったことになる。
お前が言っていることは、まんまゴミクズ在日韓国人の言い訳と同じだ。
お前みたいな在日韓国人は死ねとしか思わないね。
既に何度も言っているが、
俺は君たちが新しく作ったスレには行かないし、Web板のスレにも投稿しない。
それで、俺が居るスレと、俺が居ないスレで、どっちが良くなるか勝負しようと何度も誘っている。
俺が居ないスレの方が良いスレになるようなら、俺の存在価値は無い証明になる。
逆に、君たちの居ないスレの方が良いスレになるようなら、お前らがゴミでありゴキブリである証明になる。
こういう、建設的な勝負をしようと既に何度も誘っている。
お前らは受ける勇気もないヘタレだ。属国5000年のヘタレなDNAは伊達ではない、というところか。
再度言う、韓国人死ね
ゴミクズ韓国人な私はいつまで経っても馬鹿のまま、まで読んだ。
まあとにかく、ググればすぐ分かること、或いはMDNに明示的に書いてあることすらも受け付けるというのなら、
そういう連中を集めて、新しいスレを作ってくれないかな?
何故、既存のスレを乗っ取ろうとする?背乗り韓国人なら死ねよマジで。
韓国人死ね
君がそう思っている。
俺はそうは全く思ってないし、こちらが2chでは主流派だ。
Web流を自負するなら、背乗りではなくて、フォークで決着するべきだ。
何故それをしない?
それで、君達の新しいスレが繁栄し、持続すれば、君達が正しかったことになる。
お前が言っていることは、まんまゴミクズ在日韓国人の言い訳と同じだ。
お前みたいな在日韓国人は死ねとしか思わないね。
既に何度も言っているが、
俺は君たちが新しく作ったスレには行かないし、Web板のスレにも投稿しない。
それで、俺が居るスレと、俺が居ないスレで、どっちが良くなるか勝負しようと何度も誘っている。
俺が居ないスレの方が良いスレになるようなら、俺の存在価値は無い証明になる。
逆に、君たちの居ないスレの方が良いスレになるようなら、お前らがゴミでありゴキブリである証明になる。
こういう、建設的な勝負をしようと既に何度も誘っている。
お前らは受ける勇気もないヘタレだ。属国5000年のヘタレなDNAは伊達ではない、というところか。
再度言う、韓国人死ね
597デフォルトの名無しさん
2018/01/01(月) 17:45:00.75ID:Xbk+w4sV ある要素にaddEventListenerでイベントリスナを登録したんですが
この要素を削除すればイベントリスナも削除されますか?
見えない所に残ったままになりませんかね?
要素を削除する前にremoveEventListenerをするべきでしょうか?
この要素を削除すればイベントリスナも削除されますか?
見えない所に残ったままになりませんかね?
要素を削除する前にremoveEventListenerをするべきでしょうか?
598デフォルトの名無しさん
2018/01/01(月) 19:47:13.85ID:faANOIdg599デフォルトの名無しさん
2018/01/01(月) 22:46:59.46ID:RL3ivRC9 >>598
連呼リアン死ね
連呼リアン死ね
600デフォルトの名無しさん
2018/01/01(月) 23:10:17.69ID:W1EVIqcJ >>597
ある要素に、EventListener を付けて、その要素の先祖の要素を削除すると、
EventListener が付いたままになって、メモリリークを起こすのでは?
Backbone では、メモリリークになるけど、
jQuery では、削除した要素の、すべての子孫の要素の、
EventListener も削除するからメモリリークにならない、と何かで読んだことがある
まあ、デバッグして確かめるしかない
ある要素に、EventListener を付けて、その要素の先祖の要素を削除すると、
EventListener が付いたままになって、メモリリークを起こすのでは?
Backbone では、メモリリークになるけど、
jQuery では、削除した要素の、すべての子孫の要素の、
EventListener も削除するからメモリリークにならない、と何かで読んだことがある
まあ、デバッグして確かめるしかない
601デフォルトの名無しさん
2018/01/02(火) 12:07:09.51ID:tr5O7MN9 >>597
>>600
お前らもいい加減死ね
何度目だその質問?だし、
過去スレどころかこのスレ内で既に回答されてるし、
回答600も間違ってるし。
全ての点において救いようがない。
まあそれでも、お前らがそれに価値があると思うのなら、フォークしろ。
つまり、別スレとして新たな方式、お前らが目指している、
・同じ質問を何度でもおk
・ググってすぐ見つかる事も質問してよし
・MDNに明示的に書いてあることも質問してよし
・日本語が不自由でもよし
・間違った回答も歓迎
・ゴキブリ韓国人も歓迎
を作って、試してみればいい。
俺は無理だと思うが、この見立てが間違っているのなら、俺が老害である証明になる。
そうではなく、お前らでまともに成立するスレを作れないのなら、お前らこそが荒らしなんだよ。
マジでそれを自覚して、背乗りは止めろ。誰のためにもならない。
韓国人死ね
>>600
お前らもいい加減死ね
何度目だその質問?だし、
過去スレどころかこのスレ内で既に回答されてるし、
回答600も間違ってるし。
全ての点において救いようがない。
まあそれでも、お前らがそれに価値があると思うのなら、フォークしろ。
つまり、別スレとして新たな方式、お前らが目指している、
・同じ質問を何度でもおk
・ググってすぐ見つかる事も質問してよし
・MDNに明示的に書いてあることも質問してよし
・日本語が不自由でもよし
・間違った回答も歓迎
・ゴキブリ韓国人も歓迎
を作って、試してみればいい。
俺は無理だと思うが、この見立てが間違っているのなら、俺が老害である証明になる。
そうではなく、お前らでまともに成立するスレを作れないのなら、お前らこそが荒らしなんだよ。
マジでそれを自覚して、背乗りは止めろ。誰のためにもならない。
韓国人死ね
602デフォルトの名無しさん
2018/01/02(火) 19:51:20.73ID:BCempIdS フォークは無意味
分けるんなら「質問スレ」を消して両方別名でpart1から始めるべき
分けるんなら「質問スレ」を消して両方別名でpart1から始めるべき
603デフォルトの名無しさん
2018/01/02(火) 20:43:56.15ID:zTWSIcjp フォークなんて何の意味もない
質問スレなんだから質問と回答だけを書け
ハゲは消え失せろ
以上
質問スレなんだから質問と回答だけを書け
ハゲは消え失せろ
以上
604デフォルトの名無しさん
2018/01/02(火) 21:32:54.72ID:tr5O7MN9 一応Web板にも質問スレはあって、そこも十分機能しているわけだから、
お前らが乱入してこなければ、フォークとして機能しているんだよ。
だからとりあえずWeb板に戻って、そこで自由にやってくれないかな?
俺は何度もそっちには口出ししないと宣言している。
お前らに足りないのはIDではなく、お前ら自身の民度だと、お前らにも分かってきていると思うけど、
それでもIDが欲しければ、Web板民で話し合って、
君らで自由にテンプレ作ってIDありの板でスレ立ててみればいい。
それで君らのスレの方が繁栄すれば、君らの勝ちだよ。分かりやすい話だ。
ただなあ、ググレカスなのは2chのみならず、Web全体の文化であり、
何故そうなっているのかすら理解できず、
「ウリが正しいニダ」と声闘をするゴキブリ韓国人級の知能では、どうにもならないとは思うけど。
まあそれでも、やってみて、まずは己の無力さを理解することだね。
韓国人死ね
お前らが乱入してこなければ、フォークとして機能しているんだよ。
だからとりあえずWeb板に戻って、そこで自由にやってくれないかな?
俺は何度もそっちには口出ししないと宣言している。
お前らに足りないのはIDではなく、お前ら自身の民度だと、お前らにも分かってきていると思うけど、
それでもIDが欲しければ、Web板民で話し合って、
君らで自由にテンプレ作ってIDありの板でスレ立ててみればいい。
それで君らのスレの方が繁栄すれば、君らの勝ちだよ。分かりやすい話だ。
ただなあ、ググレカスなのは2chのみならず、Web全体の文化であり、
何故そうなっているのかすら理解できず、
「ウリが正しいニダ」と声闘をするゴキブリ韓国人級の知能では、どうにもならないとは思うけど。
まあそれでも、やってみて、まずは己の無力さを理解することだね。
韓国人死ね
605デフォルトの名無しさん
2018/01/02(火) 21:50:54.97ID:oQl8slaZ 乱入ワロタw
お前のスレじゃねーんだよゴミ
お前が出て行けばそれで誰にとってもハッピーなんだって分からんか?
お前のスレじゃねーんだよゴミ
お前が出て行けばそれで誰にとってもハッピーなんだって分からんか?
606デフォルトの名無しさん
2018/01/02(火) 22:44:21.14ID:tr5O7MN9 まあ、世界中から韓国人が死滅すれば、世界はずいぶんマシになるよ。
韓国人の一番の問題は、韓国人が何故嫌われているのか全く理解できないことだからね。
韓国人死ね
そしてお前らの問題は、お前らが韓国人と同じ事をやっていることを理解できないことだ。
まずはそれを理解しないと始まらない。
俺が言っている方針、
・まずググレ
・公式ドキュメントに書いてあることを質問するな
・過去スレを読め
なんてのは、2ch/Web全体の文化であって、
少なくとも何故こうなっているのか理解できない馬鹿にこれを凌ぐ物を作ることは出来ない。
君らは君らが馬鹿であることを自覚するところから始めないといけない。本当に終わってる。
俺が出て行っても、状況は変わらんよ。これはWeb全体の文化だから。
相手を追い出しさえすれば全て解決というのは、完全に在日ゴキブリ韓国人の論理だね。
それはそうとして、これは結局例のコピペ「コミュニティの一生」の終末状態であり、
https: dic nicovideo jp/a/%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E3%81%AE%E4%B8%80%E7%94%9F
2chにはこれを防ぐための方策がないのも事実だ。
そこで俺はこれについての対策を持った掲示板を立ち上げたいとは思っているんだが、
仕様についてアイデアがある奴はいるか?
例えば、ふたばの仕様、
・1はスレ内の任意のレスを消せる(style.display = 'none';)
・1によって3回消されたらその人はスレ内BAN
で解決するかね?
或いは、他のアイデアがあれば是非。
韓国人の一番の問題は、韓国人が何故嫌われているのか全く理解できないことだからね。
韓国人死ね
そしてお前らの問題は、お前らが韓国人と同じ事をやっていることを理解できないことだ。
まずはそれを理解しないと始まらない。
俺が言っている方針、
・まずググレ
・公式ドキュメントに書いてあることを質問するな
・過去スレを読め
なんてのは、2ch/Web全体の文化であって、
少なくとも何故こうなっているのか理解できない馬鹿にこれを凌ぐ物を作ることは出来ない。
君らは君らが馬鹿であることを自覚するところから始めないといけない。本当に終わってる。
俺が出て行っても、状況は変わらんよ。これはWeb全体の文化だから。
相手を追い出しさえすれば全て解決というのは、完全に在日ゴキブリ韓国人の論理だね。
それはそうとして、これは結局例のコピペ「コミュニティの一生」の終末状態であり、
https: dic nicovideo jp/a/%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E3%81%AE%E4%B8%80%E7%94%9F
2chにはこれを防ぐための方策がないのも事実だ。
そこで俺はこれについての対策を持った掲示板を立ち上げたいとは思っているんだが、
仕様についてアイデアがある奴はいるか?
例えば、ふたばの仕様、
・1はスレ内の任意のレスを消せる(style.display = 'none';)
・1によって3回消されたらその人はスレ内BAN
で解決するかね?
或いは、他のアイデアがあれば是非。
607デフォルトの名無しさん
2018/01/02(火) 23:03:44.84ID:BCempIdS 自分で調べろというのはごもっともだがそれはどちらかと言うとマナーの範疇
そういう人にググれカスだの半年ROMってろって言うのまで含めて2chの文化だが
それはあくまで背中を押すような一種の愛情表現であって
不愉快だからスレから出て行けというのとは違うけどな
今このスレに大事なのはもっと気軽に馬鹿な質問をしてもらうことで
そういうのを消すことじゃないだろう
そういう人にググれカスだの半年ROMってろって言うのまで含めて2chの文化だが
それはあくまで背中を押すような一種の愛情表現であって
不愉快だからスレから出て行けというのとは違うけどな
今このスレに大事なのはもっと気軽に馬鹿な質問をしてもらうことで
そういうのを消すことじゃないだろう
608デフォルトの名無しさん
2018/01/02(火) 23:09:26.66ID:BCempIdS つうかなんか悲しいよな
ここはJSを「自ら学ぶ人のための」質問スレッド
つまり質問者のためのスレで、回答者はその質問者を助けるためにいるわけなのにな
いつの間にか自分が嫌いな質問は許さん
自分が好きな回答ができない流れは許さんっていうのが増えたよな
質問者の数が減ったら大事にすべきなのに、むしろ立場が弱くなってきてるよな
ここはJSを「自ら学ぶ人のための」質問スレッド
つまり質問者のためのスレで、回答者はその質問者を助けるためにいるわけなのにな
いつの間にか自分が嫌いな質問は許さん
自分が好きな回答ができない流れは許さんっていうのが増えたよな
質問者の数が減ったら大事にすべきなのに、むしろ立場が弱くなってきてるよな
609デフォルトの名無しさん
2018/01/02(火) 23:18:25.90ID:tr5O7MN9 >>607,608
まあ君がどう思おうが君の勝手だが、
もし俺を追い出したいと思っているのなら、俺にアイデアを出してみてくれないか?
俺がそっちにかかりきりになれば、当然こっちは疎かになるし、win-winだろ。
2chのシステムでは、荒らしに居座られたら対策がない。
そして、今現在はそれ以前の、荒らしが荒らしと自覚できてないという状態だ。
日本語も通じないし、言うこともきかないし、さすがにどうにもならないよ。
韓国人死ね
まあ君がどう思おうが君の勝手だが、
もし俺を追い出したいと思っているのなら、俺にアイデアを出してみてくれないか?
俺がそっちにかかりきりになれば、当然こっちは疎かになるし、win-winだろ。
2chのシステムでは、荒らしに居座られたら対策がない。
そして、今現在はそれ以前の、荒らしが荒らしと自覚できてないという状態だ。
日本語も通じないし、言うこともきかないし、さすがにどうにもならないよ。
韓国人死ね
610デフォルトの名無しさん
2018/01/03(水) 00:19:54.04ID:1Yhs3Yxn611デフォルトの名無しさん
2018/01/03(水) 00:23:23.76ID:1TXR69Kg >>610
お花畑死ね
お花畑死ね
612デフォルトの名無しさん
2018/01/04(木) 20:46:48.25ID:iFtzCaCZ 【2chスレの一生】
日本人が良スレを作る
↓
良スレだからゴキブリ韓国人が集まってくる
↓
住み着いたゴキブリ韓国人が居場所を守るために主張し始める
↓
良スレを作った日本人達が見切りをつけて居なくなる
↓
残ったゴキブリ韓国人達がスレを乗っ取る
↓
ゴミスレなので誰も居なくなる
2chはこれを防ぐシステムを持ち合わせていない。
ここが致命的な弱点で、改善すべきだ。
俺は何とかして2chを
・韓国人の居る、現在の2ch
・韓国人の居ない、新しい2ch
にフォークしようとしている。
それで新2chの方が継続的に盛り上がるようなら、
・韓国人は殺すべき
という結論が承認/共有されることになる。
俺はこれを試そうとしている。
アイデア出しだけでも協力してくれれば助かる。
日本人が良スレを作る
↓
良スレだからゴキブリ韓国人が集まってくる
↓
住み着いたゴキブリ韓国人が居場所を守るために主張し始める
↓
良スレを作った日本人達が見切りをつけて居なくなる
↓
残ったゴキブリ韓国人達がスレを乗っ取る
↓
ゴミスレなので誰も居なくなる
2chはこれを防ぐシステムを持ち合わせていない。
ここが致命的な弱点で、改善すべきだ。
俺は何とかして2chを
・韓国人の居る、現在の2ch
・韓国人の居ない、新しい2ch
にフォークしようとしている。
それで新2chの方が継続的に盛り上がるようなら、
・韓国人は殺すべき
という結論が承認/共有されることになる。
俺はこれを試そうとしている。
アイデア出しだけでも協力してくれれば助かる。
613デフォルトの名無しさん
2018/01/05(金) 12:56:13.85ID:u+R3cpJk 例えば手続き的にwordカウントするときkeyを単語、valueをカウンタにするじゃん。
objectなら o['hoge'] += 1 みたいな足しこみやインクリできるけど、Map だと明示的にget して1足してsetするのがセオリーなの?
objectなら o['hoge'] += 1 みたいな足しこみやインクリできるけど、Map だと明示的にget して1足してsetするのがセオリーなの?
614デフォルトの名無しさん
2018/01/05(金) 13:05:35.59ID:tDnoSwNP o.get("hoge").value++; ってすればいいよ
615デフォルトの名無しさん
2018/01/05(金) 14:55:32.34ID:w3P38fZ2 なるほど、そうやるのか。
ありがとうございました。
ありがとうございました。
616デフォルトの名無しさん
2018/01/05(金) 15:04:04.06ID:tDnoSwNP まあこのvalueが何者であるかに
気づけるかどうかが問題なんだがなw
気づけるかどうかが問題なんだがなw
617デフォルトの名無しさん
2018/01/05(金) 15:04:08.28ID:dWX0Moq5618デフォルトの名無しさん
2018/01/08(月) 13:36:18.81ID:TtlW0DEg React代替のライブラリとしてhyperappがqiitaで話題ですけど、
1kbのライブラリがReact+reduxと代替になるってすごいですよね。
逆になんでReactって単なるUIライブラリなのにこんなにサイズがでかいんですかね?
Reactの優位点ってエコシステムとしてって以外に何があるんですかね?
1kbのライブラリがReact+reduxと代替になるってすごいですよね。
逆になんでReactって単なるUIライブラリなのにこんなにサイズがでかいんですかね?
Reactの優位点ってエコシステムとしてって以外に何があるんですかね?
619デフォルトの名無しさん
2018/01/08(月) 15:48:15.94ID:fUd4CoSB Reactはまんまエコシステムじゃん
ReactNativeだってあるしReactNativeWebだってあるくらいだし
ReactNativeだってあるしReactNativeWebだってあるくらいだし
620デフォルトの名無しさん
2018/01/09(火) 11:23:44.59ID:3WGrgmwx 代替にならないからに決まってるじゃん
1KBのライブラリなら読めばいいのに
1KBのライブラリなら読めばいいのに
621デフォルトの名無しさん
2018/01/09(火) 11:39:04.13ID:6pl2SrRj >>620
機能だけを観るとreact+redux+非同期ミドルウェア
が1kbのライブラリに置き換わるというのが凄く魅力的なんですけど。
逆にReactにしかできないことが見当たらなくて、じゃあhyperappでいいじゃん
って思っちゃったんですよね。
もちろんiOSとかAndroidで使いたいとなったらReactNativeがある点で優位なんですけど、、、、、いまのところchrome-extensionで使う予定なんで、reactから移行してもいいのかもと思い始めた次第です。
機能だけを観るとreact+redux+非同期ミドルウェア
が1kbのライブラリに置き換わるというのが凄く魅力的なんですけど。
逆にReactにしかできないことが見当たらなくて、じゃあhyperappでいいじゃん
って思っちゃったんですよね。
もちろんiOSとかAndroidで使いたいとなったらReactNativeがある点で優位なんですけど、、、、、いまのところchrome-extensionで使う予定なんで、reactから移行してもいいのかもと思い始めた次第です。
622デフォルトの名無しさん
2018/01/10(水) 11:01:01.36ID:AcbVN6ZK hyperappでいいじゃんと言うけど
それWebAPIも発展してきたしフレームワークもライブラリもそろそろ要らないよねってことだぞ
ただ非同期周りとかちょっとまだ手が届かない所があるよねって感じ
chrome-extensionとか小規模なものだとそれこそ何にも要らないと思うぞ
それWebAPIも発展してきたしフレームワークもライブラリもそろそろ要らないよねってことだぞ
ただ非同期周りとかちょっとまだ手が届かない所があるよねって感じ
chrome-extensionとか小規模なものだとそれこそ何にも要らないと思うぞ
623デフォルトの名無しさん
2018/01/11(木) 03:04:00.15ID:A2H3qaeb Node.jsで
const exec = require('child_process').exec;
みたいに
モジュール自体じゃなくてモジュールのメンバを変数に代入する書き方がありますが
こういう書き方のメリットは関数名などが短くなることの他にありますか?
どっちみちモジュールを全部読んでから一部をエクスポートしてるだけなので
メモリの節約にはならないですよね
const exec = require('child_process').exec;
みたいに
モジュール自体じゃなくてモジュールのメンバを変数に代入する書き方がありますが
こういう書き方のメリットは関数名などが短くなることの他にありますか?
どっちみちモジュールを全部読んでから一部をエクスポートしてるだけなので
メモリの節約にはならないですよね
624デフォルトの名無しさん
2018/01/11(木) 06:06:01.73ID:aMgNRUKX メモリの節約にはなるよ
参照のないオブジェクトはGCされるから
参照のないオブジェクトはGCされるから
625デフォルトの名無しさん
2018/01/11(木) 10:35:44.35ID:A2H3qaeb なるほど…
じゃあ使うものだけを読む方が望ましいですね
ありがとうございました
じゃあ使うものだけを読む方が望ましいですね
ありがとうございました
626デフォルトの名無しさん
2018/01/12(金) 00:07:56.61ID:H+rlZVu0 var str = "1\r\n2\r\n3\r\n\r\n4";
var arr = str.split(/\r\n/);
ブラウザでこのarr.lengthを取得すると当然5になります
ですが、WSHのJScriptでarr.lengthを取得すると4になります
何故か空行が削除されてしまうのです
これをマトモに動かすにはどうすればいいのでしょうか?
Windowsは10ですか、多分Windowsのバージョンは関係ないですよね
var arr = str.split(/\r\n/);
ブラウザでこのarr.lengthを取得すると当然5になります
ですが、WSHのJScriptでarr.lengthを取得すると4になります
何故か空行が削除されてしまうのです
これをマトモに動かすにはどうすればいいのでしょうか?
Windowsは10ですか、多分Windowsのバージョンは関係ないですよね
627デフォルトの名無しさん
2018/01/12(金) 00:33:35.90ID:H+rlZVu0 >>626の件ですが
正規表現で文字列を split すると、できた配列から空の要素が消える
http://aligach.net/diary/20060707.html
>文字列で split すると JScript でも空要素は消えない。
というのがありました
これはひどいバグですね・・
正規表現で文字列を split すると、できた配列から空の要素が消える
http://aligach.net/diary/20060707.html
>文字列で split すると JScript でも空要素は消えない。
というのがありました
これはひどいバグですね・・
628デフォルトの名無しさん
2018/01/12(金) 05:29:30.16ID:HxZ583lI f(){ g(){h()}}
でhだけが非同期関数の時hが呼び出されるのはfかgのどっちの後ですか?
現在実行中の関数のあとしか書いて無くて、fもgも実行しているのでどちらか
わかりませんでした。
でhだけが非同期関数の時hが呼び出されるのはfかgのどっちの後ですか?
現在実行中の関数のあとしか書いて無くて、fもgも実行しているのでどちらか
わかりませんでした。
629デフォルトの名無しさん
2018/01/12(金) 08:41:18.56ID:bX2X9CX8 その書き方じゃ何を表しているのか正確に分からんし
順番が知りたければ関数にalertでもconsole.logでも置けばいいだけじゃないか
順番が知りたければ関数にalertでもconsole.logでも置けばいいだけじゃないか
630デフォルトの名無しさん
2018/01/12(金) 09:12:36.76ID:0Nl59GCZ 「js 非同期 promise」で検索!
631デフォルトの名無しさん
2018/01/12(金) 09:32:36.57ID:H+rlZVu0 非同期関数をその中に書いたら同期関数にできる関数があれば
何も考えずに同期化出来ていいのではないでしょうか?
そういうのはありますか?
何も考えずに同期化出来ていいのではないでしょうか?
そういうのはありますか?
632デフォルトの名無しさん
2018/01/12(金) 13:15:59.75ID:7wn4t2Jc 同期「的」に書ける方法はあるよ
でも理由があって非同期になってるわけだから、
それが他の部分と必ずしも結合できるとは考えない方がいいし
あんまりこねくり回すとタイミングバグが起きたりもする
その辺きちんと整理できる能力が必要
取り敢えずPromiseとメソッドチェーンを理解してからasync-await
でも理由があって非同期になってるわけだから、
それが他の部分と必ずしも結合できるとは考えない方がいいし
あんまりこねくり回すとタイミングバグが起きたりもする
その辺きちんと整理できる能力が必要
取り敢えずPromiseとメソッドチェーンを理解してからasync-await
633デフォルトの名無しさん
2018/01/12(金) 20:07:58.33 electronでVisualStudioみたいなドッキングやフロートとかができるパネルレイアウトを実現するものはありますか?
634デフォルトの名無しさん
2018/01/12(金) 20:12:02.87 質問変えます
VSCodeと同じレイアウト(右のパネル、タブ)を実現するものはありますか?
VSCodeと同じレイアウト(右のパネル、タブ)を実現するものはありますか?
635デフォルトの名無しさん
2018/01/13(土) 00:02:40.02ID:/br76GKn 同期的で思い出したけど、JavaScript・・・じゃないな
ブラウザのDOMの仕様からalert, confirm, promptって廃止されないの?
だってこれら同期的に動くクソだもの
ブラウザのDOMの仕様からalert, confirm, promptって廃止されないの?
だってこれら同期的に動くクソだもの
636デフォルトの名無しさん
2018/01/13(土) 00:20:03.56ID:UQ6+XXz2 NW.jsはビルドしたファイルを実行すると
ソースディレクトリがテンポラリディレクトリに展開されてそこで実行され
元のexeファイルのあるカレントディレクトリを取得できないという問題があります
ポータビリティを担保するためにカレントディレクトリにデータを保存したいので、
これは望ましくありません
Electronではこういうことはないのでしょうか?
ソースディレクトリがテンポラリディレクトリに展開されてそこで実行され
元のexeファイルのあるカレントディレクトリを取得できないという問題があります
ポータビリティを担保するためにカレントディレクトリにデータを保存したいので、
これは望ましくありません
Electronではこういうことはないのでしょうか?
637デフォルトの名無しさん
2018/01/13(土) 04:50:51.10ID:xaNBQnI8638デフォルトの名無しさん
2018/01/13(土) 05:57:23.59ID:Hqj5QnSW639デフォルトの名無しさん
2018/01/13(土) 07:41:37.13ID:9rLeDqe4640デフォルトの名無しさん
2018/01/13(土) 07:53:38.29ID:9rLeDqe4 >>636
Electron アプリは、Node.js によって実行される
その際、package.json という設定ファイルに、
"main": "main.js"
とか書くと、そのファイルから起動される
この本を読む
Electronではじめるアプリ開発
~JavaScript/HTML/CSSでデスクトップアプリを作ろう
野口 将人・倉見 洋輔、2017
Electron アプリは、Node.js によって実行される
その際、package.json という設定ファイルに、
"main": "main.js"
とか書くと、そのファイルから起動される
この本を読む
Electronではじめるアプリ開発
~JavaScript/HTML/CSSでデスクトップアプリを作ろう
野口 将人・倉見 洋輔、2017
641デフォルトの名無しさん
2018/01/13(土) 08:44:03.82ID:aBZLjG9C642デフォルトの名無しさん
2018/01/13(土) 12:13:53.04ID:v/Is/Qmn 的外れと言う割に的外れでない回答がない件
それもそのはず的外れでないであろう回答をエスパーして
基本的で曖昧な疑問に答えるのは大変すぎるから
だから皆取り敢えずコンテキストが近くて
具体的で為になりそうな点に絞って回答してるというのに
それを的外れというのはそれこそ的外れ
それもそのはず的外れでないであろう回答をエスパーして
基本的で曖昧な疑問に答えるのは大変すぎるから
だから皆取り敢えずコンテキストが近くて
具体的で為になりそうな点に絞って回答してるというのに
それを的外れというのはそれこそ的外れ
643デフォルトの名無しさん
2018/01/13(土) 13:33:46.15ID:UQ6+XXz2 >>640
ありがとうございます
ただそのくらいは知ってます・・
NW.jsもnode.jsとwebkitから作られていて
両者が非常に良く似ていることからした質問です
ビルドされたバイナリの挙動は実際に使ってみないと分からないので
ありがとうございます
ただそのくらいは知ってます・・
NW.jsもnode.jsとwebkitから作られていて
両者が非常に良く似ていることからした質問です
ビルドされたバイナリの挙動は実際に使ってみないと分からないので
644デフォルトの名無しさん
2018/01/13(土) 13:39:59.76ID:aBZLjG9C >583 名前:デフォルトの名無しさん[sage] 投稿日:2017/12/31(日) 19:02:39.26 ID:B2mtcXzM
>ないです
「的外れでない回答」はこれだろ?
>ないです
「的外れでない回答」はこれだろ?
645デフォルトの名無しさん
2018/01/13(土) 15:26:08.02ID:xaNBQnI8 こりゃ一本取られた
確かに矢を放たなければ外れようも無いわな
うまい!
確かに矢を放たなければ外れようも無いわな
うまい!
646デフォルトの名無しさん
2018/01/13(土) 15:42:03.82ID:lfCPm8HF クッサ
647デフォルトの名無しさん
2018/01/14(日) 00:54:38.03ID:O8f654ld 質問です!
初めてjavascriptでWEBアプリを作ってるんですが、時間によって変化するデータを記録してブラウザに表示させるために
グローバル変数を使用しているのですが、そのデータが50種類近くあり、全てグローバル変数に保持させています。
ネットで調べると、グローバル汚染なる言葉があり、グローバル変数は極力使用するべきでないとありました。
でも、50種類近くのデータを保持し、各関数の中で計算させたりブラウザに数値を表示させるにはグローバル変数でしか無理なんじゃ無いかと思います。
初心者な質問ですがよろしくおねがいします!
初めてjavascriptでWEBアプリを作ってるんですが、時間によって変化するデータを記録してブラウザに表示させるために
グローバル変数を使用しているのですが、そのデータが50種類近くあり、全てグローバル変数に保持させています。
ネットで調べると、グローバル汚染なる言葉があり、グローバル変数は極力使用するべきでないとありました。
でも、50種類近くのデータを保持し、各関数の中で計算させたりブラウザに数値を表示させるにはグローバル変数でしか無理なんじゃ無いかと思います。
初心者な質問ですがよろしくおねがいします!
648デフォルトの名無しさん
2018/01/14(日) 01:11:56.05ID:ShEBZxSB まあ別に幾らでもやりようはあるが、
その分だとまずコードを今の1/5から1/10ぐらいに減らすべきだろうな
無駄なコードが多すぎるだろう
その分だとまずコードを今の1/5から1/10ぐらいに減らすべきだろうな
無駄なコードが多すぎるだろう
649デフォルトの名無しさん
2018/01/14(日) 03:20:01.37ID:V1AuijCV electronでデベロッパーツールにログを出力するのはどうすればいいのでしょうか?
console.logするとシェルのコンソールにログが出力されますが
これだとソース版の実行時にしかログが見られません
console.logするとシェルのコンソールにログが出力されますが
これだとソース版の実行時にしかログが見られません
650デフォルトの名無しさん
2018/01/14(日) 07:16:23.50 ソース版?
651デフォルトの名無しさん
2018/01/14(日) 09:01:40.77ID:V1AuijCV 何と言うのか知りませんがバイナリにビルドする前の状態です
652デフォルトの名無しさん
2018/01/14(日) 09:37:43.17ID:Ljf3EvZ6 >>649
サンプル通り作ってあるなら
mainWindow.loadURL(`file://${__dirname}/index.html`);
というような感じでindex.htmlをロードして表示していると思うけど
このindex.html内でconsole.logすればデベロッパー内でログを見れる
サンプル通り作ってあるなら
mainWindow.loadURL(`file://${__dirname}/index.html`);
というような感じでindex.htmlをロードして表示していると思うけど
このindex.html内でconsole.logすればデベロッパー内でログを見れる
653デフォルトの名無しさん
2018/01/14(日) 11:41:12.08ID:V1AuijCV654デフォルトの名無しさん
2018/01/14(日) 12:42:53.06ID:V1AuijCV >>636の件ですが
Electronの場合はビルドしたバイナリでも、
実行時のカレントディレクトリが正しく取得できました
まぁ当たり前の動作ではありますが・・。
NW.jsの方が古いプロダクトのようですが、
Electronに架橋するのがその歴史的意義で、既に使命を終えたんじゃないかと思います
Electronを触ったらもうNW.jsに戻ろうとは思えません
Electronの場合はビルドしたバイナリでも、
実行時のカレントディレクトリが正しく取得できました
まぁ当たり前の動作ではありますが・・。
NW.jsの方が古いプロダクトのようですが、
Electronに架橋するのがその歴史的意義で、既に使命を終えたんじゃないかと思います
Electronを触ったらもうNW.jsに戻ろうとは思えません
655デフォルトの名無しさん
2018/01/15(月) 16:39:11.95ID:oyJFiKwa エディタのVS Code, Atom が、Electron 製だろ
これらのエディタを使ってみれば、Electron で、何でも出来ることが良くわかる
これらのエディタを使ってみれば、Electron で、何でも出来ることが良くわかる
656デフォルトの名無しさん
2018/01/15(月) 23:04:54.06ID:A1ZxBlI8 まあバイナリファイルの読み書きさえできれば
なんでもできるのは当たり前なんだけどなw
なんでもできるのは当たり前なんだけどなw
657デフォルトの名無しさん
2018/01/17(水) 13:55:03.66ID:ZK8OrRcg titleを書き換えるブックマークレットを作っています
chrome開発者ツールのconsoleで
document.title = 'test';
とすると、何の問題もなく書き換わります
が、これを
javascript:document.title = 'test';
としてブックマークに登録してブックマークレットとして実行すると、
titleだけでなくdocumentの内容自体がtestという文字列に置き換わってしまいます
何が間違っているのでしょうか?
chrome開発者ツールのconsoleで
document.title = 'test';
とすると、何の問題もなく書き換わります
が、これを
javascript:document.title = 'test';
としてブックマークに登録してブックマークレットとして実行すると、
titleだけでなくdocumentの内容自体がtestという文字列に置き換わってしまいます
何が間違っているのでしょうか?
658デフォルトの名無しさん
2018/01/17(水) 14:30:25.51ID:om4BnoKr 最後にreturn;を加えるといいかも
659愛知人
2018/01/17(水) 14:32:13.86 resList.forEach(resNumber => {
$(`.resListPanel li.resItem[data-number="${resNumber}"]`).clone().appendTo(resListTree);
});
resListの要素数が70個だと2秒もかかるんだがどうする?
$(`.resListPanel li.resItem[data-number="${resNumber}"]`).clone().appendTo(resListTree);
});
resListの要素数が70個だと2秒もかかるんだがどうする?
660愛知人
2018/01/17(水) 14:41:23.85 const resItemList = resList.map(resNumber => {
return $(`.resListPanel li.resItem[data-number="${resNumber}"]`).clone();
});
これでもほぼ同じ
return $(`.resListPanel li.resItem[data-number="${resNumber}"]`).clone();
});
これでもほぼ同じ
661愛知人
2018/01/17(水) 14:44:03.32 resList.map(resNumber => {
return $(`.resListPanel li.resItem[data-number="${resNumber}"]`);
});
これでもほぼ同じ
return $(`.resListPanel li.resItem[data-number="${resNumber}"]`);
});
これでもほぼ同じ
662デフォルトの名無しさん
2018/01/17(水) 14:54:28.73ID:ZK8OrRcg663デフォルトの名無しさん
2018/01/17(水) 15:09:47.60ID:ZK8OrRcg ブックマークレットはaタグのhrefにjavascript:と書いた時と
同じ動作をするもののようです
ここに書いたコードは返り値の返却が求められていることから、
ある種の関数として実行されていると推測します
ですがブックマークレットの解説が書かれたサイトには、
名前空間を汚染しないように即時関数で全体を囲む方がいいと書いてあります
しかしブックマークレットがすでに関数になっているのですから
即時関数にしなくても汚染は防げるのではないかと思ったのですが
どうなのでしょうか?
同じ動作をするもののようです
ここに書いたコードは返り値の返却が求められていることから、
ある種の関数として実行されていると推測します
ですがブックマークレットの解説が書かれたサイトには、
名前空間を汚染しないように即時関数で全体を囲む方がいいと書いてあります
しかしブックマークレットがすでに関数になっているのですから
即時関数にしなくても汚染は防げるのではないかと思ったのですが
どうなのでしょうか?
664デフォルトの名無しさん
2018/01/17(水) 15:28:35.60ID:57JGUXKI 逆に聞くけどなんですでに関数になってると思い込んだの?
665デフォルトの名無しさん
2018/01/17(水) 16:14:37.66ID:ZK8OrRcg666デフォルトの名無しさん
2018/01/17(水) 16:42:16.33ID:ZK8OrRcg <a href="javascript:var a = 1;return;">test</a>
と書いてみたら
SyntaxError: Illegal return statement
と出ました
ブックマークレットはaタグとは似て非なるもののようですね
と書いてみたら
SyntaxError: Illegal return statement
と出ました
ブックマークレットはaタグとは似て非なるもののようですね
667デフォルトの名無しさん
2018/01/17(水) 16:50:55.42ID:ZK8OrRcg javascript:var a=1;return;
というブックマークレットと
javascript:alert(a);
というブックマークレットを作り、
最初のブックマークレットを実行してから次のブックマークレットを実行すると
aはundefinedだと言われました
やはりブックマークレットは関数として実行されているようです
aタグの場合は、あるタグで宣言代入した変数を
他のタグのコードから参照できました
というブックマークレットと
javascript:alert(a);
というブックマークレットを作り、
最初のブックマークレットを実行してから次のブックマークレットを実行すると
aはundefinedだと言われました
やはりブックマークレットは関数として実行されているようです
aタグの場合は、あるタグで宣言代入した変数を
他のタグのコードから参照できました
668デフォルトの名無しさん
2018/01/17(水) 16:51:48.01ID:57JGUXKI >>665-666
なぜブックマークレットでエラーが出ないと思いこんでるの?
なぜブックマークレットでエラーが出ないと思いこんでるの?
669デフォルトの名無しさん
2018/01/17(水) 17:01:43.92ID:ZK8OrRcg670デフォルトの名無しさん
2018/01/17(水) 19:39:53.11ID:/Emd22Mw Chrome/Firefox/Edgeで試してみたがエラー出るんだが
671デフォルトの名無しさん
2018/01/17(水) 21:31:52.74ID:/j2ucEK2 chromeで試しましたが出ませんよ
ブラウザによって実装が異なる可能性もあるので他のブラウザは知りませんが
ブックマークレットという性格上、自分が使うブラウザで問題なければ別にいいです
ブラウザによって実装が異なる可能性もあるので他のブラウザは知りませんが
ブックマークレットという性格上、自分が使うブラウザで問題なければ別にいいです
672デフォルトの名無しさん
2018/01/17(水) 21:32:24.29ID:HnamRG99 JavaScriptは最終的にビルドしてWebAssemblyに
するのが常識になっていくんじゃないかなーって
思っているんだけどどうですか?
するのが常識になっていくんじゃないかなーって
思っているんだけどどうですか?
673デフォルトの名無しさん
2018/01/18(木) 07:04:32.02ID:iW6wdbys >>672
それは将来の素のJS≒TSをWASMにコンパイルしてリリースするのが常識になるかってこと?
既にトランスパイラやバンドラが使われているように、幾らか規模のある企業案件では良く使われることになると思うよ
あとはブラウザの拡張機能のようなパッケージ化されるものではそれが基本になると思う
だけど常識と言えるかどうかは分かんないね
2030年ごろにJSに実質的な寿命が来たとして、
その時に多くの言語から安全簡潔にWASM化する環境が整っていて、
ブラウザベンダー達が新しい言語を実装しないことを決定すればそうなるんじゃない?
それは将来の素のJS≒TSをWASMにコンパイルしてリリースするのが常識になるかってこと?
既にトランスパイラやバンドラが使われているように、幾らか規模のある企業案件では良く使われることになると思うよ
あとはブラウザの拡張機能のようなパッケージ化されるものではそれが基本になると思う
だけど常識と言えるかどうかは分かんないね
2030年ごろにJSに実質的な寿命が来たとして、
その時に多くの言語から安全簡潔にWASM化する環境が整っていて、
ブラウザベンダー達が新しい言語を実装しないことを決定すればそうなるんじゃない?
674デフォルトの名無しさん
2018/01/18(木) 15:48:38.59ID:kHRH5E2e electronてメインプロセスとレンダラプロセスのJSはディレクトリを分けた方がいいと思うのですが
どうディレクトリを分けるのがスタンダードなんでしょうか?
どうディレクトリを分けるのがスタンダードなんでしょうか?
675デフォルトの名無しさん
2018/01/18(木) 16:44:53.98ID:Ok9ZLYff >>674
サンプルはいくらでもあるんだからパクれば良いのよ
サンプルはいくらでもあるんだからパクれば良いのよ
676デフォルトの名無しさん
2018/01/18(木) 21:59:02.60ID:CTvnuGUK >>673
> その時に多くの言語から安全簡潔にWASM化する環境が整っていて、
その多くの言語からWASM化するってのはビルドですよね?
聞きたかったのはJavaScriptが生き残るかどうかじゃなくて
ビルドツールなしっていうのは考えられない世界になるのかなーって話です。
> その時に多くの言語から安全簡潔にWASM化する環境が整っていて、
その多くの言語からWASM化するってのはビルドですよね?
聞きたかったのはJavaScriptが生き残るかどうかじゃなくて
ビルドツールなしっていうのは考えられない世界になるのかなーって話です。
677デフォルトの名無しさん
2018/01/18(木) 23:08:03.44ID:4fewSOLi678デフォルトの名無しさん
2018/01/19(金) 08:45:48.44ID:679xh41H WASMが普及するとブラックボックス化して、Webへのアクセスの危険度が上がる気がする。メルトダウンとかが話題なくらいなんだから慎重に行かないとね。
とりあえずWASMはDOMに直接アクセスできないとか色々制限があるから
とりあえずWASMはDOMに直接アクセスできないとか色々制限があるから
679デフォルトの名無しさん
2018/01/19(金) 16:29:34.99ID:fVyCmoDl680愛知人
2018/01/19(金) 19:04:39.76ID:QV4koCPF 評価してください。
https://ideone.com/SxLQUO
https://ideone.com/SxLQUO
681デフォルトの名無しさん
2018/01/19(金) 19:52:16.50ID:IX0btOHh >>678
メルトダウンはCPUのバグなんだからそれを引き合いに出すのは無茶だと思う
ただタイミングアタックって言うのは事前の想定が難しい脆弱性攻略法だからね
例えばサーバでパスワードやハッシュが正しいかチェックする際
正解の文字列と==で比較するとそれ即ち脆弱性になる
なぜなら==は大抵の場合文字列の頭からの1文字1文字合っているか確認していって、
間違っている場合そこで打ち切るから、サーバのレスポンス時間の統計を取れば
現実的な試行回数で正解文字列が頭から推測できていってしまう
SQLインジェクションとかよく騒がれるので、外から来たデータの扱いは
個人運営のサイトでも必ず相当に気にすると思うが、
内の状態を外に微塵も漏らさないための気配りができている場合は少ない
今回のCPU騒動の対策としてperformance.now()の精度が100nsに落とされたりしたが
過去にあったJSで外部画像やiframeにフィルタを書ける際の処理の重さから内容を推測したりとか
数msの精度があれば十分に成功するものもある
Web標準規格者、ブラウザ開発者のような大勢の優秀な技術者でも度々見落としてしまうのが
この手のバグなんだから、ある意味で仕方がない
メルトダウンはCPUのバグなんだからそれを引き合いに出すのは無茶だと思う
ただタイミングアタックって言うのは事前の想定が難しい脆弱性攻略法だからね
例えばサーバでパスワードやハッシュが正しいかチェックする際
正解の文字列と==で比較するとそれ即ち脆弱性になる
なぜなら==は大抵の場合文字列の頭からの1文字1文字合っているか確認していって、
間違っている場合そこで打ち切るから、サーバのレスポンス時間の統計を取れば
現実的な試行回数で正解文字列が頭から推測できていってしまう
SQLインジェクションとかよく騒がれるので、外から来たデータの扱いは
個人運営のサイトでも必ず相当に気にすると思うが、
内の状態を外に微塵も漏らさないための気配りができている場合は少ない
今回のCPU騒動の対策としてperformance.now()の精度が100nsに落とされたりしたが
過去にあったJSで外部画像やiframeにフィルタを書ける際の処理の重さから内容を推測したりとか
数msの精度があれば十分に成功するものもある
Web標準規格者、ブラウザ開発者のような大勢の優秀な技術者でも度々見落としてしまうのが
この手のバグなんだから、ある意味で仕方がない
682デフォルトの名無しさん
2018/01/19(金) 21:15:34.22ID:acEC53C4 >>678
> WASMが普及するとブラックボックス化して、Webへのアクセスの危険度が上がる気がする。
スマホアプリと同じ状態になるだけだよ
危険度は今とまったく変わらないか、
ブラウザのセキュリティ内でしか動かないから
スマホアプリよりも安全
> WASMが普及するとブラックボックス化して、Webへのアクセスの危険度が上がる気がする。
スマホアプリと同じ状態になるだけだよ
危険度は今とまったく変わらないか、
ブラウザのセキュリティ内でしか動かないから
スマホアプリよりも安全
683デフォルトの名無しさん
2018/01/19(金) 21:17:41.12ID:acEC53C4 WASMはJavaScriptでできることしかできないから、
その意味でも安全といえる。
ソースコードが読みづらいってだけ
JavaScriptで難読化するのと変わらない
どうせ難読化されて無くても殆どの場合JavaScriptのコードを
なんて見ないんだから関係ない
よってWASMで危険になんかならない
その意味でも安全といえる。
ソースコードが読みづらいってだけ
JavaScriptで難読化するのと変わらない
どうせ難読化されて無くても殆どの場合JavaScriptのコードを
なんて見ないんだから関係ない
よってWASMで危険になんかならない
684デフォルトの名無しさん
2018/01/19(金) 21:47:23.03ID:IX0btOHh いや、JSのASTのバイナリのようなものというのはスタートラインであって
将来的には変わっていくと思うよ
現時点でも例えばSIMD APIを使ってSIMD命令を明示的に記述できるけど
もしここ関連でバグがあればより危険ってことになるからね
将来的には変わっていくと思うよ
現時点でも例えばSIMD APIを使ってSIMD命令を明示的に記述できるけど
もしここ関連でバグがあればより危険ってことになるからね
685デフォルトの名無しさん
2018/01/19(金) 22:01:13.91ID:acEC53C4 SIMD APIってJavaScriptでできることじゃん。やっぱりw
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/SIMD
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/SIMD
686デフォルトの名無しさん
2018/01/19(金) 23:04:17.50ID:IX0btOHh バカタレ
なんで俺がわざわざこれを選んで挙げたか少しは考えることもできないのか?
JavaScriptでもできることになる予定だったけど撤廃される流れになってるだろ
現にV8はサポートしないことを決めて削除した
https://bugs.chromium.org/p/v8/issues/detail?id=6020&desc=2#c3
そのくらいの時系列知っとけ
なんで俺がわざわざこれを選んで挙げたか少しは考えることもできないのか?
JavaScriptでもできることになる予定だったけど撤廃される流れになってるだろ
現にV8はサポートしないことを決めて削除した
https://bugs.chromium.org/p/v8/issues/detail?id=6020&desc=2#c3
そのくらいの時系列知っとけ
687デフォルトの名無しさん
2018/01/19(金) 23:10:30.90ID:IX0btOHh つかよく見たらそのページにも廃止されたって書いてあるじゃん
688デフォルトの名無しさん
2018/01/19(金) 23:18:11.42ID:acEC53C4 >>686
そこに撤廃されるなんて書いてないじゃんw
そこに撤廃されるなんて書いてないじゃんw
689デフォルトの名無しさん
2018/01/20(土) 00:23:54.23ID:IW3xR9PE690愛知人
2018/01/20(土) 00:25:29.74ID:sgAjbMHf 廃止された
691デフォルトの名無しさん
2018/01/20(土) 01:26:28.81ID:yU/e6vXO >>682
スマホアプリは一応アプリストアで管理されてるけどwebアプリは無理でしょ。
スマホアプリは一応アプリストアで管理されてるけどwebアプリは無理でしょ。
692デフォルトの名無しさん
2018/01/20(土) 02:09:47.09ID:87fvh5f6 検索って言う超巨大なアプリストアがあるんだけど知ってる?
PWA云々ってのもこの流れの中の一つ
PWA云々ってのもこの流れの中の一つ
693デフォルトの名無しさん
2018/01/20(土) 02:32:41.46ID:/fOBA6h7694デフォルトの名無しさん
2018/01/20(土) 10:26:21.47ID:L3x0kWif どれだけアプリストアでセキュリティチェックされようと
超低レベルなCPUにバグがあっちゃお終いだし、
もしくは人がチェックするのも無理だから
超高レベルな悪意も防ぎようがない
超低レベルなCPUにバグがあっちゃお終いだし、
もしくは人がチェックするのも無理だから
超高レベルな悪意も防ぎようがない
695デフォルトの名無しさん
2018/01/21(日) 01:14:29.51ID:NRBAbRyX JSからも攻撃可能なメモリの同じ部分への超連続書き込みで
隣接セルを書き換えるって言うのも根本的な修正策は無いしね
隣接セルを書き換えるって言うのも根本的な修正策は無いしね
696デフォルトの名無しさん
2018/01/21(日) 11:52:06.76ID:BpnGcMgt ElectronでネイティブのNodeモジュールを使う場合
リビルドが必要になりますが
このリビルドしたモジュールはアーキテクチャが同じなら
他のマシンでも使えるのでしょうか?
リビルドが必要になりますが
このリビルドしたモジュールはアーキテクチャが同じなら
他のマシンでも使えるのでしょうか?
697デフォルトの名無しさん
2018/01/21(日) 21:54:46.27ID:Ycn/1JW2 各OS で、コンパイル済みバイナリは異なるから、バイナリで持ち運べない。
ソースコードで持ち運んで、各OSでビルドする
Linux では、ディストリビューション間でも、バイナリが異なるかも知れない
ソースコードで持ち運んで、各OSでビルドする
Linux では、ディストリビューション間でも、バイナリが異なるかも知れない
698デフォルトの名無しさん
2018/01/21(日) 22:08:15.10ID:SRhvhCOq ただし例外もあって例えばUbuntuでコンパイルしたバイナリは
Windows上のWSL(Ubuntu)で動く
WSLがUbuntuでビルドしたバイナリを動く仕組みを提供しているからだ
Windows上のWSL(Ubuntu)で動く
WSLがUbuntuでビルドしたバイナリを動く仕組みを提供しているからだ
699デフォルトの名無しさん
2018/01/21(日) 22:29:06.24ID:bZyUZ2Tg OSが違う時に走らないのは仕方ないですが
OSとアーキテクチャが同じなら、普通の実行ファイル同様、他のマシンでも走りますよね
ありがとうございました
OSとアーキテクチャが同じなら、普通の実行ファイル同様、他のマシンでも走りますよね
ありがとうございました
700デフォルトの名無しさん
2018/01/21(日) 22:54:53.47ID:NRBAbRyX ネイティブモジュールは他の実行ファイルとは全く違う
V8のバージョンが変わると容易に壊れる
V8のバージョンが変わると容易に壊れる
701デフォルトの名無しさん
2018/01/22(月) 00:51:54.11ID:Q2QTYk20 実行ファイルというのはモジュールのことではなく、
バイナリビルドしたアプリのことでした
ネイティブモジュールのリビルドが必要なのはV8のバージョンアップなどとの擦り合わせなのですね
ありがとうございました
バイナリビルドしたアプリのことでした
ネイティブモジュールのリビルドが必要なのはV8のバージョンアップなどとの擦り合わせなのですね
ありがとうございました
702デフォルトの名無しさん
2018/01/22(月) 21:32:51.06ID:DF13VOU4 Single Page Applicationのデザインは
他のウェブサイトとは要件が少し違うと思います
ウェブページというよりもアプリケーションそのものなので。
SPAのデザインに関して参考になる本とかサイトとかありますか?
他のウェブサイトとは要件が少し違うと思います
ウェブページというよりもアプリケーションそのものなので。
SPAのデザインに関して参考になる本とかサイトとかありますか?
703デフォルトの名無しさん
2018/01/22(月) 22:58:59.23ID:pYe1Cwj7 ブラウザのhistory 関連とか、
戻るボタンには、どう対処するのかとか
戻るボタンには、どう対処するのかとか
704デフォルトの名無しさん
2018/01/24(水) 02:51:55.33ID:jTLtMl0d SPAって主にはただの普通のWebサイトにPjax導入した物を言うと思うぞ
それ以上の専用の設計がされているものはWebアプリって言う
それ以上の専用の設計がされているものはWebアプリって言う
705デフォルトの名無しさん
2018/01/25(木) 00:44:44.26ID:dhevK8dt electronで、現在ソースで実行されているのかバイナリで実行されているかを
コードの中で判断するにはどうすればいいのでしょうか?
ソースでの実行時のみにデベロッパーツールを開くようにしたいです
コードの中で判断するにはどうすればいいのでしょうか?
ソースでの実行時のみにデベロッパーツールを開くようにしたいです
706デフォルトの名無しさん
2018/01/25(木) 02:17:02.57ID:oIA0WROS AngularとReactどっちがいい?
707デフォルトの名無しさん
2018/01/25(木) 02:24:41.78ID:viLdLLlb708デフォルトの名無しさん
2018/01/25(木) 08:18:11.20ID:ix7/3m0P709705
2018/01/25(木) 09:59:15.16ID:ix7/3m0P __dirname+'/実行ファイル'
の有無を調べたのですがうまく動きませんでした
どうもビルドとは言っても実行ファイルの中にJSが組み込まれているわけではなく
resources/app配下のJSを実行しているようです
それなら上の上の上のディレクトリの実行ファイルの有無を調べればいいと思ったのですが
それも何故かうまくいかず。
(書き方が悪かっただけかもしれません。未検証)
他の方法はないかと探して
path.basename(app.getPath('exe')) == 'electron.exe'
なら開発環境と判別するという方法にたどり着きました
もっといい方法もあるのかもしれませんが
の有無を調べたのですがうまく動きませんでした
どうもビルドとは言っても実行ファイルの中にJSが組み込まれているわけではなく
resources/app配下のJSを実行しているようです
それなら上の上の上のディレクトリの実行ファイルの有無を調べればいいと思ったのですが
それも何故かうまくいかず。
(書き方が悪かっただけかもしれません。未検証)
他の方法はないかと探して
path.basename(app.getPath('exe')) == 'electron.exe'
なら開発環境と判別するという方法にたどり着きました
もっといい方法もあるのかもしれませんが
710デフォルトの名無しさん
2018/01/25(木) 21:01:11.78ID:swiRhF/5 Railsアプリケーションには、production、development、testの3種類の環境があるけど、
Electron には、そういう環境変数は無いの?
Electron には、そういう環境変数は無いの?
711デフォルトの名無しさん
2018/01/26(金) 00:11:29.64ID:blIs49uE ドキュメントのappやprocessやEnvironment Variablesをざっと見ましたが
それっぽいのは見当たりませんでした
ビルドと言ってもelectron.exe相当の実行ファイルの名前や属性が変わるくらいなので
本質的な違いはないという思想なのかもしれません
それっぽいのは見当たりませんでした
ビルドと言ってもelectron.exe相当の実行ファイルの名前や属性が変わるくらいなので
本質的な違いはないという思想なのかもしれません
712デフォルトの名無しさん
2018/01/26(金) 11:30:01.98ID:1vUlDhuw 初心者です。お願いします。
node.jsで以下のコードを実行したら、
TypeError: "callback" argument must be a functionというエラーが出ました。
var webclient = require("request");
function test(){
webclient.post({
url: "https://mevius.5ch.net/tech/subback.html"},
function (error, response, body){
console.log(body);
});
};
setInterval("test()",2000);
test()単体では動くのですが、定期的に実行するにはどうすればいいか教えてください。
node.jsで以下のコードを実行したら、
TypeError: "callback" argument must be a functionというエラーが出ました。
var webclient = require("request");
function test(){
webclient.post({
url: "https://mevius.5ch.net/tech/subback.html"},
function (error, response, body){
console.log(body);
});
};
setInterval("test()",2000);
test()単体では動くのですが、定期的に実行するにはどうすればいいか教えてください。
713愛知人
2018/01/26(金) 11:34:15.05 "test()"→test
714712
2018/01/26(金) 11:39:58.87ID:1vUlDhuw ありがとうございますできました!
JS触って非同期処理?とか初めての概念が出てきてそっちが原因だとずっと勘違いしてました…
JS触って非同期処理?とか初めての概念が出てきてそっちが原因だとずっと勘違いしてました…
715デフォルトの名無しさん
2018/01/26(金) 13:01:20.76ID:+bzGTkBR エラーをよく読むこと
「"callback"引数は関数でなければなりません」
「"callback"引数は関数でなければなりません」
716デフォルトの名無しさん
2018/01/26(金) 13:22:15.41ID:YGk40oMZ それで分かるレベルならこんなとこに質問に来ないと思うが…
「なるほど、文字列だからいけなかったんだね!
setInterval(test(),2000);
これでよし!」
こうなるのがオチ。>>713の態度が正解だと思う。
「なるほど、文字列だからいけなかったんだね!
setInterval(test(),2000);
これでよし!」
こうなるのがオチ。>>713の態度が正解だと思う。
717デフォルトの名無しさん
2018/01/26(金) 21:47:24.69ID:lWqampzR test() の( )は、関数呼び出し演算子
test は、関数オブジェクト
test は、関数オブジェクト
718デフォルトの名無しさん
2018/01/28(日) 03:49:02.94ID:4n9pDwZC719デフォルトの名無しさん
2018/01/28(日) 10:48:20.37ID:Wu8LfGNM function f(){
return new Promise(resolve=>resolve (f());
}
なぜこの関数をthenすると無限ループになるのか教えてください。
fが評価されるのは一回にしかおもえないのですが教えてください。
return new Promise(resolve=>resolve (f());
}
なぜこの関数をthenすると無限ループになるのか教えてください。
fが評価されるのは一回にしかおもえないのですが教えてください。
720デフォルトの名無しさん
2018/01/28(日) 11:05:22.90ID:i85SWwCT721デフォルトの名無しさん
2018/01/28(日) 11:36:08.21ID:Wu8LfGNM thenしたときじゃなくてnewしたときにプロミスの中身は実行されるということですか?
722デフォルトの名無しさん
2018/01/28(日) 11:41:05.63ID:Wu8LfGNM >>721
そうみたいですね。勘違いしてました。
そうみたいですね。勘違いしてました。
723デフォルトの名無しさん
2018/01/28(日) 11:41:56.05ID:IPHcqH8X >>719
function f(){
return new Promise(resolve=>resolve (f());
}
↓
function f(){
let p = new Promise(resolve => {
return resolve (f());
});
return p;
}
↓
function f(){
let p = new Promise(resolve => {
console.log(1);
});
console.log(2);
}
f();
↓出力結果
1
2
つまり、f関数が戻るより前 = p が得られるより前にnew Promiseに渡した関数が
実行されるから。引数の関数は即時関数のようにすぐに実行されるんだよ。
その中でfを呼び出しているから再帰になる
function f(){
return new Promise(resolve=>resolve (f());
}
↓
function f(){
let p = new Promise(resolve => {
return resolve (f());
});
return p;
}
↓
function f(){
let p = new Promise(resolve => {
console.log(1);
});
console.log(2);
}
f();
↓出力結果
1
2
つまり、f関数が戻るより前 = p が得られるより前にnew Promiseに渡した関数が
実行されるから。引数の関数は即時関数のようにすぐに実行されるんだよ。
その中でfを呼び出しているから再帰になる
724デフォルトの名無しさん
2018/01/28(日) 12:08:11.95ID:Wu8LfGNM 解決策思いついたので発表させてください。
function f(){
return ()=>new Promise(resolve=>resolve(f()));
}
thenのとき関数に括弧をもう一つ付けます。
function f(){
return ()=>new Promise(resolve=>resolve(f()));
}
thenのとき関数に括弧をもう一つ付けます。
725デフォルトの名無しさん
2018/01/28(日) 12:30:57.25ID:wTu9papE jsbinみたいなプレイグラウンドでローカルで実行できるものはないかと思ったのですが
jsbinはNode.jsで動いていてまさにローカルで実行できると知りました
ですが
https://github.com/jsbin/jsbin/blob/master/docs/running-your-own-jsbin.md
ここにある通りにnpm install -g jsbinとやっても警告とかいろいろ出てエラーになります
いろいろなパッケージの今のバージョンとは合わないっぽい感じです
jsbinをローカルで動かすための方法をまとめたサイトとかないでしょうか?
あるいは、今のNodeの環境ですんなりローカルで使えるプレイグラウンドはないでしょうか?
jsbinはNode.jsで動いていてまさにローカルで実行できると知りました
ですが
https://github.com/jsbin/jsbin/blob/master/docs/running-your-own-jsbin.md
ここにある通りにnpm install -g jsbinとやっても警告とかいろいろ出てエラーになります
いろいろなパッケージの今のバージョンとは合わないっぽい感じです
jsbinをローカルで動かすための方法をまとめたサイトとかないでしょうか?
あるいは、今のNodeの環境ですんなりローカルで使えるプレイグラウンドはないでしょうか?
726デフォルトの名無しさん
2018/01/28(日) 14:09:08.13ID:DwGHyqdD pythonインストールするとjupyter notebook入るからjsでも使ってるわ。
727デフォルトの名無しさん
2018/01/29(月) 16:38:42.59ID:AA0oVADy EventEmitterは
onメソッドが呼ばれる前にemitされたら(現実的にはなかなかないでしょうが)
onメソッドが呼ばれたタイミングでコールバックが呼ばれるのでしょうか?
onメソッドが呼ばれる前にemitされたら(現実的にはなかなかないでしょうが)
onメソッドが呼ばれたタイミングでコールバックが呼ばれるのでしょうか?
728デフォルトの名無しさん
2018/01/29(月) 18:56:51.98ID:u565O0DO ブラウザのEventは同イベントループ中なら順序は関係ないが
NodeのEventEmitterはそれはできない
NodeのEventEmitterはそれはできない
729デフォルトの名無しさん
2018/01/29(月) 20:06:02.96ID:AA0oVADy そうなんですか
まぁまずあり得ないので、それでも問題ないという判断なのでしょうね
ありがとうございました
まぁまずあり得ないので、それでも問題ないという判断なのでしょうね
ありがとうございました
730デフォルトの名無しさん
2018/01/30(火) 03:21:45.76ID:8qCjhhbY イベントはイベントループのスタックに登録されるといった概念上自然なのはブラウザの方
Nodeの方はemitされるとイベントループを経由せずに直接関数を呼んでるだけの簡単な実装
この違いはPromiseの挙動に慣れてたりすると複雑なシーンやObservable的なライブラリでバグの元になるかもしれない
Nodeの方はemitされるとイベントループを経由せずに直接関数を呼んでるだけの簡単な実装
この違いはPromiseの挙動に慣れてたりすると複雑なシーンやObservable的なライブラリでバグの元になるかもしれない
731デフォルトの名無しさん
2018/01/30(火) 04:36:39.97ID:n415njgH なにいってんだ?ブラウザとかイベントループとかそういうレベルの話じゃねーよ
基本的な設計を考えてみろ
イベントを受信する側は一体いくつ存在すると思ってる?
イベントを送信する側一つに対して、イベントを受信する側は複数存在するだろ
ブラウザで言えば、buttonのclickに対してaddEventListerで
イベントハンドラを複数結びつけることができる。
> onメソッドが呼ばれる前にemitされたら(現実的にはなかなかないでしょうが)
> onメソッドが呼ばれたタイミングでコールバックが呼ばれる
を実現するにはどうするか考えてみろ。
あとからイベントハンドラが設定される可能性を考えるということは
イベントハンドラが設定されていたとしても、全ての発生したイベントの情報を
ずーっと保持し続ければいけないということだ。
だってそうだろ? clickのイベントハンドラが1つ有ったとしても、もしかしたら
将来2つめのイベントハンドラが設定されるかもしれないんだから。
そんなメモリの無駄な使い方なんかやりません。
例えばWindowのloadイベントとかに限れば一回発動したら二回目は発動しないから、
onメソッドが呼ばれたタイミングでコールバック発動しても良いかもしれないが、
そういうのは特定のイベント特有の話だ。
特定のイベントに限って、onメソッドが呼ばれたタイミングでコールバック発動するための
サポート機能を持たせるのはありかもしれんが、少なくとも基本的な機能として
onメソッドが呼ばれる前に発生したイベントを保持するなんてことはまずしない
それはブラウザとかNodeとか関係ない一般的な設計としてだ
基本的な設計を考えてみろ
イベントを受信する側は一体いくつ存在すると思ってる?
イベントを送信する側一つに対して、イベントを受信する側は複数存在するだろ
ブラウザで言えば、buttonのclickに対してaddEventListerで
イベントハンドラを複数結びつけることができる。
> onメソッドが呼ばれる前にemitされたら(現実的にはなかなかないでしょうが)
> onメソッドが呼ばれたタイミングでコールバックが呼ばれる
を実現するにはどうするか考えてみろ。
あとからイベントハンドラが設定される可能性を考えるということは
イベントハンドラが設定されていたとしても、全ての発生したイベントの情報を
ずーっと保持し続ければいけないということだ。
だってそうだろ? clickのイベントハンドラが1つ有ったとしても、もしかしたら
将来2つめのイベントハンドラが設定されるかもしれないんだから。
そんなメモリの無駄な使い方なんかやりません。
例えばWindowのloadイベントとかに限れば一回発動したら二回目は発動しないから、
onメソッドが呼ばれたタイミングでコールバック発動しても良いかもしれないが、
そういうのは特定のイベント特有の話だ。
特定のイベントに限って、onメソッドが呼ばれたタイミングでコールバック発動するための
サポート機能を持たせるのはありかもしれんが、少なくとも基本的な機能として
onメソッドが呼ばれる前に発生したイベントを保持するなんてことはまずしない
それはブラウザとかNodeとか関係ない一般的な設計としてだ
732デフォルトの名無しさん
2018/01/30(火) 08:56:01.83ID:5Yx/uuQb emitがWindowsのSendMessageのような動作だったら便利だったのに、とは思う。
733デフォルトの名無しさん
2018/01/30(火) 10:33:59.80ID:FpOWlTjM >全ての発生したイベントの情報をずーっと保持し続ければいけない
たしかにmousemoveなどを考えたら恐ろしいことになりますね
Node書くならEventEmitterについて知っとくべし
https://qiita.com/yuku_t/items/d69d3a2c7dafa7d04e87
疑問のきっかけはこのページを読んだからなのですが、
非同期関数の中でEventEmitterオブジェクトを生成し、
非同期処理完了後にemitを呼ぶようにしてから、EventEmitterを返却。
EventEmitterを受け取った呼び出し元は、それにonメソッドを発行するという流れですが
このように書いた非同期処理はどんなに処理が軽いものであっても
onよりも先に終わることはないと、JavaScriptのメカニズム的に保証されている、
と考えていいのでしょうか?
たしかにmousemoveなどを考えたら恐ろしいことになりますね
Node書くならEventEmitterについて知っとくべし
https://qiita.com/yuku_t/items/d69d3a2c7dafa7d04e87
疑問のきっかけはこのページを読んだからなのですが、
非同期関数の中でEventEmitterオブジェクトを生成し、
非同期処理完了後にemitを呼ぶようにしてから、EventEmitterを返却。
EventEmitterを受け取った呼び出し元は、それにonメソッドを発行するという流れですが
このように書いた非同期処理はどんなに処理が軽いものであっても
onよりも先に終わることはないと、JavaScriptのメカニズム的に保証されている、
と考えていいのでしょうか?
734デフォルトの名無しさん
2018/01/30(火) 11:22:22.63ID:FpOWlTjM setTimeoutやsetIntervalの処理はイベントキューに登録される。
イベントキューから取り出されるのは、メインスレッドの処理が終わった時。
つまり何らかの処理の最中にイベントが実行されることはない。
ということのようですね
関数から抜けたタイミングとかにもイベントが発生し得るのではないかと
漠然と思っていたのですが、そうではなくて、
すっかり処理が終わった時にのみイベントキューが消化される
なのでEventEmitterも確実に機能することが保証されているのですね
ありがとうございました
イベントキューから取り出されるのは、メインスレッドの処理が終わった時。
つまり何らかの処理の最中にイベントが実行されることはない。
ということのようですね
関数から抜けたタイミングとかにもイベントが発生し得るのではないかと
漠然と思っていたのですが、そうではなくて、
すっかり処理が終わった時にのみイベントキューが消化される
なのでEventEmitterも確実に機能することが保証されているのですね
ありがとうございました
735デフォルトの名無しさん
2018/01/30(火) 12:02:02.30ID:8qCjhhbY >>731
お前こそ何言ってるんだ?
ここまで話されていることは全ての発生したイベントの情報をずーっと保持し続ければいけないと言うことにはならない
ただイベントの発火を同期でなく必ず次のイベントループ時に持ち越すというだけで
その同期中でのリスナと発火の順序は問わないということ
そしてこれは重要
基本的に遅延処理だが値を指定した際にキャッシュやエラーですぐコールバックが呼べる状況もある
そういうときにEventレイヤーで非同期を保証することでハンドラの設定順序による無用なバグを防ぐことができる
お前こそ何言ってるんだ?
ここまで話されていることは全ての発生したイベントの情報をずーっと保持し続ければいけないと言うことにはならない
ただイベントの発火を同期でなく必ず次のイベントループ時に持ち越すというだけで
その同期中でのリスナと発火の順序は問わないということ
そしてこれは重要
基本的に遅延処理だが値を指定した際にキャッシュやエラーですぐコールバックが呼べる状況もある
そういうときにEventレイヤーで非同期を保証することでハンドラの設定順序による無用なバグを防ぐことができる
736デフォルトの名無しさん
2018/01/30(火) 19:52:08.77ID:04Xagkxs >>731
JavaScriptなんてそんなもん。
馬鹿な質問に馬鹿が答え、しかもそれが間違っていることも割と普通で、馬鹿が再生産されてる。
現場とか壮絶だと思うよ。
間違ってもないコードを間違っていると言われ、間違っているように書き直させられるのでは、
まともなプログラマは寄りつかない。そして馬鹿に純化され、余計に馬鹿が再生産されるという悪循環。
というかな、根本的に分かってない奴が多すぎる。(プログラマとして未熟)
そして、質問者が馬鹿なのは致し方無しとしても、
回答者は他の回答者のレベルが分かるはずなのだから、
状況を把握して、自分は回答すべきか黙っておくべきか適切に判断しないといけない。
これも出来ない奴がJavaScripterには多すぎる。
(インターネット掲示板の使い方が未熟=人間として未熟)
これについては他Web系のPHP/Goは他言語並みにマシで、JavaScriptだけ酷いのはちょっと不思議なんだが。
そしてこの糞女はマジでそろそろ死んで欲しい。
根本的にこいつは分かってない。(どこが間違っているかは教えてやらないが)
お前らもこの糞女に対してレスする意味があるのかよく考えろ。
レスする=そいつにとって有効情報がでてくる=そいつが居着く事になる。
誰を殺し、誰を生かすかは回答者が決められる。
スレの質が低いのは、回答者のモラルが低いからだ。
迷惑しかかけないゴキブリ韓国人を殺すのは、正しいことだ。
人権屋は最近旗色が悪くて問題のすり替えに躍起だが、それに騙されてはいけない。
現実問題として、畑でいい野菜を育てる為には、
害虫は駆除しないと話にならないし、そのために農薬を使うわけでね。
匿名掲示板上で殺すのは躊躇しなくていい。
理由は簡単で、匿名掲示板上は原理的に差別がない場所だからだ。
韓国人死ね
JavaScriptなんてそんなもん。
馬鹿な質問に馬鹿が答え、しかもそれが間違っていることも割と普通で、馬鹿が再生産されてる。
現場とか壮絶だと思うよ。
間違ってもないコードを間違っていると言われ、間違っているように書き直させられるのでは、
まともなプログラマは寄りつかない。そして馬鹿に純化され、余計に馬鹿が再生産されるという悪循環。
というかな、根本的に分かってない奴が多すぎる。(プログラマとして未熟)
そして、質問者が馬鹿なのは致し方無しとしても、
回答者は他の回答者のレベルが分かるはずなのだから、
状況を把握して、自分は回答すべきか黙っておくべきか適切に判断しないといけない。
これも出来ない奴がJavaScripterには多すぎる。
(インターネット掲示板の使い方が未熟=人間として未熟)
これについては他Web系のPHP/Goは他言語並みにマシで、JavaScriptだけ酷いのはちょっと不思議なんだが。
そしてこの糞女はマジでそろそろ死んで欲しい。
根本的にこいつは分かってない。(どこが間違っているかは教えてやらないが)
お前らもこの糞女に対してレスする意味があるのかよく考えろ。
レスする=そいつにとって有効情報がでてくる=そいつが居着く事になる。
誰を殺し、誰を生かすかは回答者が決められる。
スレの質が低いのは、回答者のモラルが低いからだ。
迷惑しかかけないゴキブリ韓国人を殺すのは、正しいことだ。
人権屋は最近旗色が悪くて問題のすり替えに躍起だが、それに騙されてはいけない。
現実問題として、畑でいい野菜を育てる為には、
害虫は駆除しないと話にならないし、そのために農薬を使うわけでね。
匿名掲示板上で殺すのは躊躇しなくていい。
理由は簡単で、匿名掲示板上は原理的に差別がない場所だからだ。
韓国人死ね
737デフォルトの名無しさん
2018/01/30(火) 19:53:15.14ID:04Xagkxs そして>>731,735のようなやりとりはやればいい。
どうやらお前らはこれを望んでいるようだし、今のお前らには必要なのだろう。
ただな、冷静に考えれば分かるはずだが、これ自体もずれていて、お前らは、
・何が仕様なのか
を議論しているが、それは本来は仕様書なりMDNを読めば終わる話だ。議論するものじゃない。
他言語では、
・仕様を分かった上で、それについてどう思うか/どうそれを生かすか
を議論している。
JavaScriptは比較的簡単な言語だ。
何故お前らがいつまでも仕様理解にトラップされているのか、俺にはよく分からない。
韓国人死ね
例えばな、>>730
× スタック
○ キュー
君がプログラマなら、この2つは正しく使い分けないといけない。今回は特に。
そして確かにNodeのEventEmitterは若干仕様が不適切だ。
NodeのAPIに合わせるなら、EventEmitterSyncと命名されてしかるべきだった。
https://nodejs.org/api/events.html#events_asynchronous_vs_synchronous
という話をするのならまだ分かるんだよ。
ただまあ、今回脱線しているのはそもそものこの糞女が根本から間違っているからであって、
君らが悪い感じでもないが。
どうやらお前らはこれを望んでいるようだし、今のお前らには必要なのだろう。
ただな、冷静に考えれば分かるはずだが、これ自体もずれていて、お前らは、
・何が仕様なのか
を議論しているが、それは本来は仕様書なりMDNを読めば終わる話だ。議論するものじゃない。
他言語では、
・仕様を分かった上で、それについてどう思うか/どうそれを生かすか
を議論している。
JavaScriptは比較的簡単な言語だ。
何故お前らがいつまでも仕様理解にトラップされているのか、俺にはよく分からない。
韓国人死ね
例えばな、>>730
× スタック
○ キュー
君がプログラマなら、この2つは正しく使い分けないといけない。今回は特に。
そして確かにNodeのEventEmitterは若干仕様が不適切だ。
NodeのAPIに合わせるなら、EventEmitterSyncと命名されてしかるべきだった。
https://nodejs.org/api/events.html#events_asynchronous_vs_synchronous
という話をするのならまだ分かるんだよ。
ただまあ、今回脱線しているのはそもそものこの糞女が根本から間違っているからであって、
君らが悪い感じでもないが。
738デフォルトの名無しさん
2018/01/30(火) 19:56:08.40ID:FpOWlTjM739デフォルトの名無しさん
2018/01/30(火) 20:44:18.42ID:04Xagkxs >>738
いや間違いなくお前は糞女だよ。典型的な女のレスばかりだろ。
というかお前、むしろそれが分からないのはヤバイと思うが。
とはいえ、匿名掲示板上でのこの手の水掛け論の決着は非常に単純で、
・大多数の人にとって、どう見えるか
でしかない。
お前がどれだけ嘘の主張をしても、レスはどう見ても女でしかないし、誰も信じないよ。
ただこの際性別なんてどうでもいい。
お前はお前自身が荒らしであることを自覚して、死んでくれマジで。
お前がいる限り、スレの質はどんどん落ちていく。
だからお前は荒らしなんだよ。
敬語を使わないとか、死ね死ね言ったりとかは本質じゃないんだよ。
731-735のやりとりも、特に意味がない。(お互いそれなりに理解できている)
齟齬が発生しているのはスタートポイントがおかしいからであって、彼らの問題ではない。
正しいポイントから議論すれば彼らは噛み合うし、いい議論になったかもしれん。
ただ>>731,735がよく分からんのは、
君らはどうでもいいところでバトル始める癖に、自分では始めないことだ。
今回もこの糞女のスタートポイントから始めてるからおかしくなってる。
議論したいことがあるのなら、君らが勝手に始めればいいのさ。
韓国人死ね
一応>>731にもポイントを明示しておこうか?
> そんなメモリの無駄な使い方なんかやりません。
若干揚げ足取りだがこれは間違っていて、
一番少メモリの実装はフックでデイジーチェインする古来の方法だ。
ただしJavaScriptはそんなことはせず、イベントテーブルを持っていると思うがね。
いや間違いなくお前は糞女だよ。典型的な女のレスばかりだろ。
というかお前、むしろそれが分からないのはヤバイと思うが。
とはいえ、匿名掲示板上でのこの手の水掛け論の決着は非常に単純で、
・大多数の人にとって、どう見えるか
でしかない。
お前がどれだけ嘘の主張をしても、レスはどう見ても女でしかないし、誰も信じないよ。
ただこの際性別なんてどうでもいい。
お前はお前自身が荒らしであることを自覚して、死んでくれマジで。
お前がいる限り、スレの質はどんどん落ちていく。
だからお前は荒らしなんだよ。
敬語を使わないとか、死ね死ね言ったりとかは本質じゃないんだよ。
731-735のやりとりも、特に意味がない。(お互いそれなりに理解できている)
齟齬が発生しているのはスタートポイントがおかしいからであって、彼らの問題ではない。
正しいポイントから議論すれば彼らは噛み合うし、いい議論になったかもしれん。
ただ>>731,735がよく分からんのは、
君らはどうでもいいところでバトル始める癖に、自分では始めないことだ。
今回もこの糞女のスタートポイントから始めてるからおかしくなってる。
議論したいことがあるのなら、君らが勝手に始めればいいのさ。
韓国人死ね
一応>>731にもポイントを明示しておこうか?
> そんなメモリの無駄な使い方なんかやりません。
若干揚げ足取りだがこれは間違っていて、
一番少メモリの実装はフックでデイジーチェインする古来の方法だ。
ただしJavaScriptはそんなことはせず、イベントテーブルを持っていると思うがね。
740デフォルトの名無しさん
2018/01/30(火) 20:51:23.30ID:FpOWlTjM741デフォルトの名無しさん
2018/01/30(火) 21:00:52.87ID:P8c5D832 一番少メモリの実装はフックでデイジーチェインする古来の方法だ(キリッ
742デフォルトの名無しさん
2018/01/30(火) 21:17:41.88ID:dOWZ5By/ >>736
馬鹿な答えを身をもって表現しなくても良いよ。
馬鹿な答えを身をもって表現しなくても良いよ。
743デフォルトの名無しさん
2018/01/30(火) 21:35:06.14ID:FpOWlTjM >>725の件ですが
VSCodeにそういう拡張機能はないかと思ったのですが
プレビュー系の拡張機能はJavaScriptが動かないものばかりです
VSCodeもElectronで動いているのですから、
webviewに表示すればJavaScriptも動くものが作れるのでは?
と思うのですが、そうはいかないのでしょうか?
VSCodeにそういう拡張機能はないかと思ったのですが
プレビュー系の拡張機能はJavaScriptが動かないものばかりです
VSCodeもElectronで動いているのですから、
webviewに表示すればJavaScriptも動くものが作れるのでは?
と思うのですが、そうはいかないのでしょうか?
744デフォルトの名無しさん
2018/01/30(火) 21:39:37.02ID:dOWZ5By/ よく読んだけど、すごく長文で話をして嫌われる俺の長文よりひどいものを久しぶりに見たな。
何を語ってるのかよくわからん。
もしかして、すごく鋭い事を言ってるつもりなのかな。
EventEmitterSyncとモジュール自体にSync付けるのもよくやからんし、
emitが同期的に走ることを問題にしたいんだろうけど、そもそも同期非同期の関数を用意する場合は同期の方にSyncつけようね、ってルールだろ。
片方だけの時には関係ない。API眺めたら気づくだろ、常識的に考えて。
何を語ってるのかよくわからん。
もしかして、すごく鋭い事を言ってるつもりなのかな。
EventEmitterSyncとモジュール自体にSync付けるのもよくやからんし、
emitが同期的に走ることを問題にしたいんだろうけど、そもそも同期非同期の関数を用意する場合は同期の方にSyncつけようね、ってルールだろ。
片方だけの時には関係ない。API眺めたら気づくだろ、常識的に考えて。
745デフォルトの名無しさん
2018/01/30(火) 21:39:39.31ID:FpOWlTjM Electronを使えばわりと簡単にプレイグラウンドが作れるんじゃないか
と思うのですが、そういうものはもうありそうな気もします
ですが、検索しても見つかりません
ないのでしょうか?
と思うのですが、そういうものはもうありそうな気もします
ですが、検索しても見つかりません
ないのでしょうか?
746デフォルトの名無しさん
2018/01/30(火) 22:37:24.99ID:04Xagkxs747デフォルトの名無しさん
2018/01/31(水) 00:18:26.95ID:AGfG6JhI >>733
なんか外野が喚いているようだがw
> >全ての発生したイベントの情報をずーっと保持し続ければいけない
>
> たしかにmousemoveなどを考えたら恐ろしいことになりますね
そういうこと。仮に1日後にonするようなコードがあったら
onするより前に発生したイベントを全部伝えることの恐ろしさがわかるよね?
そんな設計にするわけがない。基本としてonより前に発生したイベントを捕まえることはない
余談だが、jQueryのreadyメソッド = $(function() {}) は
DOM APIではDOMContentLoadedを使えばいいと思うかもしれないが
実はDOMContentLoadedイベントが発生した後に、readyを呼び出しても
ちゃんとイベントハンドラは呼び出されるという違いが有る
つまりonするより前に発生したイベントを伝えるような挙動をしている。
DOMContentLoadedはページごとに一回しか発生しないのもあって
ユーザーにとって便利なようにそうなるように作られているんだ。
setTimeout(function() {
$(function() {
alert('ready'); // 呼び出される
});
document.addEventListener("DOMContentLoaded", function() {
alert('DOMContentLoaded'); // 呼び出されない
});
}, 3000);
なんか外野が喚いているようだがw
> >全ての発生したイベントの情報をずーっと保持し続ければいけない
>
> たしかにmousemoveなどを考えたら恐ろしいことになりますね
そういうこと。仮に1日後にonするようなコードがあったら
onするより前に発生したイベントを全部伝えることの恐ろしさがわかるよね?
そんな設計にするわけがない。基本としてonより前に発生したイベントを捕まえることはない
余談だが、jQueryのreadyメソッド = $(function() {}) は
DOM APIではDOMContentLoadedを使えばいいと思うかもしれないが
実はDOMContentLoadedイベントが発生した後に、readyを呼び出しても
ちゃんとイベントハンドラは呼び出されるという違いが有る
つまりonするより前に発生したイベントを伝えるような挙動をしている。
DOMContentLoadedはページごとに一回しか発生しないのもあって
ユーザーにとって便利なようにそうなるように作られているんだ。
setTimeout(function() {
$(function() {
alert('ready'); // 呼び出される
});
document.addEventListener("DOMContentLoaded", function() {
alert('DOMContentLoaded'); // 呼び出されない
});
}, 3000);
748デフォルトの名無しさん
2018/01/31(水) 00:29:53.93ID:V9tZNzCA chrome-extenionを作っておりましてサイドバーの機能をiframeで作りました。
iframe内でUI操作をするので大部分のロジックがirame内に集中しているのですが
通信ができないためbackground.js側にメッセージ送信を介して外部と通信するような仕様になっています。
こんな状況でバグトラッキングを行いたいと思ったらどういうライブラリが考えられるでしょうか?
iframe内でUI操作をするので大部分のロジックがirame内に集中しているのですが
通信ができないためbackground.js側にメッセージ送信を介して外部と通信するような仕様になっています。
こんな状況でバグトラッキングを行いたいと思ったらどういうライブラリが考えられるでしょうか?
749デフォルトの名無しさん
2018/01/31(水) 07:42:48.27ID:BP4ujqwj750デフォルトの名無しさん
2018/01/31(水) 13:45:04.77ID:UN5/9QWx >>747
別に必ず全部保持して全部伝える必要性は無くね?
最後のイベント保持して伝えて欲しいっていうユースケースは多いと思うよ
最近はaddEventListener第三引数にオプションオブジェクトが指定できるようになってて
間隔間引く提案とか色々されてきてるから、最後のイベントを得るようにもできるようになると思うよ
別に必ず全部保持して全部伝える必要性は無くね?
最後のイベント保持して伝えて欲しいっていうユースケースは多いと思うよ
最近はaddEventListener第三引数にオプションオブジェクトが指定できるようになってて
間隔間引く提案とか色々されてきてるから、最後のイベントを得るようにもできるようになると思うよ
751デフォルトの名無しさん
2018/01/31(水) 21:21:51.20ID:c/p2e2Pj >>749
韓国人死ね
お前らはそうやってすぐ声闘するのも特徴だ。
喚けばそれが事実として認識されるのは、韓国人には馬鹿しかいないから。
それで日本人を騙すのはもう無理だ。ウザイだけだから韓国人はマジで死ね。
俺の日本語に問題があるから意味が取れないという主張で俺を叩く気なら、
少なくとも>>744内の日本語は完璧じゃないといけない。(日本人的には)
間違いなく言えるのは、>>744,749は韓国人であること。
・この程度の簡単な論理すら理解できない。
・749は744の日本語の間違いに気づけないからこそ「追い打ちできる」と勘違いしている。
分かるか?表面的な書き込みではなく、相手がどうしてそういう書き込みに至ったかを読みとるんだ。
叩くなら叩くでいいとして、
肝心の先鋒744があの日本語では、普通の日本人なら二の矢を継ぐ気にはならんだろ。
そして俺はそれを正面から分かりやすく指摘してるのに、(746)
749は出てきた。この感覚の違いを読みとるんだ。
もっと単純に言えば、自分だったら何を選択するか?を考えればいい。(黙るってのも含めて)
そこで自分と違う反応をしたのなら、それは君と彼の立ち位置の違いなんだよ。
自分の立ち位置を正しく理解できているのなら、相手の立ち位置を逆算できる。
「違和感」を感じ取って、それを頼りに辿るんだよ。
JavaScriptのスレだけ酷いのは、お前らが酷いからだよ。
技術レベルも酷いが、緊喫の問題はお前らの人間レベルだ。
だから上記をよく読んで読み方を学び、このスレの何が問題なのか、各自で理解しろ。
そして誰を殺すべきか、きちんと考えろ。
繰り返すが、匿名掲示板上で殺すのは躊躇しなくていい。
それは純粋に書き込みが酷かったからであり、ここは差別の存在しようのない世界だ。
似非人権屋、パヨク、韓国人は纏めて殺していい。
韓国人死ね
お前らはそうやってすぐ声闘するのも特徴だ。
喚けばそれが事実として認識されるのは、韓国人には馬鹿しかいないから。
それで日本人を騙すのはもう無理だ。ウザイだけだから韓国人はマジで死ね。
俺の日本語に問題があるから意味が取れないという主張で俺を叩く気なら、
少なくとも>>744内の日本語は完璧じゃないといけない。(日本人的には)
間違いなく言えるのは、>>744,749は韓国人であること。
・この程度の簡単な論理すら理解できない。
・749は744の日本語の間違いに気づけないからこそ「追い打ちできる」と勘違いしている。
分かるか?表面的な書き込みではなく、相手がどうしてそういう書き込みに至ったかを読みとるんだ。
叩くなら叩くでいいとして、
肝心の先鋒744があの日本語では、普通の日本人なら二の矢を継ぐ気にはならんだろ。
そして俺はそれを正面から分かりやすく指摘してるのに、(746)
749は出てきた。この感覚の違いを読みとるんだ。
もっと単純に言えば、自分だったら何を選択するか?を考えればいい。(黙るってのも含めて)
そこで自分と違う反応をしたのなら、それは君と彼の立ち位置の違いなんだよ。
自分の立ち位置を正しく理解できているのなら、相手の立ち位置を逆算できる。
「違和感」を感じ取って、それを頼りに辿るんだよ。
JavaScriptのスレだけ酷いのは、お前らが酷いからだよ。
技術レベルも酷いが、緊喫の問題はお前らの人間レベルだ。
だから上記をよく読んで読み方を学び、このスレの何が問題なのか、各自で理解しろ。
そして誰を殺すべきか、きちんと考えろ。
繰り返すが、匿名掲示板上で殺すのは躊躇しなくていい。
それは純粋に書き込みが酷かったからであり、ここは差別の存在しようのない世界だ。
似非人権屋、パヨク、韓国人は纏めて殺していい。
752デフォルトの名無しさん
2018/01/31(水) 21:26:43.62ID:6Q7+onpX これ病名なに?
753デフォルトの名無しさん
2018/01/31(水) 21:38:33.82ID:GHy3j/zr 火病
754デフォルトの名無しさん
2018/01/31(水) 22:16:11.79ID:AGfG6JhI >>750
> 最後のイベント保持して伝えて欲しいっていうユースケースは多いと思うよ
例えばどんなユースケース?
念の為に言っておくと最後のイベントが送られているというのは
例えば1時間前に起きたイベントをonでイベントハンドラを付けた時に伝えられるとか、
あるオブジェクトが複数種類のイベントを送信する時onchangeとかonkeydownとか
onkeyupとonclickとかonmousemoveとかその全部が送られてくるっていうことだからね
(最後の一種類しか送られてこないとしたらonmousemoveでほとんど打ち消されるだろう)
そんなことをされても迷惑な場合しか思いつかない
> 最後のイベント保持して伝えて欲しいっていうユースケースは多いと思うよ
例えばどんなユースケース?
念の為に言っておくと最後のイベントが送られているというのは
例えば1時間前に起きたイベントをonでイベントハンドラを付けた時に伝えられるとか、
あるオブジェクトが複数種類のイベントを送信する時onchangeとかonkeydownとか
onkeyupとonclickとかonmousemoveとかその全部が送られてくるっていうことだからね
(最後の一種類しか送られてこないとしたらonmousemoveでほとんど打ち消されるだろう)
そんなことをされても迷惑な場合しか思いつかない
755デフォルトの名無しさん
2018/01/31(水) 22:23:25.32ID:AGfG6JhI まだ勘違いしてる点がありそうだから補足しておくと
「最後のイベントを伝える」ということの意味は
イベントを送信するsenderオブジェクトがいたとして
そのsenderオブジェクトからevent1というイベントが送信される
一時間後、reciever1がon('event1', function() })すると
すぐにイベントハンドラが呼び出される。
その一時間後、reciever2がon('event1', function() })すると
やっぱりイベントハンドラが呼び出される
その一時間後に、reciever3がon('event1', function() })するかどうかは
未来にならないとわからないので、最後のイベントであるevent1を
ずーっと保持し続けなければならないということ
「最後のイベントを伝える」ということの意味は
イベントを送信するsenderオブジェクトがいたとして
そのsenderオブジェクトからevent1というイベントが送信される
一時間後、reciever1がon('event1', function() })すると
すぐにイベントハンドラが呼び出される。
その一時間後、reciever2がon('event1', function() })すると
やっぱりイベントハンドラが呼び出される
その一時間後に、reciever3がon('event1', function() })するかどうかは
未来にならないとわからないので、最後のイベントであるevent1を
ずーっと保持し続けなければならないということ
756デフォルトの名無しさん
2018/01/31(水) 23:54:12.91ID:reY+vhDf757デフォルトの名無しさん
2018/02/01(木) 00:09:52.90ID:f2opCj6I >>756
だからそれをどういう時にそれを使いたいのか?ってことなんだ
なんども一時間後にと言ってることから推測してくれ
画面をスクロールとかしてそのイベントを発生させた
要素が画面外にある時、mousemoveを受け取って、
それでやりたいことがあるのか?ってこと
「よくあるユースケース」というがそのユースケースが思いつかないよ
逆に予想外のことが起きたとしか思わないだろう。
なんで今その要素触ってないのに、その要素からmousemouveイベとが
発生したんだ?って混乱するだけでしょ。
だからそれをどういう時にそれを使いたいのか?ってことなんだ
なんども一時間後にと言ってることから推測してくれ
画面をスクロールとかしてそのイベントを発生させた
要素が画面外にある時、mousemoveを受け取って、
それでやりたいことがあるのか?ってこと
「よくあるユースケース」というがそのユースケースが思いつかないよ
逆に予想外のことが起きたとしか思わないだろう。
なんで今その要素触ってないのに、その要素からmousemouveイベとが
発生したんだ?って混乱するだけでしょ。
758デフォルトの名無しさん
2018/02/01(木) 00:23:21.61ID:f2opCj6I もちろん限られたユースケースなら考えつくと思うよ
だけど基本機能に組み込むほどの需要ないだろ?
だけど基本機能に組み込むほどの需要ないだろ?
759デフォルトの名無しさん
2018/02/01(木) 00:40:19.32ID:AVafL46K >>751
三行で。
三行で。
760デフォルトの名無しさん
2018/02/01(木) 00:44:40.56ID:AVafL46K761デフォルトの名無しさん
2018/02/01(木) 02:54:01.72ID:Nsc0tqbW >>757
これからはasync-awaitとESModuleが主流になってくるけど
それで必要になったときにロードかけて、例えば君が言ってたDOMCLなんかをそのモジュールから登録すると取りこぼすのよ
他に実際困ったケースを挙げるとmessageとか
取りこぼしを考えると無駄にやり取りのロジックが必要になる
これからはasync-awaitとESModuleが主流になってくるけど
それで必要になったときにロードかけて、例えば君が言ってたDOMCLなんかをそのモジュールから登録すると取りこぼすのよ
他に実際困ったケースを挙げるとmessageとか
取りこぼしを考えると無駄にやり取りのロジックが必要になる
762デフォルトの名無しさん
2018/02/01(木) 07:11:39.48ID:gPQ21xlq うーん
キャンバスでマウスの動きに合わせて特殊なラインを書くモードのボタンを押したときに
そのモジュールがロードされるまでのイベントを取りこぼしてしまうっていうのを想像したが
それだと最後の1つだけじゃ機能不足になるな
出来る限り個別の機能はモジュールに任せてメイン側で特別な工夫はしたくないとしたらどうすればいいのだろう
イベント発生を止めて貯めるということができればいいか
その間他のモジュールにも影響が出てしまうけれど、逆に他のモジュールと足並み揃えられるから現実的か
だけどモジュールによっては足並みを揃えない方が良い場合もあるだろうし
これでもモジュールが止めるまでの間、メイン側で行ったとしても実際イベントが伝播してくるイベントループと、
イベントを貯め始める処理を開始するまでの間にループがいくらか回ってしまう可能性がある
async世界で抽象化してると、イベントが起きてそのイベントハンドラの中ですぐ何かをすると言うことが難しくなる
モバイルで音声鳴らすときにも同じような問題がある
つまり、クリックされてその流れで音声鳴らすコードを書いても
思ったより間隔が開いて(確か100msくらい開くと駄目)しまうかも知れない
ということでそこだけ特別な書き方をしないといけないという問題
イベントは本当に難しい
キャンバスでマウスの動きに合わせて特殊なラインを書くモードのボタンを押したときに
そのモジュールがロードされるまでのイベントを取りこぼしてしまうっていうのを想像したが
それだと最後の1つだけじゃ機能不足になるな
出来る限り個別の機能はモジュールに任せてメイン側で特別な工夫はしたくないとしたらどうすればいいのだろう
イベント発生を止めて貯めるということができればいいか
その間他のモジュールにも影響が出てしまうけれど、逆に他のモジュールと足並み揃えられるから現実的か
だけどモジュールによっては足並みを揃えない方が良い場合もあるだろうし
これでもモジュールが止めるまでの間、メイン側で行ったとしても実際イベントが伝播してくるイベントループと、
イベントを貯め始める処理を開始するまでの間にループがいくらか回ってしまう可能性がある
async世界で抽象化してると、イベントが起きてそのイベントハンドラの中ですぐ何かをすると言うことが難しくなる
モバイルで音声鳴らすときにも同じような問題がある
つまり、クリックされてその流れで音声鳴らすコードを書いても
思ったより間隔が開いて(確か100msくらい開くと駄目)しまうかも知れない
ということでそこだけ特別な書き方をしないといけないという問題
イベントは本当に難しい
763デフォルトの名無しさん
2018/02/01(木) 21:31:43.40ID:huK8Ijw8 >>759-760
韓国人死ね
意味が取れないことを隠す為に「斜めに読んで」と言い訳している時点でお察し。
俺の日本語について文句を言っているのにひよるとか、マジで韓国人ですと自白しているようなもの。
(これは749の時点で既にそうだが)
お前らの立場なら、どんどん俺の日本語の問題点をあげつらってこないとおかしいだろ。
こういった、整合性が全くなく、ただ叫ぶのも連呼リアンの特徴。
「三行」の主張も中身は同じ。
俺の日本語に駄目出し出来るほど日本語が上手いつもりなら、三行にこだわるとか頭おかしいだろ。
2chの長文なんて、世間では短文だ。一瞬で読めなくてどうする?
MDNにしても、どのページも三行では書いてない。
三行しか読めないようなら、今後プログラマを続けるのは無理だ。辞めた方がいい。
池沼韓国人はマジで死ね。
まあとにかく、このスレをよくする為にはどうすればいいか、お前ら自身が考えろ。
ただそれ以前に、お前らはいろいろ読めてない。
少なくとも、俺が具体的に示していることくらいは読めるようにしろ。
そうすれば、もっと匿名掲示板を楽しめるようになるから。
そして、日本語/論理が通じない韓国人を殺すことを躊躇するな。
お前らが大学生だとして、幼稚園児に研究室に乱入してこられても困るだろ。
適当になだめて、出ていってもらうのが妥当だ。そうじゃないと研究室が機能しない。
お前らが議論したいのなら、議論に耐えない日本語/論理能力の人は出ていってもらうのが妥当だ。
これは本当に当たり前の話だ。パヨクやゴキブリ韓国人に騙されてはいけない。
レベルの高い奴らが深く話し込みたいとして、馬鹿がそれを邪魔する権利はない。
韓国人死ね
意味が取れないことを隠す為に「斜めに読んで」と言い訳している時点でお察し。
俺の日本語について文句を言っているのにひよるとか、マジで韓国人ですと自白しているようなもの。
(これは749の時点で既にそうだが)
お前らの立場なら、どんどん俺の日本語の問題点をあげつらってこないとおかしいだろ。
こういった、整合性が全くなく、ただ叫ぶのも連呼リアンの特徴。
「三行」の主張も中身は同じ。
俺の日本語に駄目出し出来るほど日本語が上手いつもりなら、三行にこだわるとか頭おかしいだろ。
2chの長文なんて、世間では短文だ。一瞬で読めなくてどうする?
MDNにしても、どのページも三行では書いてない。
三行しか読めないようなら、今後プログラマを続けるのは無理だ。辞めた方がいい。
池沼韓国人はマジで死ね。
まあとにかく、このスレをよくする為にはどうすればいいか、お前ら自身が考えろ。
ただそれ以前に、お前らはいろいろ読めてない。
少なくとも、俺が具体的に示していることくらいは読めるようにしろ。
そうすれば、もっと匿名掲示板を楽しめるようになるから。
そして、日本語/論理が通じない韓国人を殺すことを躊躇するな。
お前らが大学生だとして、幼稚園児に研究室に乱入してこられても困るだろ。
適当になだめて、出ていってもらうのが妥当だ。そうじゃないと研究室が機能しない。
お前らが議論したいのなら、議論に耐えない日本語/論理能力の人は出ていってもらうのが妥当だ。
これは本当に当たり前の話だ。パヨクやゴキブリ韓国人に騙されてはいけない。
レベルの高い奴らが深く話し込みたいとして、馬鹿がそれを邪魔する権利はない。
764デフォルトの名無しさん
2018/02/01(木) 21:53:33.09ID:AVafL46K >>763
日本語が問題じゃないからあげつらわないよ。バカなの?
お前の考えてるSyncというプレフィックスの付け方が問題で、そしてそれは間違ってるって言ってるんだけど。
間違ってたか合ってたかの二択で答えられるようにしたのに、まるで日本人では無いかのように感情に基づいた(しかも意味のない)長文だな。
で、間違いか正解かどっちだったの?
日本語が問題じゃないからあげつらわないよ。バカなの?
お前の考えてるSyncというプレフィックスの付け方が問題で、そしてそれは間違ってるって言ってるんだけど。
間違ってたか合ってたかの二択で答えられるようにしたのに、まるで日本人では無いかのように感情に基づいた(しかも意味のない)長文だな。
で、間違いか正解かどっちだったの?
765デフォルトの名無しさん
2018/02/01(木) 21:56:05.46ID:AVafL46K 三行と言ったのは、
「合ってるor間違ってる」
「それはこういう理由」
「謝辞or訂正」
で充分だからであって、三行以上読まないって言ってる訳じゃ無い。
三行にまとめられなきゃ無能だよと言ってるだけだ。
「合ってるor間違ってる」
「それはこういう理由」
「謝辞or訂正」
で充分だからであって、三行以上読まないって言ってる訳じゃ無い。
三行にまとめられなきゃ無能だよと言ってるだけだ。
766デフォルトの名無しさん
2018/02/01(木) 22:01:36.78ID:hOC/kj1k > 三行しか読めないようなら、今後プログラマを続けるのは無理だ。辞めた方がいい。
そりゃ誰だって中身もないのに無駄な長文は読みたくないっしょ
簡潔な文が書けないと今後プログラマを続けるのは無理だからやめた方がよい
そりゃ誰だって中身もないのに無駄な長文は読みたくないっしょ
簡潔な文が書けないと今後プログラマを続けるのは無理だからやめた方がよい
767デフォルトの名無しさん
2018/02/01(木) 23:30:23.41ID:huK8Ijw8 >>764-766
韓国人死ね
韓国人死ね
768デフォルトの名無しさん
2018/02/01(木) 23:33:18.61ID:tiAtxkq/ 誰だって糞汚いプログラムなんて読みたくない
769デフォルトの名無しさん
2018/02/01(木) 23:55:48.50ID:huK8Ijw8770デフォルトの名無しさん
2018/02/01(木) 23:58:34.24ID:f2opCj6I >>761
> 君が言ってたDOMCLなんかを
何の話なのか分からんが、正しい使い方をして取りこぼしているなら
ライブラリの問題としか思わんが。
まあ実際は間違った使い方をしてるだけだろうね。
コード書いてごらん? 修正してあげるから
> 君が言ってたDOMCLなんかを
何の話なのか分からんが、正しい使い方をして取りこぼしているなら
ライブラリの問題としか思わんが。
まあ実際は間違った使い方をしてるだけだろうね。
コード書いてごらん? 修正してあげるから
771デフォルトの名無しさん
2018/02/02(金) 00:57:19.53ID:sA1ck48z >>770
上で挙がってたjQueryのreadyはDOMContentLoaded過ぎても効くし、
DOMCLには対応するdocument.readyStateがあるよねってこと
例えばじゃあ今からマウスの位置に何かを表示しますってしようとしても
そこからマウスが動かなくていつまで経ってもmousemoveイベントが起きないといつまでも表示されないし、
もちろんそれで致命的な何かが起きるわけではないけれど、
今Webでもリッチなアプリが作れるようになってきてる訳でそういう細かいデザインも気になってくる
かと言ってあまり複雑なことはしたくないということ
だからdocument.readyのように
documentレイヤーだけでいいからlastEvent.mousemoveみたいなのがあったら結構楽になる
でも一々イベント履歴をチェックするのも面倒だから、できればaddEventListenerで取りたいけど、
実際無制限にするわけには行かないから、一つの落とし所としてはここからイベントを貯めるという指定ができるようにすること
上で挙がってたjQueryのreadyはDOMContentLoaded過ぎても効くし、
DOMCLには対応するdocument.readyStateがあるよねってこと
例えばじゃあ今からマウスの位置に何かを表示しますってしようとしても
そこからマウスが動かなくていつまで経ってもmousemoveイベントが起きないといつまでも表示されないし、
もちろんそれで致命的な何かが起きるわけではないけれど、
今Webでもリッチなアプリが作れるようになってきてる訳でそういう細かいデザインも気になってくる
かと言ってあまり複雑なことはしたくないということ
だからdocument.readyのように
documentレイヤーだけでいいからlastEvent.mousemoveみたいなのがあったら結構楽になる
でも一々イベント履歴をチェックするのも面倒だから、できればaddEventListenerで取りたいけど、
実際無制限にするわけには行かないから、一つの落とし所としてはここからイベントを貯めるという指定ができるようにすること
772デフォルトの名無しさん
2018/02/02(金) 00:58:53.41ID:ZTxWGWCM > 上で挙がってたjQueryのreadyはDOMContentLoaded過ぎても効くし、
readyはイベントじゃないからね
だからなんなんだ?としか思えないが
何が言いたいんだ?
readyはイベントじゃないからね
だからなんなんだ?としか思えないが
何が言いたいんだ?
773デフォルトの名無しさん
2018/02/02(金) 01:01:39.79ID:sA1ck48z >>770
そうすれば、ターゲットがクリックされたことを機会に、ターゲットをフリーズさせて、
その間にドラッグするためのモジュールを読み込んでそこから再開するというようなことができる
ただ厳密に言うと、async-await、observable的に書いたりフレームワーク使うと
そのイベントの直接のハンドラ呼び出しから同期的に処理が続くとは限らない、
例えばasync関数を呼び出すとそれは次回のジョブキューに登録され、おそらくブラウザだと次回のイベントループ時に処理される
それが組み合わさってくると、クリックされたことを契機に、それからの別のイベントを把握しようと考えても
その一瞬以下の間に1つ2つ取りこぼすロジック上の可能性を残してしまう
そしてこれが発生すると迷惑な事象、つまりバグ挙動になることが多い
ドラッグくらいじゃそんなに大したことにはならないと思うが、メッセージングとかだと0に近い可能性でも駄目なので
確実性を出すためにメッセージにidを振るだとか、再送要求を設計するとか面倒くさい気遣いがかかってしまう
結局はモバイルの音出しの問題のようにasyncな世界を外れたフックが必要になるんだけど、
そこを愚直に書くと汚らしくなるので、今のジョブキューや今のイベントループといった状態を得るためのAPIが要るんじゃないかと思う
ちょっと違うが、ECMAにZoneという、これまたまあまあ違うがNodeの昔のdomain的雰囲気を持ったAPIが提案されてるが
そういうのがいいのかもしれない
そうすれば、ターゲットがクリックされたことを機会に、ターゲットをフリーズさせて、
その間にドラッグするためのモジュールを読み込んでそこから再開するというようなことができる
ただ厳密に言うと、async-await、observable的に書いたりフレームワーク使うと
そのイベントの直接のハンドラ呼び出しから同期的に処理が続くとは限らない、
例えばasync関数を呼び出すとそれは次回のジョブキューに登録され、おそらくブラウザだと次回のイベントループ時に処理される
それが組み合わさってくると、クリックされたことを契機に、それからの別のイベントを把握しようと考えても
その一瞬以下の間に1つ2つ取りこぼすロジック上の可能性を残してしまう
そしてこれが発生すると迷惑な事象、つまりバグ挙動になることが多い
ドラッグくらいじゃそんなに大したことにはならないと思うが、メッセージングとかだと0に近い可能性でも駄目なので
確実性を出すためにメッセージにidを振るだとか、再送要求を設計するとか面倒くさい気遣いがかかってしまう
結局はモバイルの音出しの問題のようにasyncな世界を外れたフックが必要になるんだけど、
そこを愚直に書くと汚らしくなるので、今のジョブキューや今のイベントループといった状態を得るためのAPIが要るんじゃないかと思う
ちょっと違うが、ECMAにZoneという、これまたまあまあ違うがNodeの昔のdomain的雰囲気を持ったAPIが提案されてるが
そういうのがいいのかもしれない
774デフォルトの名無しさん
2018/02/02(金) 01:02:25.06ID:ZTxWGWCM >>771
> 例えばじゃあ今からマウスの位置に何かを表示しますってしようとしても
今のマウスの位置に何かを表示したいのか
それとも一時間前に発火したイベントのマウスの位置に
何かを表示したいのかはっきり言ってしてくれる?
> 例えばじゃあ今からマウスの位置に何かを表示しますってしようとしても
今のマウスの位置に何かを表示したいのか
それとも一時間前に発火したイベントのマウスの位置に
何かを表示したいのかはっきり言ってしてくれる?
775デフォルトの名無しさん
2018/02/02(金) 01:03:44.69ID:ZTxWGWCM > documentレイヤーだけでいいからlastEvent.mousemoveみたいなのがあったら結構楽になる
いらん。documentのmousemoveで
xとyを保存するだけでいい。
それだけで解決できる問題なのに
イベントの仕組みを複雑化させて
需要の少ないユースケースに対応するのはアホ
いらん。documentのmousemoveで
xとyを保存するだけでいい。
それだけで解決できる問題なのに
イベントの仕組みを複雑化させて
需要の少ないユースケースに対応するのはアホ
776デフォルトの名無しさん
2018/02/02(金) 01:05:23.52ID:sA1ck48z >>772
要するに、asyncな世界でイベントハンドリングを確実に綺麗に上手くできやすくするための
なんらかの、そして幾つかの標準による補助機能が必要という話
たとえばaddEventListnerの第三引数のオプションの指定を増やす
抜本的な改革はその方向じゃ難しいかも知れないが、
要するに、asyncな世界でイベントハンドリングを確実に綺麗に上手くできやすくするための
なんらかの、そして幾つかの標準による補助機能が必要という話
たとえばaddEventListnerの第三引数のオプションの指定を増やす
抜本的な改革はその方向じゃ難しいかも知れないが、
777デフォルトの名無しさん
2018/02/02(金) 01:08:43.56ID:ZTxWGWCM あー、説明下手なんだから
コードで書いて
コードで書いて
778デフォルトの名無しさん
2018/02/02(金) 01:15:47.94ID:sA1ck48z >>774
話が噛み合っていないね
ここから先と指定できればいいが、ずっと貯めておくのは非現実的だし、
ならそういう標準的な補助の話を一旦抜きとしても一般的な話をしてもやっぱり
マウスダウンが起きた、ではここから先のマウス移動を見よう、としてもasyncな世界だと
onmousedown=e=>onmousemove=
みたいな同期的なロジックではないのだから、
クリックが起きてから、マウスの移動を検知し始めるまでに1つイベントが走ってしまうかもしてない
つまり、マウスダウンされた瞬間超人的なスピードでマウスが動いた場合、取りこぼすということ
ドラッグの話の場合大げさなことかもしれないが、
それでも同期的に書いてた頃はイベントループという仕組みでこういうケースも保護されていた
でもそれが無くなると、本当に様々な心配事が出てきて、それは実際起きうることだったりもするという話
その一つの解決策は、onmousedown=に直接フックして、同期的に>>775の処理だけでもしとくことだが、
そうするとせっかくの抽象化async世界が壊れる
それなら最初から同期的に昔からの書き方で書いとけばいいということになる
そういう問題
話が噛み合っていないね
ここから先と指定できればいいが、ずっと貯めておくのは非現実的だし、
ならそういう標準的な補助の話を一旦抜きとしても一般的な話をしてもやっぱり
マウスダウンが起きた、ではここから先のマウス移動を見よう、としてもasyncな世界だと
onmousedown=e=>onmousemove=
みたいな同期的なロジックではないのだから、
クリックが起きてから、マウスの移動を検知し始めるまでに1つイベントが走ってしまうかもしてない
つまり、マウスダウンされた瞬間超人的なスピードでマウスが動いた場合、取りこぼすということ
ドラッグの話の場合大げさなことかもしれないが、
それでも同期的に書いてた頃はイベントループという仕組みでこういうケースも保護されていた
でもそれが無くなると、本当に様々な心配事が出てきて、それは実際起きうることだったりもするという話
その一つの解決策は、onmousedown=に直接フックして、同期的に>>775の処理だけでもしとくことだが、
そうするとせっかくの抽象化async世界が壊れる
それなら最初から同期的に昔からの書き方で書いとけばいいということになる
そういう問題
779デフォルトの名無しさん
2018/02/02(金) 01:21:12.58ID:ZTxWGWCM > つまり、マウスダウンされた瞬間超人的なスピードでマウスが動いた場合、取りこぼすということ
うん? それが最後のイベントをonした瞬間に再生したら解決できるとでも?
Aの位置でマウスダウン発生、超人的なスピードでBの位置に移動、
onしてマウスダウンを捕まえたら、今Bの位置にいるのに
Aの位置でマウスダウン発生だよね
うん? それが最後のイベントをonした瞬間に再生したら解決できるとでも?
Aの位置でマウスダウン発生、超人的なスピードでBの位置に移動、
onしてマウスダウンを捕まえたら、今Bの位置にいるのに
Aの位置でマウスダウン発生だよね
780デフォルトの名無しさん
2018/02/02(金) 01:35:18.66ID:sA1ck48z >>779
最後のイベントだけでは有効なケースはより限られるという話はした
ただそれでもDOMC.L.みたいなケースには有効
だからそういうのもあるけど、もしくはここから先イベントを貯めると言うことができればいいかもという話もして、
それも完璧じゃないけど、改善作は欲しいよねという話になってる
だけどここまで考えてやっぱりObservableAPIが良いのかなと思い始めた
つまりdragstart = mousedown.flatMap(() =>mousemove
とかした際にそのフレームワークがしっかり可同期的に設計されていれば
とりあえず、mousedownからmousemoveまでの間の取りこぼしはなくなる
もちろんfor await dragとかをしてもそこは非同期だから
そのドラッグから次に何かをするまでの間は気をつけないといけないけれど、
こういうようにイベントを組み合わせて1つのイベントとして固めておくと言うことができればかなりの問題緩和策になる
問題はObservableが標準に入ったとき、async generatorとかあるのに対し内部的に同期で回せる設計でやってくるのかということだな
最後のイベントだけでは有効なケースはより限られるという話はした
ただそれでもDOMC.L.みたいなケースには有効
だからそういうのもあるけど、もしくはここから先イベントを貯めると言うことができればいいかもという話もして、
それも完璧じゃないけど、改善作は欲しいよねという話になってる
だけどここまで考えてやっぱりObservableAPIが良いのかなと思い始めた
つまりdragstart = mousedown.flatMap(() =>mousemove
とかした際にそのフレームワークがしっかり可同期的に設計されていれば
とりあえず、mousedownからmousemoveまでの間の取りこぼしはなくなる
もちろんfor await dragとかをしてもそこは非同期だから
そのドラッグから次に何かをするまでの間は気をつけないといけないけれど、
こういうようにイベントを組み合わせて1つのイベントとして固めておくと言うことができればかなりの問題緩和策になる
問題はObservableが標準に入ったとき、async generatorとかあるのに対し内部的に同期で回せる設計でやってくるのかということだな
781デフォルトの名無しさん
2018/02/02(金) 01:36:39.52ID:ZTxWGWCM なんかこの人が何を勘違いしているかわかった気がするわw
説明めんどくせーなー、
イベントの情報っていうのを
わかってないんだよなー
イベントを只の割り込みみたいな扱いをして
イベントの情報を使うのじゃなくて
割り込みが発生した時点の情報をかき集めて
処理しようとしてるんだな。
イベント発生時点で情報をもたせればいいだけなのに
うん、やっぱりコードの書き方が間違ってるってわかったから
もういいよw
説明めんどくせーなー、
イベントの情報っていうのを
わかってないんだよなー
イベントを只の割り込みみたいな扱いをして
イベントの情報を使うのじゃなくて
割り込みが発生した時点の情報をかき集めて
処理しようとしてるんだな。
イベント発生時点で情報をもたせればいいだけなのに
うん、やっぱりコードの書き方が間違ってるってわかったから
もういいよw
782デフォルトの名無しさん
2018/02/02(金) 01:57:53.92ID:sA1ck48z >>781
だから例えば、ドラッグ=マウスダウン→flatmap:マウスムーブ→until:マウスアップ、と設計するように
あるイベントが発生してそれから先また別のイベントを補足したいってことはよくあるけど
同期的に書いてそのイベントループ中にイベントの補足を開始できればいいけど
async関数使ってると原理的にそこが保証されないコードになることがあるよね
それを簡単に改善できる方法ってないのかなって話だよ
イベント発生時点でやれば良いって言っても
async関数でイベントをawaitしてるとイベントが起きたループとは実際処理が走るのはずれるのよ
つまり
new Promise((_ok)=>{ok=_ok}).then(e=>console.log('P'))
のとき
onclick=e=>{
ok(e)
console.log('C')
}
とすると、C→Pの順番で呼ばれるでしょ?
Promiseってのか解決と同時にコールバックが走るわけじゃないんだから、
そこで隙間が開いてしまって、積み重なるとタイミングバグの元になるのよ
それを確実に回避するためにはイベントハンドラを使って同期的に処理を書き連ねていかないといけないから
async世界と相性悪いねって話だよ
だから例えば、ドラッグ=マウスダウン→flatmap:マウスムーブ→until:マウスアップ、と設計するように
あるイベントが発生してそれから先また別のイベントを補足したいってことはよくあるけど
同期的に書いてそのイベントループ中にイベントの補足を開始できればいいけど
async関数使ってると原理的にそこが保証されないコードになることがあるよね
それを簡単に改善できる方法ってないのかなって話だよ
イベント発生時点でやれば良いって言っても
async関数でイベントをawaitしてるとイベントが起きたループとは実際処理が走るのはずれるのよ
つまり
new Promise((_ok)=>{ok=_ok}).then(e=>console.log('P'))
のとき
onclick=e=>{
ok(e)
console.log('C')
}
とすると、C→Pの順番で呼ばれるでしょ?
Promiseってのか解決と同時にコールバックが走るわけじゃないんだから、
そこで隙間が開いてしまって、積み重なるとタイミングバグの元になるのよ
それを確実に回避するためにはイベントハンドラを使って同期的に処理を書き連ねていかないといけないから
async世界と相性悪いねって話だよ
783デフォルトの名無しさん
2018/02/02(金) 02:15:59.03ID:ZTxWGWCM >>782
onした時点で最後のイベント発生してほしいという話と
全く関係ないない。
えとな、お前が言いたいのは、
イベントが発生した順番で、
イベントハンドラが呼び出されてほしい
ってだけだろ
それだけだろ。いちいち話を複雑にさせやがって
UDPの順番は保証されませんという
問題を解決する話と一緒だ。
onした時点で最後のイベント発生してほしいという話と
全く関係ないない。
えとな、お前が言いたいのは、
イベントが発生した順番で、
イベントハンドラが呼び出されてほしい
ってだけだろ
それだけだろ。いちいち話を複雑にさせやがって
UDPの順番は保証されませんという
問題を解決する話と一緒だ。
784デフォルトの名無しさん
2018/02/02(金) 13:49:28.44ID:qHIAWkxQ node.jsでUTF8ファイルにBOMを追加するという処理を書きました
BOMというのはFEFFという2バイトのバイナリなので
ファイルに書き込む文字列の先頭に
'\ufeff'
を付加すればいいとネットで知り、そのとおりにやって実際に動作しています
\uを使ってバイナリを書き込むことに関して疑問を持ちました
\uという記法は4桁の16進数でUnicode文字を記述する方法とあります
Unicode文字は「任意のバイナリ」とイコールではないと思いますが、
どうなのでしょうか?
今回はFEFFが偶然unicodeのコードの範囲におさまっていたから問題なく書けたのでしょうか?
それともこの書き方でどんなバイナリデータでも書けるのでしょうか?
だとしたら「Unicode」っていう必要あるか?と思うのですが、どうなのでしょうか?
BOMというのはFEFFという2バイトのバイナリなので
ファイルに書き込む文字列の先頭に
'\ufeff'
を付加すればいいとネットで知り、そのとおりにやって実際に動作しています
\uを使ってバイナリを書き込むことに関して疑問を持ちました
\uという記法は4桁の16進数でUnicode文字を記述する方法とあります
Unicode文字は「任意のバイナリ」とイコールではないと思いますが、
どうなのでしょうか?
今回はFEFFが偶然unicodeのコードの範囲におさまっていたから問題なく書けたのでしょうか?
それともこの書き方でどんなバイナリデータでも書けるのでしょうか?
だとしたら「Unicode」っていう必要あるか?と思うのですが、どうなのでしょうか?
785デフォルトの名無しさん
2018/02/02(金) 14:10:56.79ID:gQB0gokN バイナリの2バイトFEFFを付加するという認識が間違ってて
UnicodeのU+FEFF ZERO WIDTH NO-BREAK SPACEを
書き込むというのが正しい
UnicodeのU+FEFF ZERO WIDTH NO-BREAK SPACEを
書き込むというのが正しい
786デフォルトの名無しさん
2018/02/02(金) 14:14:50.57ID:gQB0gokN うっかり投稿してしまった
U+FEFFはUTF-16(Unicode)としてはFEFFと呼称されるが
実際にファイルに書き込まれる時はエンディアンによってバイト順序が変わる
ビッグエンディアン=FE FF
リトルエンディアン=FF FE
だからファイルを開く際にOSが先頭2バイトを見て
FE FFならビッグエンディアンのUTF-16
FF FEならリトルエンディアンのUTF-16と判断できる
U+FEFFはUTF-16(Unicode)としてはFEFFと呼称されるが
実際にファイルに書き込まれる時はエンディアンによってバイト順序が変わる
ビッグエンディアン=FE FF
リトルエンディアン=FF FE
だからファイルを開く際にOSが先頭2バイトを見て
FE FFならビッグエンディアンのUTF-16
FF FEならリトルエンディアンのUTF-16と判断できる
787デフォルトの名無しさん
2018/02/02(金) 14:47:14.31ID:OKvpFX8E788デフォルトの名無しさん
2018/02/02(金) 15:30:38.66ID:qHIAWkxQ >>785-786
FEもFFもUnicodeのコード領域に含まれたUnicode文字列なのですね
\u記法を任意のバイナリを書き込むために使うことは、できるかどうかしりませんが、
たとえできたとしても推奨はされない方法ということでしょうね
ありがとうございました
FEもFFもUnicodeのコード領域に含まれたUnicode文字列なのですね
\u記法を任意のバイナリを書き込むために使うことは、できるかどうかしりませんが、
たとえできたとしても推奨はされない方法ということでしょうね
ありがとうございました
789デフォルトの名無しさん
2018/02/02(金) 16:18:08.94ID:qHIAWkxQ FEとFFが別々の意味かと勘違いしていました
FEFFで「ZERO WIDTH NO-BREAK SPACE」という一文字なのですね
FEFFで「ZERO WIDTH NO-BREAK SPACE」という一文字なのですね
790デフォルトの名無しさん
2018/02/02(金) 22:51:14.28ID:ZJzCT+jY ついでだから、何故韓国人を殺さなければならないか、さらに説明しておく。
非韓三原則
韓国人には、助けない、教えない、関わらない
日本人はディベートが下手だが、これは場数を踏んでないからだ。
論理は出来ている。上手くなる為には後は場数を踏むしかない。
>>757から一連のレスは(内容はさておきディベートの形式は)まあまあだ。
だから、やりたいのなら気が済むまでやればいい。
それに対して、韓国人>>760は糞だ。
これはパヨク/韓国人/ヤクザの論法で、相手にしても何も得られない。
だから相手をしてはいけない。韓国人/ヤクザは無視して殺すべきだ。
違いを見分けるのは(知っていれば)簡単だ。
ディベートはある事柄に対し「どちらがいいか」を決着する物だ。
だから通常戦術は「相手の意見を否定しつつ、『自分の意見を補強』(ここ大事)する」ことになる。
自分の意見が優勢なら+、劣勢なら−としてスコアを付けると、
通常、双方の発言で0を挟んで天秤のように振れ、発言毎に、+1, -2, +2, -1 といった経路を辿る。
これに対して、パヨク/韓国人/ヤクザの論法はそうじゃない。
「相手を否定すること」だけを目的とし、自説の補強は全く行わない。
そして「対応できない相手が悪い」と連呼し、精神的に参らせるわけだ。
ヤクザやパヨクがよくやっている手だから見たことあると思うが。
この場合、上記スコアを付けるのなら、0から+方向にしか振れず、意見が広がっていかない。
典型的には「対案を出せ」と対策されるケースだ。
相手は否定するばかりで、新しい知見を出さないものだから、
結局自分の意見の範囲でしか広がらず、ブレストにもならない。
韓国人死ね
非韓三原則
韓国人には、助けない、教えない、関わらない
日本人はディベートが下手だが、これは場数を踏んでないからだ。
論理は出来ている。上手くなる為には後は場数を踏むしかない。
>>757から一連のレスは(内容はさておきディベートの形式は)まあまあだ。
だから、やりたいのなら気が済むまでやればいい。
それに対して、韓国人>>760は糞だ。
これはパヨク/韓国人/ヤクザの論法で、相手にしても何も得られない。
だから相手をしてはいけない。韓国人/ヤクザは無視して殺すべきだ。
違いを見分けるのは(知っていれば)簡単だ。
ディベートはある事柄に対し「どちらがいいか」を決着する物だ。
だから通常戦術は「相手の意見を否定しつつ、『自分の意見を補強』(ここ大事)する」ことになる。
自分の意見が優勢なら+、劣勢なら−としてスコアを付けると、
通常、双方の発言で0を挟んで天秤のように振れ、発言毎に、+1, -2, +2, -1 といった経路を辿る。
これに対して、パヨク/韓国人/ヤクザの論法はそうじゃない。
「相手を否定すること」だけを目的とし、自説の補強は全く行わない。
そして「対応できない相手が悪い」と連呼し、精神的に参らせるわけだ。
ヤクザやパヨクがよくやっている手だから見たことあると思うが。
この場合、上記スコアを付けるのなら、0から+方向にしか振れず、意見が広がっていかない。
典型的には「対案を出せ」と対策されるケースだ。
相手は否定するばかりで、新しい知見を出さないものだから、
結局自分の意見の範囲でしか広がらず、ブレストにもならない。
韓国人死ね
791デフォルトの名無しさん
2018/02/02(金) 22:52:10.85ID:ZJzCT+jY > 命名規則としてソースを出して反論して (>>760)
ディベートに持ち込み、どちらが優位か結論を出す気なら、
760自身が「命名規則としてソースを出して」自説を補強すれば、それで済む。
それをせず、相手に要求して連呼するのはヤクザのやり方。上記通りだ。
相手にしたところで、何も得られない。だから無視して殺さなければならない。
多分、韓国人流の精神的勝利法の一環なんだと思うが、
そもそも、匿名掲示板上で勝った負けたしても意味無いだろ。
ここでやるべきなのは、「その案件について、一番妥当だと思える意見は何か」であって、
それを「誰が言ったか」は価値がないと見なすから匿名なのであって。
だから、何であっても、「それについては俺はこう思う、理由はこうだから(自説の補強)」が匿名掲示板での基本スタイルで、
相手に対して優位に立つ為の「相手の意見を否定する」戦術は基本的に必要ない。
そしてどっちの意見が妥当かは読者が勝手に判断するだけ。
相手の意見を全部否定できたとしても、スコアは0には戻るが、+にはならない。
つまり、否定するだけだと引き分けには持ち込めるが、絶対に勝てない。
勝つ為に+にしたいのなら、自説の補強をするしかないんだよ。しない時点でアホ確定だ。
だから繰り返すが、
> 命名規則としてソースを出して反論して (>>760)
この発言だけでこいつは馬鹿だと分かる。相手をしても何も得られない。
勝ちたいのなら、勝手にソースを出して自説の信者が増えるよう努力すればいいだけの話だ。
それが妥当かどうかは読者が勝手に判断してくれる。俺が否定しようがしまいが、関係ない。
ということを念頭に置きつつ、ディベートしたい奴は気が済むまでやればいい。場数を踏めば上手くなる。
ここは匿名掲示版なんだから、基本戦術は、「俺はこう思う、理由はこう(自説の補強)」でよろしく。
他人の意見を否定しても勝てない。勝つ気なら、よりよい意見で「上書き」することを目指せ。
あんまり酷いようなら行司してやるよ。
とはいえ、今のところ「余計なお世話」になりそうなのはいいことだね。
韓国人死ね 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
ディベートに持ち込み、どちらが優位か結論を出す気なら、
760自身が「命名規則としてソースを出して」自説を補強すれば、それで済む。
それをせず、相手に要求して連呼するのはヤクザのやり方。上記通りだ。
相手にしたところで、何も得られない。だから無視して殺さなければならない。
多分、韓国人流の精神的勝利法の一環なんだと思うが、
そもそも、匿名掲示板上で勝った負けたしても意味無いだろ。
ここでやるべきなのは、「その案件について、一番妥当だと思える意見は何か」であって、
それを「誰が言ったか」は価値がないと見なすから匿名なのであって。
だから、何であっても、「それについては俺はこう思う、理由はこうだから(自説の補強)」が匿名掲示板での基本スタイルで、
相手に対して優位に立つ為の「相手の意見を否定する」戦術は基本的に必要ない。
そしてどっちの意見が妥当かは読者が勝手に判断するだけ。
相手の意見を全部否定できたとしても、スコアは0には戻るが、+にはならない。
つまり、否定するだけだと引き分けには持ち込めるが、絶対に勝てない。
勝つ為に+にしたいのなら、自説の補強をするしかないんだよ。しない時点でアホ確定だ。
だから繰り返すが、
> 命名規則としてソースを出して反論して (>>760)
この発言だけでこいつは馬鹿だと分かる。相手をしても何も得られない。
勝ちたいのなら、勝手にソースを出して自説の信者が増えるよう努力すればいいだけの話だ。
それが妥当かどうかは読者が勝手に判断してくれる。俺が否定しようがしまいが、関係ない。
ということを念頭に置きつつ、ディベートしたい奴は気が済むまでやればいい。場数を踏めば上手くなる。
ここは匿名掲示版なんだから、基本戦術は、「俺はこう思う、理由はこう(自説の補強)」でよろしく。
他人の意見を否定しても勝てない。勝つ気なら、よりよい意見で「上書き」することを目指せ。
あんまり酷いようなら行司してやるよ。
とはいえ、今のところ「余計なお世話」になりそうなのはいいことだね。
韓国人死ね 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
792デフォルトの名無しさん
2018/02/02(金) 22:52:57.96ID:EToJkcFD うーん、同期関数しか用意しない場合はSyncはつけるべきじゃない、と何度言ったらわかるのかな。
requireって非同期でうごくっけ?とか色々あるだろうに。
requireって非同期でうごくっけ?とか色々あるだろうに。
793デフォルトの名無しさん
2018/02/02(金) 22:53:36.67ID:ZJzCT+jY さらについでに講評しとくと、
>>777の時点で理解できないのは777がアホだから。
そこまでに十分な説明はなされているし、俺には通じてる。説明も下手ではない。
> そうすれば、ターゲットがクリックされたことを機会に、ターゲットをフリーズさせて、
> その間にドラッグするためのモジュールを読み込んでそこから再開するというようなことができる(>>773)
JavaScriptはそのように設計はされていない。
だからこれをやりたいのなら、何らかのサポートが必要なのも事実。
とはいえ、このやり方が必要かは議論になるだろう。
> だけどここまで考えてやっぱりObservableAPIが良いのかなと思い始めた (>>780)
> async世界と相性悪いねって話だよ (>>782)
はっきり言えばJavaScript含めて一般のプログラミング言語は
同期的に処理が行われる前提だからそもそも相性が悪い。
と言っても通じないだろうから簡単に説明すると、
var a = 1; // (A)
a = a + 1; // (B)
console.log(a); // (C)
とあった場合、(A)(B)(C)の順に処理されて2が出力されることを当然だと思ってるだろ?
世の中にはそうじゃない言語もある。
https://ja.wikipedia.org/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%95%E3%83%AD%E3%83%BC%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0
韓国人死ね
>>777の時点で理解できないのは777がアホだから。
そこまでに十分な説明はなされているし、俺には通じてる。説明も下手ではない。
> そうすれば、ターゲットがクリックされたことを機会に、ターゲットをフリーズさせて、
> その間にドラッグするためのモジュールを読み込んでそこから再開するというようなことができる(>>773)
JavaScriptはそのように設計はされていない。
だからこれをやりたいのなら、何らかのサポートが必要なのも事実。
とはいえ、このやり方が必要かは議論になるだろう。
> だけどここまで考えてやっぱりObservableAPIが良いのかなと思い始めた (>>780)
> async世界と相性悪いねって話だよ (>>782)
はっきり言えばJavaScript含めて一般のプログラミング言語は
同期的に処理が行われる前提だからそもそも相性が悪い。
と言っても通じないだろうから簡単に説明すると、
var a = 1; // (A)
a = a + 1; // (B)
console.log(a); // (C)
とあった場合、(A)(B)(C)の順に処理されて2が出力されることを当然だと思ってるだろ?
世の中にはそうじゃない言語もある。
https://ja.wikipedia.org/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%95%E3%83%AD%E3%83%BC%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0
韓国人死ね
794デフォルトの名無しさん
2018/02/02(金) 22:55:10.28ID:ZJzCT+jY >>782(続き)
プログラミング言語ではないが、verilogで説明すると、
assign a = b;
は b が変化するたびに再評価されて a = b が定常的には保証される。
JavaScriptで言えば
Object.observe(b, function(){ a = b;});
とほぼ同じと考えていい。
だからverilogの場合は(A)(B)(C)は独立な関数であって、実行順は規定されない。
必要なときに必要な順で評価される。この点はHaskellも同じで、例えば、
console.log(b);
assign b = a + 1;
assign a = 1;
については、JavaScriptならundefinedになるが、verilogとHaskellでは2と正しく評価される。
だからHaskellについて詳しいのなら、そっちから考えてもいいだろう。
Haskellは遅延評価でしかないが、初期値の計算方法自体はデータフロー型と似ているところがある。
君はイベントをデータフロー的に接続することを考えている。
それが効率がいいのかは俺には分からない。
ただし、一般的にverilogは難しいとされるから、その方法は流行りにくいだろう。
JavaScriptでは関数単位で非同期だが、verilogは行単位で非同期で、これについて行けない奴が多い。
JavaScriptでもそうだが、同期的に書きたがる奴はいるだろ?
結局の所、同期的に書けること自体が簡単なんだよ。そして簡単なことは重要な事なんだ。
君はJavaScriptをverilog化しようとしている。それは多分受けない。
韓国人死ね
プログラミング言語ではないが、verilogで説明すると、
assign a = b;
は b が変化するたびに再評価されて a = b が定常的には保証される。
JavaScriptで言えば
Object.observe(b, function(){ a = b;});
とほぼ同じと考えていい。
だからverilogの場合は(A)(B)(C)は独立な関数であって、実行順は規定されない。
必要なときに必要な順で評価される。この点はHaskellも同じで、例えば、
console.log(b);
assign b = a + 1;
assign a = 1;
については、JavaScriptならundefinedになるが、verilogとHaskellでは2と正しく評価される。
だからHaskellについて詳しいのなら、そっちから考えてもいいだろう。
Haskellは遅延評価でしかないが、初期値の計算方法自体はデータフロー型と似ているところがある。
君はイベントをデータフロー的に接続することを考えている。
それが効率がいいのかは俺には分からない。
ただし、一般的にverilogは難しいとされるから、その方法は流行りにくいだろう。
JavaScriptでは関数単位で非同期だが、verilogは行単位で非同期で、これについて行けない奴が多い。
JavaScriptでもそうだが、同期的に書きたがる奴はいるだろ?
結局の所、同期的に書けること自体が簡単なんだよ。そして簡単なことは重要な事なんだ。
君はJavaScriptをverilog化しようとしている。それは多分受けない。
韓国人死ね
795デフォルトの名無しさん
2018/02/02(金) 23:08:38.80ID:EToJkcFD ソースも何もなぁ。
最初に自分が張ったURLから辿れるように
https://nodejs.org/en/docs/guides/blocking-vs-non-blocking
であるように
All of the I/O methods in the Node.js standard library provide asynchronous versions, which are non-blocking,
and accept callback functions. Some methods also have blocking counterparts, which have names that end with Sync.
いくつかは、Syncで終わる、対応する非同期関数の同期版があるよ(同期関数だからSyncだとは言ってない)、とか
https://github.com/nodejs/node/issues/5
で議論されてるように、とてもライトウェイトな同期関数はもういいんじゃねえの?
みたいな話に落ち着くんじゃない?
requireの名前がrequireSyncに変わったらまた声高らかに演説してくれたら良いよ。
変わらないうちは、同期関数しかない物は別にSyncで終わる必要はないと言いたいが。
最初に自分が張ったURLから辿れるように
https://nodejs.org/en/docs/guides/blocking-vs-non-blocking
であるように
All of the I/O methods in the Node.js standard library provide asynchronous versions, which are non-blocking,
and accept callback functions. Some methods also have blocking counterparts, which have names that end with Sync.
いくつかは、Syncで終わる、対応する非同期関数の同期版があるよ(同期関数だからSyncだとは言ってない)、とか
https://github.com/nodejs/node/issues/5
で議論されてるように、とてもライトウェイトな同期関数はもういいんじゃねえの?
みたいな話に落ち着くんじゃない?
requireの名前がrequireSyncに変わったらまた声高らかに演説してくれたら良いよ。
変わらないうちは、同期関数しかない物は別にSyncで終わる必要はないと言いたいが。
796デフォルトの名無しさん
2018/02/02(金) 23:13:56.08ID:EToJkcFD >>794
verilogが常にすべて同時に動くのはそういう問題じゃないだろ。
メッセージポンプが全てって割とあるんじゃねえの?
メッセージポンプだけじゃなくてデータも一方向にしか流さないFlux的な考え方が何度めかの流行りだったんだし。
verilogが常にすべて同時に動くのはそういう問題じゃないだろ。
メッセージポンプが全てって割とあるんじゃねえの?
メッセージポンプだけじゃなくてデータも一方向にしか流さないFlux的な考え方が何度めかの流行りだったんだし。
797デフォルトの名無しさん
2018/02/02(金) 23:34:40.13ID:ZJzCT+jY798デフォルトの名無しさん
2018/02/02(金) 23:39:27.35ID:3zbIMbyp 最近書いたコード、ほとんどすべての行にawaitが入っててさながら「await地獄」だったわ。
799デフォルトの名無しさん
2018/02/03(土) 00:18:22.95ID:I3vkx3c9 >>797
そうですか、お疲れ様。
そうですか、お疲れ様。
800デフォルトの名無しさん
2018/02/03(土) 00:19:45.31ID:fnYqaptp 繰り返すが、韓国人を殺すことを躊躇するな。
お前らにも彼らの論理の稚拙さは分かるだろ。邪魔なだけだ。
なぜJavaScriptのスレにだけゴキブリ韓国人が溜まるのかはさっぱり分からないが、
とにかくこのスレを正常化する為にはまずは汚物を消毒するしかない。
お前らの議論スキルが低すぎるから、韓国人やパヨクの詭弁に騙される。
だから俺がグダグダとお前らに議論のやり方を説明している。
冷静に見て、彼らは邪魔してるだけだ。それに気付け。そしてきちんと殺しきれ。
例えば、>>795は>>742の時点で書けるレスだ。
それを書かないのは、意図的に邪魔しようとしているか、そもそも議論の能力がないか。
区別する必要はない。どちらも殺処分でいい。邪魔なだけだ。
韓国人死ね
対して>>747は、基本的に自説の開陳&補強で突っ走ってるだろ。
匿名掲示板上の議論はこれで正しい。だからまあまあの議論になる。
>>778に関しては、自分で修正できているし、説明も議論も十分上手い。まあ要らん世話だろうがね。
今のお前らは、仮にジェンヌと同じ削能力を与えられたとしても、
誰が問題なのか分からず、スレを良くできない。
これでは良いスレは持てない。民主主義と同じで、自分たちの議論能力以上のスレは持てないのだよ。
だからお前らにはまず議論上手になってもらう必要がある。
リアルの議論はリアルタイム性がありなかなか難しいが、
ここでの議論は、何度でも読み返せるし、じっくり考えられる。この点は学習には向いている。
だからまずは議論が上手くなってくれ。そして誰が問題なのか、ちゃんと見抜けるようになってくれ。
ゴキブリ韓国人マジで死ね
邪魔するだけの奴を殺すことを躊躇する必要はない
お前らにも彼らの論理の稚拙さは分かるだろ。邪魔なだけだ。
なぜJavaScriptのスレにだけゴキブリ韓国人が溜まるのかはさっぱり分からないが、
とにかくこのスレを正常化する為にはまずは汚物を消毒するしかない。
お前らの議論スキルが低すぎるから、韓国人やパヨクの詭弁に騙される。
だから俺がグダグダとお前らに議論のやり方を説明している。
冷静に見て、彼らは邪魔してるだけだ。それに気付け。そしてきちんと殺しきれ。
例えば、>>795は>>742の時点で書けるレスだ。
それを書かないのは、意図的に邪魔しようとしているか、そもそも議論の能力がないか。
区別する必要はない。どちらも殺処分でいい。邪魔なだけだ。
韓国人死ね
対して>>747は、基本的に自説の開陳&補強で突っ走ってるだろ。
匿名掲示板上の議論はこれで正しい。だからまあまあの議論になる。
>>778に関しては、自分で修正できているし、説明も議論も十分上手い。まあ要らん世話だろうがね。
今のお前らは、仮にジェンヌと同じ削能力を与えられたとしても、
誰が問題なのか分からず、スレを良くできない。
これでは良いスレは持てない。民主主義と同じで、自分たちの議論能力以上のスレは持てないのだよ。
だからお前らにはまず議論上手になってもらう必要がある。
リアルの議論はリアルタイム性がありなかなか難しいが、
ここでの議論は、何度でも読み返せるし、じっくり考えられる。この点は学習には向いている。
だからまずは議論が上手くなってくれ。そして誰が問題なのか、ちゃんと見抜けるようになってくれ。
ゴキブリ韓国人マジで死ね
邪魔するだけの奴を殺すことを躊躇する必要はない
801デフォルトの名無しさん
2018/02/03(土) 07:38:45.12ID:/s0TJm2l Electronでアプリを作っている者ですが
CSS Grid Layoutというものを知りました
今まではHTML5+CSS3で苦労してレイアウトしていたのですが
簡単にレイアウトできるCSS Grid Layoutというものがあり、
それはもうChromeで、つまりElectronで使えると。
今まで何してたんだろうと思わずにはいられません
JavaScripterといえどもCSS方面のキャッチアップも怠ってはいけないですね?
CSS Grid Layoutというものを知りました
今まではHTML5+CSS3で苦労してレイアウトしていたのですが
簡単にレイアウトできるCSS Grid Layoutというものがあり、
それはもうChromeで、つまりElectronで使えると。
今まで何してたんだろうと思わずにはいられません
JavaScripterといえどもCSS方面のキャッチアップも怠ってはいけないですね?
802デフォルトの名無しさん
2018/02/03(土) 13:03:30.64ID:9P4eyQkc Gridとかもう古い方だよ
JSer的にはこれからはHoudiniを勉強していこう
JSer的にはこれからはHoudiniを勉強していこう
803デフォルトの名無しさん
2018/02/03(土) 13:19:38.88ID:K8txVhKr 半年後・・・
Houdiniとかもう古いよ
Houdiniとかもう古いよ
804デフォルトの名無しさん
2018/02/04(日) 05:03:12.23ID:18SFip1y HoudiniはローレベルAPIだからこれが早々古くなるのは考えにくい
半年後だとまだHoudiniの一部が実装中の段階だと思う
半年後だとまだHoudiniの一部が実装中の段階だと思う
805デフォルトの名無しさん
2018/02/04(日) 11:43:44.83ID:fLIvj+46 HoudiniというのはCSSをJavaScriptで操作できるようにするものなのですね
Electronを使いはじめてから、ブラウザ対応を考えなくていい良さをしみじみと実感したので
ブラウザ間の差異が吸収されていく流れは歓迎です
ありがとうございました
Electronを使いはじめてから、ブラウザ対応を考えなくていい良さをしみじみと実感したので
ブラウザ間の差異が吸収されていく流れは歓迎です
ありがとうございました
806デフォルトの名無しさん
2018/02/04(日) 12:14:34.20ID:1FtHLig+ Houdiniって低レベルAPI用意してやったからお前ら自分たちで好きなライブラリ作って勝手にやれよ、という標準団体からのメッセージだから
このスレにもその内難しくてセンシティブな低レベルAPIの質問と、誰もが初めて聞くようなマイナーライブラリの質問が増えてくるんだろうな
JSは色々自由な所が多いが、どういう構文使ってどういうAPI使うかは、標準やブラウザの実装状況から判断すれば良かった
でもこれからはライブラリの作者とユーザーが考えないといけなくなりそうだね
このスレにもその内難しくてセンシティブな低レベルAPIの質問と、誰もが初めて聞くようなマイナーライブラリの質問が増えてくるんだろうな
JSは色々自由な所が多いが、どういう構文使ってどういうAPI使うかは、標準やブラウザの実装状況から判断すれば良かった
でもこれからはライブラリの作者とユーザーが考えないといけなくなりそうだね
807デフォルトの名無しさん
2018/02/04(日) 12:30:29.21ID:QNMeWZU4 JSの世界ってそんな感じだよな
標準で提供するのは低レベルAPIです。
あとはjQueryなり好きなライブラリを作って
それを使ってください
標準で提供するのは低レベルAPIです。
あとはjQueryなり好きなライブラリを作って
それを使ってください
808デフォルトの名無しさん
2018/02/04(日) 16:36:41.51ID:18SFip1y 最終的にはオレオレCSSの定義からペイント、レイアウトまでJSで行えるのがHoudiniだから
jQuery時代のラッパーライブラリとは次元が違ってくるとは思うけどな
jQuery時代のラッパーライブラリとは次元が違ってくるとは思うけどな
809デフォルトの名無しさん
2018/02/04(日) 16:39:21.65ID:Aaw/PB9H > オレオレCSSの定義からペイント、レイアウトまで
ん? それってレンダリング周りしかできないってこと?
じゃあDOM操作のjQueryとはかぶらないのか
ん? それってレンダリング周りしかできないってこと?
じゃあDOM操作のjQueryとはかぶらないのか
810デフォルトの名無しさん
2018/02/04(日) 19:33:02.43ID:18SFip1y >>809
その通り
レイアウトを担当する所謂jQueryライブラリには関係があるかも知れないが、本体とは関係ない
ただ仕様群のうちTyped OMだけは幅広いユーザーやライブラリに影響もとい恩恵がある
その通り
レイアウトを担当する所謂jQueryライブラリには関係があるかも知れないが、本体とは関係ない
ただ仕様群のうちTyped OMだけは幅広いユーザーやライブラリに影響もとい恩恵がある
811デフォルトの名無しさん
2018/02/05(月) 11:43:34.20ID:rrC2uMN7 ReactとTypeScriptはHTMLに型を与えてくれた。
IDE経由で必要なプロパティが分かるのはほんとありがたい。
cssもそういう方向に進んでくれたらありがたい
IDE経由で必要なプロパティが分かるのはほんとありがたい。
cssもそういう方向に進んでくれたらありがたい
812デフォルトの名無しさん
2018/02/05(月) 14:03:07.36ID:Ubmn5+B6 値を文字列として読み書きするのが.innerHTMlのように時代遅れになる日も近いな
813デフォルトの名無しさん
2018/02/06(火) 12:17:27.83ID:xnYBrrOR 上で話題になってたことと関連して
今年はロックやスケジューリング機能が入ったマルチスレッドDOMの話が進みそう
今非同期を使い倒さないといけないのって、結局UIスレッドが1つでメインスクリプトはそれを妨害しないように動かないといけないからで
Houdiniと一緒にDOMもパーツ毎に別スレッドで制御できれば、ただ同期的に書けばいいだけになるよね
今年はロックやスケジューリング機能が入ったマルチスレッドDOMの話が進みそう
今非同期を使い倒さないといけないのって、結局UIスレッドが1つでメインスクリプトはそれを妨害しないように動かないといけないからで
Houdiniと一緒にDOMもパーツ毎に別スレッドで制御できれば、ただ同期的に書けばいいだけになるよね
814デフォルトの名無しさん
2018/02/06(火) 17:27:24.12ID:xat7U2Z1815デフォルトの名無しさん
2018/02/06(火) 20:43:33.16ID:990+1fTh マルチスレッドDOMってどこで検討が進んでるの?
816デフォルトの名無しさん
2018/02/06(火) 23:49:08.32ID:8DjF9uYT マルチスレッド自体はWorkerや非同期XHR、タイマーなどでもできるが
マルチスレッドDOMって何ぞ?
マルチスレッドDOMって何ぞ?
817デフォルトの名無しさん
2018/02/07(水) 00:29:03.84ID:v+xEfL1+818デフォルトの名無しさん
2018/02/07(水) 00:51:26.45ID:58msOu+q 読んでないけど、ページを論理的に分割する方法があれば
マルチスレッドDOMは実現できるでしょ?
コンポーネントに分割して外部とやり取りする
インターフェース経由でしかアクセス出来ないようにすれば良い
マルチスレッドDOMは実現できるでしょ?
コンポーネントに分割して外部とやり取りする
インターフェース経由でしかアクセス出来ないようにすれば良い
819816
2018/02/07(水) 07:05:53.98ID:ZpMnd+tU メニューと本文を別々にロードするようなものなら、XHRを2つ使えば可能なんだけど
マルチスレッドDOMはJSでやるものではなくブラウザの実装の問題じゃないのかな
たしかにテーブルや複雑な段組み表示で描画が待たされるけど
上部のレイアウトが決まらないと下部の描画ができないのはどうしようもない
擬似フレーム、レイヤー、サイドバーを別スレッドで描画するというのならできそうではあるけど
(ブラウザを作るのは人ごとなので、言うだけなら何とでも言える)
iframeで分割してpostMessage()するのは現行規格でもできるけどね
マルチスレッドDOMはJSでやるものではなくブラウザの実装の問題じゃないのかな
たしかにテーブルや複雑な段組み表示で描画が待たされるけど
上部のレイアウトが決まらないと下部の描画ができないのはどうしようもない
擬似フレーム、レイヤー、サイドバーを別スレッドで描画するというのならできそうではあるけど
(ブラウザを作るのは人ごとなので、言うだけなら何とでも言える)
iframeで分割してpostMessage()するのは現行規格でもできるけどね
820デフォルトの名無しさん
2018/02/07(水) 10:57:44.93ID:aUUcrJfq rustを使って開発してるFirefoxの
レンダリングエンジンはマルチコアに最適化してるんだっけ
ということはマルチスレッドでDOMが動いてる?
とりあえず最終的な描画部分はマルチスレッドになったとしてもjs側はシングルスレッドのままな気がする。
そもそも描画系以外の処理はserviceWorkerとか使えばマルチスレッドぽくなるんだからそれで良くないか?
レンダリングエンジンはマルチコアに最適化してるんだっけ
ということはマルチスレッドでDOMが動いてる?
とりあえず最終的な描画部分はマルチスレッドになったとしてもjs側はシングルスレッドのままな気がする。
そもそも描画系以外の処理はserviceWorkerとか使えばマルチスレッドぽくなるんだからそれで良くないか?
821デフォルトの名無しさん
2018/02/07(水) 18:14:47.81ID:v+xEfL1+ レイアウトとレンダリングに関してはすでにHoudiniで定義されている
Workerはオーバーヘッドが大きいのでWorkletという
レンダリングエンジンの各作業スレッドの拡張ポイントとしてJSを動かす仕組みで行う
あとある部分のレイアウトが完全に決まっていなくてもとりあえずの値で確定させて描画ができる
画像が読み込み中の場合を考えたらいい
Workerはオーバーヘッドが大きいのでWorkletという
レンダリングエンジンの各作業スレッドの拡張ポイントとしてJSを動かす仕組みで行う
あとある部分のレイアウトが完全に決まっていなくてもとりあえずの値で確定させて描画ができる
画像が読み込み中の場合を考えたらいい
822デフォルトの名無しさん
2018/02/07(水) 20:15:34.39ID:ZpMnd+tU 単にマルチスレッドで複数の要素をアニメーションさせたいだけであれば、
アニメーションさせたい要素の数だけタイマーを生成すれば可能かと
(ただしJSアニメーションはCSSアニメーションに比べて処理速度が遅い)
シングルスレッドのアニメーション(タイマーを1つ生成)
function anim_all(){
要素Aをアニメーション;
要素Bをアニメーション;
requestAnimationFrame(anim_all);
}
requestAnimationFrame(anim_all);
マルチスレッドのアニメーション(タイマーを2つ生成)
function anim_a(){
要素Aをアニメーション;
requestAnimationFrame(anim_a);
}
function anim_b(){
要素Bをアニメーション;
requestAnimationFrame(anim_b);
}
requestAnimationFrame(anim_b);
アニメーションさせたい要素の数だけタイマーを生成すれば可能かと
(ただしJSアニメーションはCSSアニメーションに比べて処理速度が遅い)
シングルスレッドのアニメーション(タイマーを1つ生成)
function anim_all(){
要素Aをアニメーション;
要素Bをアニメーション;
requestAnimationFrame(anim_all);
}
requestAnimationFrame(anim_all);
マルチスレッドのアニメーション(タイマーを2つ生成)
function anim_a(){
要素Aをアニメーション;
requestAnimationFrame(anim_a);
}
function anim_b(){
要素Bをアニメーション;
requestAnimationFrame(anim_b);
}
requestAnimationFrame(anim_b);
823デフォルトの名無しさん
2018/02/07(水) 20:42:03.07ID:v+xEfL1+ Animationはまた別個にWorklet仕様がある
https://wicg.github.io/animation-worklet/
https://wicg.github.io/animation-worklet/
824デフォルトの名無しさん
2018/02/07(水) 20:45:47.82ID:ZTCS93cG ついでだから聞くんだけどxhrをworkerで動かしてるサンプルがあったんだけど
あれって普通にxhr使うより早くなんの?
あれって普通にxhr使うより早くなんの?
825デフォルトの名無しさん
2018/02/08(木) 02:27:56.97ID:VQ9z9vC7 ファイルを取得するとこまでは殆ど関係ないけど
それを使って重い処理をWorkerでするのなら
取得もWorkerでするのが普通でしょ
それを使って重い処理をWorkerでするのなら
取得もWorkerでするのが普通でしょ
826デフォルトの名無しさん
2018/02/12(月) 00:04:36.56ID:pR3wczEv JavaScriptで大文字と小文字の使い分けをどうしているのかが最大の謎
たとえばJavaなら
Hoge hoge = new Hoge();
ならば、「hoge」はインスタンス、そして「Hoge」はクラス名
だと分かる。
ところが、JSの場合、
var hoge = new Hoge();
のとき「Hoge」はクラスではなくこちらも「オブジェクト」だから、
「hoge」も「オブジェクト」「Hoge」も「オブジェクト」じゃん?
だけど片方は大文字で片方は小文字だから結局「頭が大文字な変数」と
「頭が小文字な変数」の何を見分けていいかわからなくなる。
「hoge」があったときにこれがオブジェクトなのか関数なのか
プロトタイプなのかコンストラクタなのか一体何者なのかさっぱり分からん。
たとえばJavaなら
Hoge hoge = new Hoge();
ならば、「hoge」はインスタンス、そして「Hoge」はクラス名
だと分かる。
ところが、JSの場合、
var hoge = new Hoge();
のとき「Hoge」はクラスではなくこちらも「オブジェクト」だから、
「hoge」も「オブジェクト」「Hoge」も「オブジェクト」じゃん?
だけど片方は大文字で片方は小文字だから結局「頭が大文字な変数」と
「頭が小文字な変数」の何を見分けていいかわからなくなる。
「hoge」があったときにこれがオブジェクトなのか関数なのか
プロトタイプなのかコンストラクタなのか一体何者なのかさっぱり分からん。
827デフォルトの名無しさん
2018/02/12(月) 00:17:33.53ID:uxSxkNmu >>826
実体が○○だから、こうするって考え方は初心者だよ
どうしたいのか、どういう意図を込めたいのか、その考えをコードに反映させる。
と言っても意味がわからないだろうな。
古いGoogleのコーディング規約だがその一節にこういうものが有る
http://cou929.nu/data/google_javascript_style_guide/#constant-values
> 一定で不変であることを意図した値には CONSTANT_VALUE_CASE のように定数としての名前をつけます.
> 加えて, すべてを大文字にし単語をアンダースコアで区切るようにすることは
> @const (その値は overwrite できない) という意味にもなります..
これが書かれた当時はconstというものはなく、実体は只の変数にすぎない。
只の変数に「定数である」という意図を込めるために、全部大文字にするわけだ
Hogeも同じ。実体が関数かオブジェクトかってのは関係ない。
例え実体は関数やオブジェクトであっても、それ(Hoge)にクラスだよという
意図を込めるために大文字で始める。
ならばそれを見た人は、Hogeをクラス名だと考えるようにしないといけない
(もちろんコーディング規約次第だが)
Hogeをどのように作り出すかは関係なく、大文字で始まっているのだからそれはクラス
逆に言えば、クラスとして見せたいから大文字で始める。そういう意図を込めるわけだよ。
コードっていうのは自分の考えを反映させて書くもの。
コードがどうなっているかではなく、自分がどうしたいか。
そして読むときは書いた人の意図を読み取れるようなろう。
実体が何かで考えているうちはまだまだ初心者
> 「hoge」があったときにこれがオブジェクトなのか関数なのか
一般的にはhogeが名詞ならオブジェクト。動詞なら関数。
実体が○○だから、こうするって考え方は初心者だよ
どうしたいのか、どういう意図を込めたいのか、その考えをコードに反映させる。
と言っても意味がわからないだろうな。
古いGoogleのコーディング規約だがその一節にこういうものが有る
http://cou929.nu/data/google_javascript_style_guide/#constant-values
> 一定で不変であることを意図した値には CONSTANT_VALUE_CASE のように定数としての名前をつけます.
> 加えて, すべてを大文字にし単語をアンダースコアで区切るようにすることは
> @const (その値は overwrite できない) という意味にもなります..
これが書かれた当時はconstというものはなく、実体は只の変数にすぎない。
只の変数に「定数である」という意図を込めるために、全部大文字にするわけだ
Hogeも同じ。実体が関数かオブジェクトかってのは関係ない。
例え実体は関数やオブジェクトであっても、それ(Hoge)にクラスだよという
意図を込めるために大文字で始める。
ならばそれを見た人は、Hogeをクラス名だと考えるようにしないといけない
(もちろんコーディング規約次第だが)
Hogeをどのように作り出すかは関係なく、大文字で始まっているのだからそれはクラス
逆に言えば、クラスとして見せたいから大文字で始める。そういう意図を込めるわけだよ。
コードっていうのは自分の考えを反映させて書くもの。
コードがどうなっているかではなく、自分がどうしたいか。
そして読むときは書いた人の意図を読み取れるようなろう。
実体が何かで考えているうちはまだまだ初心者
> 「hoge」があったときにこれがオブジェクトなのか関数なのか
一般的にはhogeが名詞ならオブジェクト。動詞なら関数。
828デフォルトの名無しさん
2018/02/12(月) 10:56:03.12ID:Bjvkgrzm 馬鹿は答えるな。node.jsのwsモジュールでws.oncloseに関数を代入するやりかたと
ws.on('close',callback)を使うやりかたのなにが違うのか分かりません。
教えてください。
ws.on('close',callback)を使うやりかたのなにが違うのか分かりません。
教えてください。
829デフォルトの名無しさん
2018/02/12(月) 11:26:10.44ID:uxSxkNmu 答えたやつは馬鹿
830デフォルトの名無しさん
2018/02/13(火) 10:28:09.45ID:ckcHf5yp CSSエンジンをJavaScriptで組んだものってありますか?
831デフォルトの名無しさん
2018/02/13(火) 11:04:35.19ID:b5aNFBbA CSSエンジンってなんや?
どこからどこまでをさすんや?
どこからどこまでをさすんや?
832デフォルトの名無しさん
2018/02/13(火) 11:27:41.20ID:ckcHf5yp HTMLとCSSをレンダリングするようなやつです
floatのアルゴリズムを知りたいのです
floatのアルゴリズムを知りたいのです
833デフォルトの名無しさん
2018/02/13(火) 14:03:13.60ID:Smr8o+jz じゃPhantomJS
834デフォルトの名無しさん
2018/02/13(火) 16:18:30.17ID:xpZzv5qK SPAを作る時にページが存在しない場合にをどうやって404を返せばいいんでしょうか?
現状
https://support.google.com/webmasters/answer/181708?hl=ja
に示すみたいにソフト404エラーみたいになってるんですが
SPAでステータスコードを返す方法がよくわからないんです。
現状
https://support.google.com/webmasters/answer/181708?hl=ja
に示すみたいにソフト404エラーみたいになってるんですが
SPAでステータスコードを返す方法がよくわからないんです。
835デフォルトの名無しさん
2018/02/13(火) 17:42:13.75ID:Smr8o+jz836デフォルトの名無しさん
2018/02/13(火) 19:42:45.41ID:xpZzv5qK >>835
つまり404は普通にwebPageとして作ってリダイレクトしろよと。
つまり404は普通にwebPageとして作ってリダイレクトしろよと。
837デフォルトの名無しさん
2018/02/14(水) 15:28:31.17ID:J4+KYKOE それは現実的じゃないと思うな
直リンクとSPAでの遷移が違うと不自然だし
SPAでの遷移で存在しない場合リダイレクトするのも不自然だし
今だとServiceWorkerとかもあるし
直リンクとSPAでの遷移が違うと不自然だし
SPAでの遷移で存在しない場合リダイレクトするのも不自然だし
今だとServiceWorkerとかもあるし
838デフォルトの名無しさん
2018/02/14(水) 17:37:54.60ID:H2gVyVCN ソフト404でいいと思うけどな。googleが悪い。
839デフォルトの名無しさん
2018/02/14(水) 18:57:53.49ID:D3O9gfhg なんでもいい!ユーザーはそんなの気にしてない!
840デフォルトの名無しさん
2018/02/14(水) 19:42:05.87ID:JUbcUui+ そもそも誰が誰に404を返すようにしたいのか
841デフォルトの名無しさん
2018/02/15(木) 00:01:48.36ID:6MYE6XLg842デフォルトの名無しさん
2018/02/15(木) 00:56:50.81ID:YSj3CECL SPAとしての決まりはあんまりない感じなんですかね?stackoverflowを見るとgoogleがリダイレクトで404で飛ばすようにサービス作ってるからそれでいいのでは?という話でした。
843デフォルトの名無しさん
2018/02/15(木) 02:21:06.62ID:+9FZRT3l SPAっていうのもピンきりだから
mobile jQueryを使ったりしてただ単にリクエスト量削減のオマケなら404を返せばいいし、
アプリケーションと呼ぶようなものならそうしなければいい
mobile jQueryを使ったりしてただ単にリクエスト量削減のオマケなら404を返せばいいし、
アプリケーションと呼ぶようなものならそうしなければいい
844デフォルトの名無しさん
2018/02/15(木) 06:30:29.99ID:+9FZRT3l >>842
Googleの場合色んな検索窓があるページがSPAだけど、
考え方によっちゃヒットの無いキーワードでの検索っていうのは
404に当たるものだけど返してないよね
逆にそういう1つのアプリケーション内で
404にリダイレクトせざるを得ない事なんて考えにくいよね
Googleの場合色んな検索窓があるページがSPAだけど、
考え方によっちゃヒットの無いキーワードでの検索っていうのは
404に当たるものだけど返してないよね
逆にそういう1つのアプリケーション内で
404にリダイレクトせざるを得ない事なんて考えにくいよね
845デフォルトの名無しさん
2018/02/15(木) 06:57:50.10ID:6MYE6XLg リダイレクトは300番台だぞ
846デフォルトの名無しさん
2018/02/15(木) 07:02:37.33ID:6MYE6XLg 検索結果が0件であることと、検索結果ページが存在しないことは別物
847デフォルトの名無しさん
2018/02/15(木) 08:11:26.78ID:CMBfD/sb848デフォルトの名無しさん
2018/02/15(木) 08:55:12.72ID:8SUVFt/S849デフォルトの名無しさん
2018/02/15(木) 10:01:16.08ID:6MYE6XLg850デフォルトの名無しさん
2018/02/15(木) 10:04:09.93ID:8SUVFt/S んで、質問内容は、リンクを辿った先のページがない時に
404を返すにはどうするかって話だろ
404を返すにはどうするかって話だろ
851デフォルトの名無しさん
2018/02/15(木) 10:45:25.62ID:6MYE6XLg852デフォルトの名無しさん
2018/02/15(木) 10:45:55.81ID:1CgTZOOO 犬がたくさん出てくる映画は?
853デフォルトの名無しさん
2018/02/15(木) 12:40:11.35ID:8SUVFt/S854デフォルトの名無しさん
2018/02/15(木) 12:59:26.53ID:U3TCQJmI 404に独立したページが存在したらそれってSPAじゃなくない?
855デフォルトの名無しさん
2018/02/15(木) 13:05:22.69ID:8SUVFt/S 独立したページ?それは曖昧な言い方だな
SPAっていうのは、一つのページ(HTML+JavaScript)が
複数のURLを持っているものなんだよ。
もちろん一つのURLだけを持つのもありだが、
それだとSEO的にあまり良くないからな
一見複数のページが有るように見えても実際は
一つのページになってるように作るのがSPAだ
SPAっていうのは、一つのページ(HTML+JavaScript)が
複数のURLを持っているものなんだよ。
もちろん一つのURLだけを持つのもありだが、
それだとSEO的にあまり良くないからな
一見複数のページが有るように見えても実際は
一つのページになってるように作るのがSPAだ
856デフォルトの名無しさん
2018/02/15(木) 13:10:14.71ID:1CgTZOOO > 複数のURLを持っているものなんだよ。
持ってないよ。複数のURLどれでも同じページ返してjsでパスに応じて内容切り替えてるだけだよ。
持ってないよ。複数のURLどれでも同じページ返してjsでパスに応じて内容切り替えてるだけだよ。
857デフォルトの名無しさん
2018/02/15(木) 13:16:17.44ID:8SUVFt/S > 複数のURLどれでも〜内容切り替えてるだけだよ。
それ複数のURL持ってますねwww
それ複数のURL持ってますねwww
858デフォルトの名無しさん
2018/02/15(木) 13:28:35.51ID:1CgTZOOO ああそういう意味か
859デフォルトの名無しさん
2018/02/15(木) 13:34:00.16ID:8SUVFt/S で、話を戻すと
複数のURLどれでも同じページを返す・・・
ということは
複数のURL(存在しないページ含む)のどれでも同じページを返す
から単純にやったら404にはならないということ
URL直接入力だったらサーバーが介在する余地があるからまだどうにかなるが、
存在しないページに対してSPAからアクセスした時に
そのページ(URL)をどうやって404にするのか?という話がでてくる
複数のURLどれでも同じページを返す・・・
ということは
複数のURL(存在しないページ含む)のどれでも同じページを返す
から単純にやったら404にはならないということ
URL直接入力だったらサーバーが介在する余地があるからまだどうにかなるが、
存在しないページに対してSPAからアクセスした時に
そのページ(URL)をどうやって404にするのか?という話がでてくる
860デフォルトの名無しさん
2018/02/15(木) 15:32:52.51ID:9pb3TF19 >>849
別もんじゃないよ
動的なアプリケーションの場合
所在地としてのURLとコンテンツの在り処には最早関係がない
逆に別にx.cgiが存在してもそれに対するクエリがコンテンツ検索のためのものなら
場合に応じてcgiが404を返したって問題ないんだから
Googleの挙動だって最初期の論文や日記くらいしかなかったWebではありえないことなのよ
今や重要なのは定義でなくどう使われてるかの意図
別もんじゃないよ
動的なアプリケーションの場合
所在地としてのURLとコンテンツの在り処には最早関係がない
逆に別にx.cgiが存在してもそれに対するクエリがコンテンツ検索のためのものなら
場合に応じてcgiが404を返したって問題ないんだから
Googleの挙動だって最初期の論文や日記くらいしかなかったWebではありえないことなのよ
今や重要なのは定義でなくどう使われてるかの意図
861デフォルトの名無しさん
2018/02/15(木) 15:43:52.20ID:xvxGqpCI ひとまず
https://stackoverflow.com/questions/37334220/how-do-i-return-a-http-404-status-code-from-a-spa
上記リンクの情報に従うと
404 page にリダイレクトさせることでステータスコードを返すって方法しかない
ということでいいでしょうか?
js側でステータスコードを返したようにブラウザに認識させる方法とか
あるのかなーと期待していたんですが、、、
https://stackoverflow.com/questions/37334220/how-do-i-return-a-http-404-status-code-from-a-spa
上記リンクの情報に従うと
404 page にリダイレクトさせることでステータスコードを返すって方法しかない
ということでいいでしょうか?
js側でステータスコードを返したようにブラウザに認識させる方法とか
あるのかなーと期待していたんですが、、、
862デフォルトの名無しさん
2018/02/15(木) 15:55:44.81ID:8SUVFt/S 俺としてはまあ答はでてるんだが
ほかの人、もう少し頑張ってみてくれw
ほかの人、もう少し頑張ってみてくれw
863デフォルトの名無しさん
2018/02/15(木) 16:33:58.37ID:ilr6oKXN どうせSEOのために仕方なくでしょ。
ソフト404でいいと思うんだがSPA推してるくせにgoogleマジなにやってんの。
ソフト404でいいと思うんだがSPA推してるくせにgoogleマジなにやってんの。
864デフォルトの名無しさん
2018/02/15(木) 17:23:29.73ID:6MYE6XLg サーバー側のCGIが404を返すことは何の問題もない
PATH_INFOで動作しているCGIは404や300番台も返すことがある
例えば、 ttps://www.amazon.co.jp/dp/abcdefg
ブラウザ内部では200と404を区別してるだろうけど、見た目には200と404の違いはない
404を返す方法じゃなくて、返ってきた404コードをどのように扱うかは
SPAに限ったことではなく、Ajax全般に言えることだが
フレームワークはフレームワークにその書き方が用意されてなかったらどうにもならんだろ
生のJavascriptの場合
if( xhr.status === 200 ){
}else if( xhr.status === 404 ){
//たとえばalert()して終わり
//responseTextやあらかじめ用意しておいたエラーページを表示してpushState()
//locationでそのURLに移動する
}
自分はlocationで移動する方法はあまりいい方法とは思えんけどな
PATH_INFOで動作しているCGIは404や300番台も返すことがある
例えば、 ttps://www.amazon.co.jp/dp/abcdefg
ブラウザ内部では200と404を区別してるだろうけど、見た目には200と404の違いはない
404を返す方法じゃなくて、返ってきた404コードをどのように扱うかは
SPAに限ったことではなく、Ajax全般に言えることだが
フレームワークはフレームワークにその書き方が用意されてなかったらどうにもならんだろ
生のJavascriptの場合
if( xhr.status === 200 ){
}else if( xhr.status === 404 ){
//たとえばalert()して終わり
//responseTextやあらかじめ用意しておいたエラーページを表示してpushState()
//locationでそのURLに移動する
}
自分はlocationで移動する方法はあまりいい方法とは思えんけどな
865デフォルトの名無しさん
2018/02/15(木) 18:15:02.91ID:aKcpIhES SPAでも、ルーターで判定するだけじゃないの?
俺はそうしてるけど。
SPAなんだから、誰がどうその404と言う情報が欲しいかというと、多分エンドユーザだよ。
となると、ごく当たり前のように404に相当するコンポーネントを出すしか出来ないだろ。
それが正しく404として扱われてるか、はGoogle Search Consoleで確か確認できる。
むしろ404として扱われていないかを確認するためにも、Search Consoleは見るべきかと。
俺はそうしてるけど。
SPAなんだから、誰がどうその404と言う情報が欲しいかというと、多分エンドユーザだよ。
となると、ごく当たり前のように404に相当するコンポーネントを出すしか出来ないだろ。
それが正しく404として扱われてるか、はGoogle Search Consoleで確か確認できる。
むしろ404として扱われていないかを確認するためにも、Search Consoleは見るべきかと。
866デフォルトの名無しさん
2018/02/15(木) 19:02:16.42ID:6MYE6XLg >>864 に書いた
> //たとえばalert()して終わり
> //responseTextやあらかじめ用意しておいたエラーページを表示してpushState()
> //locationでそのURLに移動する
この部分の書き方にどんな種類があるのかを知りたいのではなく、
サーバーは404を返したけど、クライアント(フレームワーク・ルーター)が反応しないということであれば
フレームワーク・ルーターには
if( xhr.status === 200 ){
}
これしか書かれてないわけだから、
あきらめて200で処理する(いわゆるソフト404)か、フレームワーク・ルーターを作り直せという返事になる
> //たとえばalert()して終わり
> //responseTextやあらかじめ用意しておいたエラーページを表示してpushState()
> //locationでそのURLに移動する
この部分の書き方にどんな種類があるのかを知りたいのではなく、
サーバーは404を返したけど、クライアント(フレームワーク・ルーター)が反応しないということであれば
フレームワーク・ルーターには
if( xhr.status === 200 ){
}
これしか書かれてないわけだから、
あきらめて200で処理する(いわゆるソフト404)か、フレームワーク・ルーターを作り直せという返事になる
867デフォルトの名無しさん
2018/02/15(木) 19:49:37.33ID:lFngoqEs868デフォルトの名無しさん
2018/02/15(木) 19:53:50.40ID:aKcpIhES >>866
サーバが返すも何も、SPAで、fetchのレスポンスがなんて話なら、そりゃアプリケーション内部の話であってユーザには全く関係が無いかと。
そんな台所事情でエラーメッセージを出すのは404でもなんでもなく、デスクトップアプリで予期できるexceptionを吐いたときにexceptionをそのまま出力しちゃうぐらい悪手では?
かつ、少なくとも、その場合はサーバ側のロジックも結果なしという結果、にすべきなんじゃないかな。
本当にそのリソース(API)がデグレなりクライアントのキャッシュなりでバージョン不一致なりの理由で存在しない場合との切り分けが難しくなる。
RESTのAPIだから、なんて場合は404を返したいのはわかるんだけど、危険な原理主義ではないかなぁ。
サーバが返すも何も、SPAで、fetchのレスポンスがなんて話なら、そりゃアプリケーション内部の話であってユーザには全く関係が無いかと。
そんな台所事情でエラーメッセージを出すのは404でもなんでもなく、デスクトップアプリで予期できるexceptionを吐いたときにexceptionをそのまま出力しちゃうぐらい悪手では?
かつ、少なくとも、その場合はサーバ側のロジックも結果なしという結果、にすべきなんじゃないかな。
本当にそのリソース(API)がデグレなりクライアントのキャッシュなりでバージョン不一致なりの理由で存在しない場合との切り分けが難しくなる。
RESTのAPIだから、なんて場合は404を返したいのはわかるんだけど、危険な原理主義ではないかなぁ。
869デフォルトの名無しさん
2018/02/15(木) 20:57:04.69ID:6MYE6XLg >>867
HTTPヘッダの404を見て404で登録される
https://support.google.com/webmasters/answer/35120?hl=ja
URLエラーのタイプ、一般的なURLエラーのソフト404の説明書きを参考
ただ、フレームワークが200しかサポートしていない、にもかかわらず404で処理したい
というのであれば、まあ、locationしかないんじゃないかなと思うんだけど
検索エンジンに、SPAのURLとlocationでジャンプしたURLが同一だということを理解できるのかなぁ
>>868
ブログにニュース記事へのリンクを張った後に、
ニュース記事を削除した場合に404を返すようにしている
Google SEO的には410のほうがいいかもしれないけど
ページを追加、削除し、そこにリンクを張った過去のブログを更新しないことなんかはよくあることだし、制作時に対応できない
検索結果0件(コンテンツのない、またはSEOの重要度が非常に低いURLが存在する)のと、
URLそのものが存在しないのとは区別すべきというのが自分の考え方だから
HTTPヘッダの404を見て404で登録される
https://support.google.com/webmasters/answer/35120?hl=ja
URLエラーのタイプ、一般的なURLエラーのソフト404の説明書きを参考
ただ、フレームワークが200しかサポートしていない、にもかかわらず404で処理したい
というのであれば、まあ、locationしかないんじゃないかなと思うんだけど
検索エンジンに、SPAのURLとlocationでジャンプしたURLが同一だということを理解できるのかなぁ
>>868
ブログにニュース記事へのリンクを張った後に、
ニュース記事を削除した場合に404を返すようにしている
Google SEO的には410のほうがいいかもしれないけど
ページを追加、削除し、そこにリンクを張った過去のブログを更新しないことなんかはよくあることだし、制作時に対応できない
検索結果0件(コンテンツのない、またはSEOの重要度が非常に低いURLが存在する)のと、
URLそのものが存在しないのとは区別すべきというのが自分の考え方だから
870デフォルトの名無しさん
2018/02/15(木) 21:03:46.64ID:fKqsgF6j どんなURLでも同じページをサーバーが返して
そのページがデータをフェッチして表示するようなもので
クローラからのアクセスの時のみ404レスポンスを返すのはありなのか?
Googleは特別扱いするなとか言いつつ、クローラを考慮した仕様も出してるから
どうしたらいいのか難しい
そのページがデータをフェッチして表示するようなもので
クローラからのアクセスの時のみ404レスポンスを返すのはありなのか?
Googleは特別扱いするなとか言いつつ、クローラを考慮した仕様も出してるから
どうしたらいいのか難しい
871デフォルトの名無しさん
2018/02/15(木) 21:05:43.22ID:fKqsgF6j つまり検索エンジンに載せたくないという理由で
実際ページが表示できるかに関わらず404を返していいのかということ
SPA用のスマートな方法は用意されているのだろうか
実際ページが表示できるかに関わらず404を返していいのかということ
SPA用のスマートな方法は用意されているのだろうか
872デフォルトの名無しさん
2018/02/16(金) 09:40:25.43ID:kN3UBOMP >>869
自分が言いたいのはURLを動的に解釈している場合は多かれ少なかれ
URLはコンテンツの静的な住所という大原則からは外れてしまっているということ
つまり「URLそのものが存在しない」という判定が自明でなくなる
自分が言いたいのはURLを動的に解釈している場合は多かれ少なかれ
URLはコンテンツの静的な住所という大原則からは外れてしまっているということ
つまり「URLそのものが存在しない」という判定が自明でなくなる
873デフォルトの名無しさん
2018/02/16(金) 10:54:49.83ID:ijGXrmYh さて、むそろそろ俺の登場かな?
この問題はねSPAだからといってパフォーマンスさげないよね?
無駄なことはしないよね?という話で解決するんだよ。
例えば、http://example.com/foo/1 とかにアクセスした時、
index.html に30x のリダイレクトしたりはしない
なぜかって? リダイレクトしたらパフォーマンス落ちるでしょ?
つまりね。PATH_INFO(でいいかな?)の情報を持った状態で
サーバーサイドアプリが呼び出されるんだよ
そこでサーバーサイド側の仕組みを使って404を返せばいい
SPAの話なのに何を言ってるのと思うかもしれないけど、
ちゃんとしたSPAっていうのはF5を押しても同じ画面が表示されるし
URLも http://example.com/foo/1 のままになるもの
SPAは/foo/1のデータをAjaxで読み込むものだと思ってるかもしれないけど、
それは他のページから辿った場合で、直接 http://example.com/foo/1 に
アクセスした場合は、JavaScriptで取ってくるそのデータを最初からHTMLに埋め込むものなんだよ。
なぜかって? ページアクセスして表示されてからデータを取りに行くとパフォーマンスさがるだろ?
だからSPAは基本Ajaxでデータを取るのは間違ってないんだけど、最初のページに限っては
最初からHTMLに埋め込んでおく。埋め込むことができるってことは、
データが見つからない時に404を返すことも容易
そして検索エンジンとかは、基本的にAjaxを使ってデータを読んだりしない。
読むことも有るかもしれないけど、Ajaxリクエスト(Content-Type: application/json)として
そのページを読み込むことはないだろう。だからいま問題にしているどうやって404を返すか?という
話は実は当てはまらない。検索エンジンは http://example.com/foo/1 を直接読み込むのだから
Ajaxによるリクエスト、つまり別ページを読み込んでからSPAの処理としてページを読み込む場合は
そのリクエストを404にすればよい。たしかにページ自体は404にはならないんだけどね。
でも検索エンジンには関係ない話
この問題はねSPAだからといってパフォーマンスさげないよね?
無駄なことはしないよね?という話で解決するんだよ。
例えば、http://example.com/foo/1 とかにアクセスした時、
index.html に30x のリダイレクトしたりはしない
なぜかって? リダイレクトしたらパフォーマンス落ちるでしょ?
つまりね。PATH_INFO(でいいかな?)の情報を持った状態で
サーバーサイドアプリが呼び出されるんだよ
そこでサーバーサイド側の仕組みを使って404を返せばいい
SPAの話なのに何を言ってるのと思うかもしれないけど、
ちゃんとしたSPAっていうのはF5を押しても同じ画面が表示されるし
URLも http://example.com/foo/1 のままになるもの
SPAは/foo/1のデータをAjaxで読み込むものだと思ってるかもしれないけど、
それは他のページから辿った場合で、直接 http://example.com/foo/1 に
アクセスした場合は、JavaScriptで取ってくるそのデータを最初からHTMLに埋め込むものなんだよ。
なぜかって? ページアクセスして表示されてからデータを取りに行くとパフォーマンスさがるだろ?
だからSPAは基本Ajaxでデータを取るのは間違ってないんだけど、最初のページに限っては
最初からHTMLに埋め込んでおく。埋め込むことができるってことは、
データが見つからない時に404を返すことも容易
そして検索エンジンとかは、基本的にAjaxを使ってデータを読んだりしない。
読むことも有るかもしれないけど、Ajaxリクエスト(Content-Type: application/json)として
そのページを読み込むことはないだろう。だからいま問題にしているどうやって404を返すか?という
話は実は当てはまらない。検索エンジンは http://example.com/foo/1 を直接読み込むのだから
Ajaxによるリクエスト、つまり別ページを読み込んでからSPAの処理としてページを読み込む場合は
そのリクエストを404にすればよい。たしかにページ自体は404にはならないんだけどね。
でも検索エンジンには関係ない話
874デフォルトの名無しさん
2018/02/16(金) 11:13:52.52ID:PV55M7JN875デフォルトの名無しさん
2018/02/16(金) 12:12:33.62ID:ijGXrmYh > GoogleBotはちゃんとjsを解釈してくれます。
なにを解釈しているかちゃんと分かってますか?
解釈していると主張しているだけで、何をどう解釈しているかは
非公開のはずですが? どうして問題ないと信じられるのでしょうか?
なにを解釈しているかちゃんと分かってますか?
解釈していると主張しているだけで、何をどう解釈しているかは
非公開のはずですが? どうして問題ないと信じられるのでしょうか?
876デフォルトの名無しさん
2018/02/16(金) 12:31:37.30ID:PV55M7JN >>875
https://qiita.com/m0a/items/89aec890f98a599846ce
GoogleBotのchrome version調べることができます。
bot用にカスタマイズしている可能性はあるので確かに100%保証というわけではないですが
https://qiita.com/m0a/items/89aec890f98a599846ce
GoogleBotのchrome version調べることができます。
bot用にカスタマイズしている可能性はあるので確かに100%保証というわけではないですが
877デフォルトの名無しさん
2018/02/16(金) 12:34:28.83ID:ijGXrmYh878デフォルトの名無しさん
2018/02/16(金) 12:37:37.23ID:PV55M7JN >>877
>SPAは/foo/1のデータをAjaxで読み込むものだと思ってるかもしれないけど、
>それは他のページから辿った場合で、直接 http://example.com/foo/1 に
>アクセスした場合は、JavaScriptで取ってくるそのデータを最初からHTMLに埋め込むものなんだよ。
>なぜかって? ページアクセスして表示されてからデータを取りに行くとパフォーマンスさがるだろ?
>だからSPAは基本Ajaxでデータを取るのは間違ってないんだけど、最初のページに限っては
>最初からHTMLに埋め込んでおく。埋め込むことができるってことは、
>データが見つからない時に404を返すことも容易
ここに対するツッコミをしただけですよ。
>SPAは/foo/1のデータをAjaxで読み込むものだと思ってるかもしれないけど、
>それは他のページから辿った場合で、直接 http://example.com/foo/1 に
>アクセスした場合は、JavaScriptで取ってくるそのデータを最初からHTMLに埋め込むものなんだよ。
>なぜかって? ページアクセスして表示されてからデータを取りに行くとパフォーマンスさがるだろ?
>だからSPAは基本Ajaxでデータを取るのは間違ってないんだけど、最初のページに限っては
>最初からHTMLに埋め込んでおく。埋め込むことができるってことは、
>データが見つからない時に404を返すことも容易
ここに対するツッコミをしただけですよ。
879デフォルトの名無しさん
2018/02/16(金) 12:49:30.63ID:L6Zw5BDk >>873
それはSSRする場合というごく少数のSPAの場合であって、
大体はpathinfo効かせて、htmlにリダイレクトさせると思うんだが。
悪手よ。二種類のルーターの同時保守は。
hoge/foo/1は、hogeへの/foo/1というルートのパラメータであって、パスじゃない。pathinfoの時もね。
ajaxでURLとしてのfoo/1を取得するかどうかも、SPA次第であって、実はそんなこと関係なくクライアントサイドの処理で済むものなのかもしれない。
なので、404というステータスはhtmlに対してはユーザが見れうるが、各パスに対しては見ようがない。
SPAのAはApplicationのAだからね。
それはSSRする場合というごく少数のSPAの場合であって、
大体はpathinfo効かせて、htmlにリダイレクトさせると思うんだが。
悪手よ。二種類のルーターの同時保守は。
hoge/foo/1は、hogeへの/foo/1というルートのパラメータであって、パスじゃない。pathinfoの時もね。
ajaxでURLとしてのfoo/1を取得するかどうかも、SPA次第であって、実はそんなこと関係なくクライアントサイドの処理で済むものなのかもしれない。
なので、404というステータスはhtmlに対してはユーザが見れうるが、各パスに対しては見ようがない。
SPAのAはApplicationのAだからね。
880デフォルトの名無しさん
2018/02/16(金) 12:54:41.12ID:ijGXrmYh881デフォルトの名無しさん
2018/02/16(金) 12:57:19.71ID:6wcMGkCt pathinfo?
pathnameのこと?
ApplicationのAだから?
railsやexpressやspringでサーバーサイドで作ったものはApplicationではない???
pathnameのこと?
ApplicationのAだから?
railsやexpressやspringでサーバーサイドで作ったものはApplicationではない???
882デフォルトの名無しさん
2018/02/16(金) 13:01:32.14ID:ijGXrmYh >>879
> 悪手よ。二種類のルーターの同時保守は。
そんなもんする必要が無いだろ?
http://example.com/foo/1 にアクセスしたら
どうせクライアントサイドから /api/foo/1とか呼び出すんだろ?
ならその呼び出す命令の代わりに、
サーバーサイド側で http://example.com/foo/1 でアクセスした時に
同じ /api/foo/1 を呼び出せばいいだけ
汎用化できるから保守の必要はない
> 悪手よ。二種類のルーターの同時保守は。
そんなもんする必要が無いだろ?
http://example.com/foo/1 にアクセスしたら
どうせクライアントサイドから /api/foo/1とか呼び出すんだろ?
ならその呼び出す命令の代わりに、
サーバーサイド側で http://example.com/foo/1 でアクセスした時に
同じ /api/foo/1 を呼び出せばいいだけ
汎用化できるから保守の必要はない
883デフォルトの名無しさん
2018/02/16(金) 13:04:20.87ID:ijGXrmYh /api/foo/1と書いたけど、もちろん /foo/1 でもよい。
その場合、Ajax(Content-Type: application/json)からのリクエストか
どうか判別してそのページのデータのみを返すか、
HTMLを返すか切り分ければいい
その場合、Ajax(Content-Type: application/json)からのリクエストか
どうか判別してそのページのデータのみを返すか、
HTMLを返すか切り分ければいい
884デフォルトの名無しさん
2018/02/16(金) 13:10:38.43ID:EMoJP+dl そもそもGETはキャッシュラブルだとかそういうのも守れてないし
885デフォルトの名無しさん
2018/02/16(金) 13:12:18.28ID:ijGXrmYh また関係ない話が出てきたな・・・
886デフォルトの名無しさん
2018/02/16(金) 14:18:34.93ID:L6Zw5BDk >>882
しないこともあるのがSPAだよ。
しないこともあるのがSPAだよ。
887デフォルトの名無しさん
2018/02/16(金) 16:23:26.06ID:ijGXrmYh しないならしなければいいだけだろ?
何を言いたいのか分からん
何を言いたいのか分からん
888デフォルトの名無しさん
2018/02/16(金) 17:56:44.52ID:L6Zw5BDk889デフォルトの名無しさん
2018/02/16(金) 18:24:29.38ID:ijGXrmYh >>888
> リクエストのURIと同じURIのリソースを呼び出すこともあれば呼び出さないこともあるSPAだと。
それはページ内部の話だろ。クローラーからすりゃ関係ない話
クローラーが記録するのはブラウザのアドレスバーに表示される
あのURLのみと考えればいい。そのURLに対してGETリクエストを行うだけ
そもそもお前、SPAの初期ページの読み込みが遅いって問題と解決方法知ってるか?
https://qiita.com/takeshy/items/b7e1b6bd30d12ecb02c6
> 1.データを別々にAjaxで取得
> 各CollectionやModelがRESTを使ってデータをAjaxで取得するので、
> リクエスト数が多くて遅くなる上に、ブラウザの同じサイトに対しての同時リクエスト数制限にひっかかります。
> 1.に関しては、初期画面のHTMLにAjaxで取得予定のデータを予め埋め込んでしまい、
> 初期データとして使うことで初期画面表示時のAjax呼び出しをなくしました。
https://qiita.com/takeshy/items/ba8b3ee4606993c1c5b8
> 初期表示時にサーバとの通信を極力行わない
> SPAで作成する場合、各モデルごとにサーバとデータを同期する必要がありますが、
> データを初期のHTMLにJSONデータとして埋め込んでしまうことで、Ajax通信を回避することが可能です。
どうせこれやるんだから、この時にデータが見つからなければ404を返すだけの話だろ
> リクエストのURIと同じURIのリソースを呼び出すこともあれば呼び出さないこともあるSPAだと。
それはページ内部の話だろ。クローラーからすりゃ関係ない話
クローラーが記録するのはブラウザのアドレスバーに表示される
あのURLのみと考えればいい。そのURLに対してGETリクエストを行うだけ
そもそもお前、SPAの初期ページの読み込みが遅いって問題と解決方法知ってるか?
https://qiita.com/takeshy/items/b7e1b6bd30d12ecb02c6
> 1.データを別々にAjaxで取得
> 各CollectionやModelがRESTを使ってデータをAjaxで取得するので、
> リクエスト数が多くて遅くなる上に、ブラウザの同じサイトに対しての同時リクエスト数制限にひっかかります。
> 1.に関しては、初期画面のHTMLにAjaxで取得予定のデータを予め埋め込んでしまい、
> 初期データとして使うことで初期画面表示時のAjax呼び出しをなくしました。
https://qiita.com/takeshy/items/ba8b3ee4606993c1c5b8
> 初期表示時にサーバとの通信を極力行わない
> SPAで作成する場合、各モデルごとにサーバとデータを同期する必要がありますが、
> データを初期のHTMLにJSONデータとして埋め込んでしまうことで、Ajax通信を回避することが可能です。
どうせこれやるんだから、この時にデータが見つからなければ404を返すだけの話だろ
890デフォルトの名無しさん
2018/02/16(金) 18:31:57.24ID:ijGXrmYh >>888
> クライアントサイドだけが生成するものの404は、クライアントサイドだけでさばくべきかと。
> クライアントサイドだけが生成するものってのは、サーバに持ち込まない事がセキュリティ上の担保になるようなブラウザで生成するものになるだろうけど。
クライアントサイドだけが生成されるものというのはURLを持たないってことか?
URLを持たないページならクローラーの対象とならないんだから
そんなのどうでもいいだろ。URLがなb「ならクローラ=[はこねーよw
まさかURLを持たなくてもクロールしてくれるとか思ってねーよな?
クローラーがクリックイベントまでシミュレートして、URLは変わらないのに
ページ辿ってくれるとか思ってねーよな?しねーからなそんなこと
> https://www.bricoleur.co.jp/blog/archives/2628
> 原文:
> We don’t “click” during rendering so any click event will be ignored,
> but we do execute JavaScript that is triggered by for example onLoad events.
> > 原文:
> (Googlebotは)ページをレンダリングする際に何も「クリック」しない。
> 従って、クリックイベント(によって発生する動的なコンテンツ)は無視する。
> しかし、onLoadイベントなどがトリガーとなるようなJavaScriptについては実行する。
クローラーの動きとしては
1. ページを読み込んでレンダリングする
2. そのページのURLをかき集める
3. そのページは一旦閉じSPAが終了されてるのと同じ状態から、かき集めたURLの一つを読み込む
だからな。SPAアプリをクローラーが操作してくれるわけじゃない。
SPAの画面をそのままクロールしてくれるんじゃなくて、その状態からF5(画面更新)を
押して表示されたものしか見てくれないからな。だからURLがあることは必須
> クライアントサイドだけが生成するものの404は、クライアントサイドだけでさばくべきかと。
> クライアントサイドだけが生成するものってのは、サーバに持ち込まない事がセキュリティ上の担保になるようなブラウザで生成するものになるだろうけど。
クライアントサイドだけが生成されるものというのはURLを持たないってことか?
URLを持たないページならクローラーの対象とならないんだから
そんなのどうでもいいだろ。URLがなb「ならクローラ=[はこねーよw
まさかURLを持たなくてもクロールしてくれるとか思ってねーよな?
クローラーがクリックイベントまでシミュレートして、URLは変わらないのに
ページ辿ってくれるとか思ってねーよな?しねーからなそんなこと
> https://www.bricoleur.co.jp/blog/archives/2628
> 原文:
> We don’t “click” during rendering so any click event will be ignored,
> but we do execute JavaScript that is triggered by for example onLoad events.
> > 原文:
> (Googlebotは)ページをレンダリングする際に何も「クリック」しない。
> 従って、クリックイベント(によって発生する動的なコンテンツ)は無視する。
> しかし、onLoadイベントなどがトリガーとなるようなJavaScriptについては実行する。
クローラーの動きとしては
1. ページを読み込んでレンダリングする
2. そのページのURLをかき集める
3. そのページは一旦閉じSPAが終了されてるのと同じ状態から、かき集めたURLの一つを読み込む
だからな。SPAアプリをクローラーが操作してくれるわけじゃない。
SPAの画面をそのままクロールしてくれるんじゃなくて、その状態からF5(画面更新)を
押して表示されたものしか見てくれないからな。だからURLがあることは必須
891デフォルトの名無しさん
2018/02/16(金) 18:54:05.52ID:kN3UBOMP 数年前からクリックするようになってるよ
892デフォルトの名無しさん
2018/02/16(金) 19:30:14.75ID:PV55M7JN >>891
React-router-dom触ってると
onclickで遷移する仕組みがチュートリアルで紹介されてないんだよね。
(よく探すとあるけど。)
GoogleBotが辿ってくれるためにはAnchorである必要があるってことで
そのためにonClickじゃなくてLinkタグを使って遷移処理するようにするってことだね。
非同期通信を介してレンダリングすると一々Stateに保存してLinkタグを書くのがシンドいと思ってたんだけどSEOのためだったんだなぁ
React-router-dom触ってると
onclickで遷移する仕組みがチュートリアルで紹介されてないんだよね。
(よく探すとあるけど。)
GoogleBotが辿ってくれるためにはAnchorである必要があるってことで
そのためにonClickじゃなくてLinkタグを使って遷移処理するようにするってことだね。
非同期通信を介してレンダリングすると一々Stateに保存してLinkタグを書くのがシンドいと思ってたんだけどSEOのためだったんだなぁ
893デフォルトの名無しさん
2018/02/16(金) 19:33:28.56ID:ijGXrmYh なってるといいよねw
どちらにしろURLがないコンテンツは
クロールしてくれないことに変わりないんだがな
どちらにしろURLがないコンテンツは
クロールしてくれないことに変わりないんだがな
894デフォルトの名無しさん
2018/02/16(金) 19:36:08.89ID:ijGXrmYh >>892
リンクタグを使った所で、そのリンクを
アドレスバーに入れて表示されないと意味ないからね
クローラーはリンクのみを取り出してアドレスバーに入れて
表示されたものを、そのURLのコンテンツとして認識する
そこからクリックして変化したものまでクロールしてくれない
(普通に考えれば当たり前だが)
リンクタグを使った所で、そのリンクを
アドレスバーに入れて表示されないと意味ないからね
クローラーはリンクのみを取り出してアドレスバーに入れて
表示されたものを、そのURLのコンテンツとして認識する
そこからクリックして変化したものまでクロールしてくれない
(普通に考えれば当たり前だが)
895デフォルトの名無しさん
2018/02/16(金) 19:45:34.13ID:uCgPr+rC クリックじゃなく遅延して表示してるのはどうなるんだろ?何秒か適当にwaitしてから取ってんのかな?それとも
896デフォルトの名無しさん
2018/02/16(金) 19:54:10.08ID:ijGXrmYh >>895
運次第だろ?
1秒毎に変わるページでも作って、それがクロールされるかとか
やってみたら?少なくとも全部クロールされることはないだろうね
クリックされると副作用が現れるということで、
ページ上にクリックできるものが複数あって、
じゃあどれをクリックしたものをクロールされるのか?とかさ
考えてみれば不可能だってわかると思うんだが
クローラーがJavaScriptを実行するというのは
JavaScriptで動的に出したもの全てをクロールして
くれるわけじゃないことはわかるでしょ?
クロールされるのは指定したURLを表示して(JavaScriptで)
レンダリングした最初の画面ぐらいに思っておいたほうが良いよ
そこからのonclickは動かないとみなした方がいい
もちろんレンダリングした結果に含まれるリンクにはURLが書いてあるので
新たなクロール対象になる。
onclickの場合はURLが書いてないのでクロール対象にならない
運次第だろ?
1秒毎に変わるページでも作って、それがクロールされるかとか
やってみたら?少なくとも全部クロールされることはないだろうね
クリックされると副作用が現れるということで、
ページ上にクリックできるものが複数あって、
じゃあどれをクリックしたものをクロールされるのか?とかさ
考えてみれば不可能だってわかると思うんだが
クローラーがJavaScriptを実行するというのは
JavaScriptで動的に出したもの全てをクロールして
くれるわけじゃないことはわかるでしょ?
クロールされるのは指定したURLを表示して(JavaScriptで)
レンダリングした最初の画面ぐらいに思っておいたほうが良いよ
そこからのonclickは動かないとみなした方がいい
もちろんレンダリングした結果に含まれるリンクにはURLが書いてあるので
新たなクロール対象になる。
onclickの場合はURLが書いてないのでクロール対象にならない
897デフォルトの名無しさん
2018/02/16(金) 20:46:06.30ID:VmT4Fc/5 onclickにlocation.href='hoge/fuga.html'とか書いてあったらどうなんの?
898デフォルトの名無しさん
2018/02/16(金) 23:15:43.67ID:9uuqtBQX 結局404はどう解決するんだよ
899デフォルトの名無しさん
2018/02/16(金) 23:25:00.48ID:wAiK151t とりあえず、404って書いた画面表示しときゃいいだろ。
それで不満だって言うのなら何が気に入らないのかちゃんと挙げて議論。
それで不満だって言うのなら何が気に入らないのかちゃんと挙げて議論。
900デフォルトの名無しさん
2018/02/16(金) 23:57:21.24ID:ijGXrmYh >>898
あるURLに対してクローラーがアクセスしてくる場合には
サーバーサイド側で404を表示できる。
なぜならサーバーサイド側でそのリクエストを処理するから
その時にデータがなければ404を返せる
Ajaxを使ってアクセスする場合は、そのリクエストで404を返せばいい
あるURLに対してクローラーがアクセスしてくる場合には
サーバーサイド側で404を表示できる。
なぜならサーバーサイド側でそのリクエストを処理するから
その時にデータがなければ404を返せる
Ajaxを使ってアクセスする場合は、そのリクエストで404を返せばいい
901デフォルトの名無しさん
2018/02/17(土) 00:03:35.35ID:NuxITAVF902デフォルトの名無しさん
2018/02/17(土) 00:06:15.35ID:NuxITAVF ajaxを使って、同じURIから同じリソースを使うなら、クライアントで描画する必要無いよね。
そのURIの情報をDOMごと貰えばいい話になる。
どこのClassicASPのUpdatePanelの話なのかわからんレベルで無能じゃん。
アプリケーションだよ。
そのURIの情報をDOMごと貰えばいい話になる。
どこのClassicASPのUpdatePanelの話なのかわからんレベルで無能じゃん。
アプリケーションだよ。
903デフォルトの名無しさん
2018/02/17(土) 00:49:10.87ID:RdZUuX+v > ajaxを使って、同じURIから同じリソースを使うなら、クライアントで描画する必要無いよね。
あ、なるほどwwwww
そううかお前、サーバーサイドでレンダリングするって思っちゃってるんだwwww
SPA初心者だな。
クライアントでレンダリングするのに必要なデータをJSONでHTMLで埋め込むんだよ
そしてクライアントサイドでレンダリングするんだよ。
>>889のリンク先にもそう書いてあんだろ
で、クライアントでレンダリングするためのデータがなかったら、
404を返すだけの話だよ。
あ、なるほどwwwww
そううかお前、サーバーサイドでレンダリングするって思っちゃってるんだwwww
SPA初心者だな。
クライアントでレンダリングするのに必要なデータをJSONでHTMLで埋め込むんだよ
そしてクライアントサイドでレンダリングするんだよ。
>>889のリンク先にもそう書いてあんだろ
で、クライアントでレンダリングするためのデータがなかったら、
404を返すだけの話だよ。
904デフォルトの名無しさん
2018/02/17(土) 00:49:44.01ID:RdZUuX+v905デフォルトの名無しさん
2018/02/17(土) 02:40:20.72ID:+Fv80jjb F5押しても戻らないよ。
ルーターが処理してるから。
お前アホなんだろ。
ルーターが処理してるから。
お前アホなんだろ。
906デフォルトの名無しさん
2018/02/17(土) 02:48:01.65ID:+Fv80jjb そもそも、pathinfo使ってリダイレクトさせるのは別に動的なphpやサーブレットなんかだけが対象じゃなくて、htmlでも良いんだよ。
そのhtmlはサーバから取らなくてもサービスワーカーなりなんなりでブラウザ内で処理しちゃえるから、トラフィックは発生しない。
ブラウザ内でindexedDBなり使って復帰すればそれでいいんだから、同じURIにリクエスト投げる必要もなく、ブラウザ外に問い合わせて表示データを取る必要もない。
アプリケーションなの。APIが返す値を表示するだけのブラウザじゃないのよ。SPAと言うのは。
そのhtmlはサーバから取らなくてもサービスワーカーなりなんなりでブラウザ内で処理しちゃえるから、トラフィックは発生しない。
ブラウザ内でindexedDBなり使って復帰すればそれでいいんだから、同じURIにリクエスト投げる必要もなく、ブラウザ外に問い合わせて表示データを取る必要もない。
アプリケーションなの。APIが返す値を表示するだけのブラウザじゃないのよ。SPAと言うのは。
907デフォルトの名無しさん
2018/02/17(土) 03:26:51.10ID:RdZUuX+v >>905
F5押しても戻らないってことはURLがあるってことじゃねーかw
F5押しても戻らないってことはURLがあるってことじゃねーかw
908デフォルトの名無しさん
2018/02/17(土) 11:50:05.04ID:+Fv80jjb909デフォルトの名無しさん
2018/02/17(土) 12:10:00.79ID:W+GNXAq+ F5で完全に戻らないとしてもURLだけで
そのアプリケーションの全ての値が復元できるとも限らない
そのアプリケーションの全ての値が復元できるとも限らない
910デフォルトの名無しさん
2018/02/17(土) 13:29:52.85ID:+Fv80jjb それはURIだけで、サーバがすべての値を返すとは限らない、と同じ意味だよね。
911デフォルトの名無しさん
2018/02/17(土) 13:39:20.93ID:Q9uAGfUQ クローラーはURIだけでアクセスしてくるので
URIから読み取れないデータはクロールされません。
またGoogleの検索結果にSPAのJSONが
クロールされた形跡は見られませんね。
もしそのJSONがクロールされていれば
検索結果に出るはずですから
URIから読み取れないデータはクロールされません。
またGoogleの検索結果にSPAのJSONが
クロールされた形跡は見られませんね。
もしそのJSONがクロールされていれば
検索結果に出るはずですから
912デフォルトの名無しさん
2018/02/17(土) 14:18:23.54ID:W+GNXAq+ その理屈は正しくない
もしJSONも認識できて人並みの知能があった場合
それを検索結果に出さないという判断をすべきだから
もしJSONも認識できて人並みの知能があった場合
それを検索結果に出さないという判断をすべきだから
913デフォルトの名無しさん
2018/02/17(土) 14:22:19.46ID:Q9uAGfUQ 検索結果にださなくすると
どういう効果があるの?
どういう効果があるの?
914デフォルトの名無しさん
2018/02/17(土) 14:54:23.92ID:QcCOFhat SPAのJSONという時点でダム端みたいな使い方しかして無いとわかってしまう悲しさがあるな。
ブラウザは単なるレイアウトエンジンじゃないぞw
うちのログにはSPAだけがルーティングしてるアドレスに向かってのクエリはあるから、逆にajaxしてるからクローラにそこで諦められてんじゃないの?
ブラウザは単なるレイアウトエンジンじゃないぞw
うちのログにはSPAだけがルーティングしてるアドレスに向かってのクエリはあるから、逆にajaxしてるからクローラにそこで諦められてんじゃないの?
915デフォルトの名無しさん
2018/02/17(土) 17:47:46.20ID:QcCOFhat よくよくこいつがなんで馬鹿な事言ってるか考えてみたんだが、URIだけでアクセスしてくるが、その与えられたURIだけでルータが割り振ったあとコントロールのJS内で画面と内容をレンダリングできてしまうがある事を想定してないんだろうな。
URIで指定されたコードをバーコードとして画面に表示するとか色々作ったが、そう言うのは多分想定外なのかなと思ったわ。
HTTPとしてGETするリソースと、ブラウザにあるコンテンツを求めるために示されるURIはイコールじゃない。
だからHTTPサーバはindex.html/jsに相当する内容をいつでも同じように返すし、サービスワーカーが動いてればそのサーバへの問い合わせすらしない。
いつでも、そのhtmlやjsが、自身に与えられたURIから、コンテンツを作る。
URIで指定されたコードをバーコードとして画面に表示するとか色々作ったが、そう言うのは多分想定外なのかなと思ったわ。
HTTPとしてGETするリソースと、ブラウザにあるコンテンツを求めるために示されるURIはイコールじゃない。
だからHTTPサーバはindex.html/jsに相当する内容をいつでも同じように返すし、サービスワーカーが動いてればそのサーバへの問い合わせすらしない。
いつでも、そのhtmlやjsが、自身に与えられたURIから、コンテンツを作る。
916デフォルトの名無しさん
2018/02/17(土) 18:17:07.03ID:OoNlElF9 >>901
この文脈であえてURLとURIを区別する意味が分からん。
この文脈であえてURLとURIを区別する意味が分からん。
917デフォルトの名無しさん
2018/02/17(土) 18:27:57.81ID:nikLB5DZ >>915
いや、そうじゃなくて
「その与えられたURIだけでルータが割り振ったあとコントロールのJS内で画面と内容をレンダリング」
という処理をするためには、
1. URIからサーバーにリクエストを投げる
2. サーバーからindex.html/js相当を貰う
3. クライアントのJSでURIから画面と内容を表示するのデータを貰うためにサーバーにリクエストを投げる
4. サーバーから画面と内容を表示するためのデータを貰う
5. そのデータを使って画面と内容をレンダリングする
の3〜4のサーバーへのリクエストの処理について考察できてないんでしょ?
そしてSPAでは2回サーバーにリクエストを投げるのが当たり前で解決できない問題だと思い込んじゃってる。
まともなSPAだとここを1回にする。理由は2回リクエストを投げるとパフォーマンスが落ちるから。
2回サーバーにリクエストを投げる方法だと2の時点で200が返ってきてしまい、4の時点で404を返すことになるが、
リクエストを1回にした場合は、2の段階でindex.html/js相当+画面と内容を表示するためのデータを貰うことになるので
この時点で404を返すことができる。
いや、そうじゃなくて
「その与えられたURIだけでルータが割り振ったあとコントロールのJS内で画面と内容をレンダリング」
という処理をするためには、
1. URIからサーバーにリクエストを投げる
2. サーバーからindex.html/js相当を貰う
3. クライアントのJSでURIから画面と内容を表示するのデータを貰うためにサーバーにリクエストを投げる
4. サーバーから画面と内容を表示するためのデータを貰う
5. そのデータを使って画面と内容をレンダリングする
の3〜4のサーバーへのリクエストの処理について考察できてないんでしょ?
そしてSPAでは2回サーバーにリクエストを投げるのが当たり前で解決できない問題だと思い込んじゃってる。
まともなSPAだとここを1回にする。理由は2回リクエストを投げるとパフォーマンスが落ちるから。
2回サーバーにリクエストを投げる方法だと2の時点で200が返ってきてしまい、4の時点で404を返すことになるが、
リクエストを1回にした場合は、2の段階でindex.html/js相当+画面と内容を表示するためのデータを貰うことになるので
この時点で404を返すことができる。
918デフォルトの名無しさん
2018/02/17(土) 20:48:04.60ID:QcCOFhat >>917
違うよ。3は、必ずしも存在しないって言ってるの。
SPAでは2回リクエストを送ることもあるだろうし、リクエストを送らない事もあるって言ってるの。
まともなアプリケーションでは、一回も送らなくて済むならば送らない。
htmlやjsをサービスワーカーでキャッシュしてれば、そもそももっと話が変わってくる。
(特定のURI以下へのリクエストをサービスワーカーでキャッシュから解決するだけ)
さらに、URIの中身で画面が作れる場合、アプリケーションから見てそれは本当に唯一無二のURIだよ。Locatorではなく、Identifier。
お前は、最低一回リクエストするはずだ、という思い込みというか、それ以外の方法を知らないんだと思うよ。
要はウェブページプラスαの考え方。
違うよ。3は、必ずしも存在しないって言ってるの。
SPAでは2回リクエストを送ることもあるだろうし、リクエストを送らない事もあるって言ってるの。
まともなアプリケーションでは、一回も送らなくて済むならば送らない。
htmlやjsをサービスワーカーでキャッシュしてれば、そもそももっと話が変わってくる。
(特定のURI以下へのリクエストをサービスワーカーでキャッシュから解決するだけ)
さらに、URIの中身で画面が作れる場合、アプリケーションから見てそれは本当に唯一無二のURIだよ。Locatorではなく、Identifier。
お前は、最低一回リクエストするはずだ、という思い込みというか、それ以外の方法を知らないんだと思うよ。
要はウェブページプラスαの考え方。
919デフォルトの名無しさん
2018/02/18(日) 02:19:09.25ID:dp9S/ZRw >>918
今、話をしてるのはクローラーの話だって分かってない?
クローラーはクッキーやローカルストレージは使わない
https://www.suzukikenichi.com/blog/googlebot-uses-a-web-rendering-service-that-is-based-on-chrome-41/
ページレンダリング中に一時的に使ってるかもしれないが読み込み時に毎回クリアされる
クローラーっていうのは、HTMLを取得(ページをレンダリング)する処理と、URLをかき集める処理が別れている
そしてクローラーは自分が知ってるURLに対してGETリクエストを送る
だから一回もリクエストを送らないということはありえないんだよ。
クローラーはブラウザじゃない。ブラウザのように前の状態というのを持たない。
だからアプリの作りが例えサーバーと通信しない作りであっても
知ってるURLに対して初回アクセスと同じようにかならずGETリクエストを送ってくる
そしてクッキーやローカルストレージは持たない
クローラーは必ずSPAのアプリケーションの特定のURLに対して直接GETでアクセスしてきており
(アクセスしない = 最新の情報がわからないのだからクロールされてるページ内容の更新を行わない)
なおかつ初回アクセスと同じようにデータは空なのだから、状態は200か404のどちらかに決定することが可能
(まあ他にもリダイレクトとかあるだろうけどいずれにしろどれかに決定できる)
クローラーがブラウザと同じようにクライアントサイドだけでアプリを動かしているかもしれないじゃないか
とか頓珍漢なこと言うなよ? それなにもクロールしてないからw クローラーの使命を果たしていない
今、話をしてるのはクローラーの話だって分かってない?
クローラーはクッキーやローカルストレージは使わない
https://www.suzukikenichi.com/blog/googlebot-uses-a-web-rendering-service-that-is-based-on-chrome-41/
ページレンダリング中に一時的に使ってるかもしれないが読み込み時に毎回クリアされる
クローラーっていうのは、HTMLを取得(ページをレンダリング)する処理と、URLをかき集める処理が別れている
そしてクローラーは自分が知ってるURLに対してGETリクエストを送る
だから一回もリクエストを送らないということはありえないんだよ。
クローラーはブラウザじゃない。ブラウザのように前の状態というのを持たない。
だからアプリの作りが例えサーバーと通信しない作りであっても
知ってるURLに対して初回アクセスと同じようにかならずGETリクエストを送ってくる
そしてクッキーやローカルストレージは持たない
クローラーは必ずSPAのアプリケーションの特定のURLに対して直接GETでアクセスしてきており
(アクセスしない = 最新の情報がわからないのだからクロールされてるページ内容の更新を行わない)
なおかつ初回アクセスと同じようにデータは空なのだから、状態は200か404のどちらかに決定することが可能
(まあ他にもリダイレクトとかあるだろうけどいずれにしろどれかに決定できる)
クローラーがブラウザと同じようにクライアントサイドだけでアプリを動かしているかもしれないじゃないか
とか頓珍漢なこと言うなよ? それなにもクロールしてないからw クローラーの使命を果たしていない
920デフォルトの名無しさん
2018/02/18(日) 11:26:35.43ID:S5M53+XI それって今のGoogle Botの話でしょ?
クローラが一般的にそうである必要はないよ
Google Botも重要なサイトでは高機能長時間のクロールをしてるって噂もあるし
クローラが一般的にそうである必要はないよ
Google Botも重要なサイトでは高機能長時間のクロールをしてるって噂もあるし
921デフォルトの名無しさん
2018/02/18(日) 11:51:48.11ID:/P4rmifc SEOの話ならあっちでやってくれ
922デフォルトの名無しさん
2018/02/18(日) 11:53:05.84ID:AYB00j0e クソみたいな長文で自分の理解が及んでませんでしたって言い訳されても困るわ。
それも織り込んで話してる。
それも織り込んで話してる。
923デフォルトの名無しさん
2018/02/18(日) 13:52:18.73ID:dp9S/ZRw >>920
長時間クロールっていうのはたくさんのページを
まとめてクロールしてるってだけ。動きは変わらない。
> クローラが一般的にそうである必要はないよ
個人的にしか使わないクローラーは別として
一般的なクローラーは、不特定の人が見るわけだから
このような動きになる。
長時間クロールっていうのはたくさんのページを
まとめてクロールしてるってだけ。動きは変わらない。
> クローラが一般的にそうである必要はないよ
個人的にしか使わないクローラーは別として
一般的なクローラーは、不特定の人が見るわけだから
このような動きになる。
924デフォルトの名無しさん
2018/02/18(日) 13:52:56.22ID:dp9S/ZRw >>922
なんかいえやw
なんかいえやw
925デフォルトの名無しさん
2018/02/18(日) 13:55:42.29ID:AYB00j0e 要はURIだけで画面が作れる画面ってのはあるんだよ。
URIがデータの時な。
クライアントサイドだけで(JSで処理される)リンクをたどる、のはやってくれてるよ。
リファラ見るとわかる。
そのサーバではindex.htmlと同じ内容を返してる、JSでレンダリングされた内容しか含まないURLもちゃんと検索結果に上がってくるんだよなぁ。
ajax!json!ブラウザに上のURLと同じURLでAPIがjsonを返すんだ!と狂って叫ぶ前に、ちゃんと理解すれば良いのに。
ブラウザ上のURLと同じURLで実はJSONを返してる、とか、逆にクローラは無視しにかかるだろ。
クローラはブラウザセッション、状態をすべて忘れてそのURLをレンダリングするんだぞ。
SPAなんにもわかってねえな。
URIがデータの時な。
クライアントサイドだけで(JSで処理される)リンクをたどる、のはやってくれてるよ。
リファラ見るとわかる。
そのサーバではindex.htmlと同じ内容を返してる、JSでレンダリングされた内容しか含まないURLもちゃんと検索結果に上がってくるんだよなぁ。
ajax!json!ブラウザに上のURLと同じURLでAPIがjsonを返すんだ!と狂って叫ぶ前に、ちゃんと理解すれば良いのに。
ブラウザ上のURLと同じURLで実はJSONを返してる、とか、逆にクローラは無視しにかかるだろ。
クローラはブラウザセッション、状態をすべて忘れてそのURLをレンダリングするんだぞ。
SPAなんにもわかってねえな。
926デフォルトの名無しさん
2018/02/18(日) 13:59:45.98ID:dp9S/ZRw >>921
SEOの話とは違うね。
ページが見つからない時、どうやって404を返すべきかどうかの話
SPAがどうたらとか、サーバーにアクセスしないときがどうとか
言っているが、それらは全く関係ないってことを言ってる。
普通にサーバーにアクセスされた時にデータがなければ404を返せばいい
どんなページもURIを持っていればサーバーにアクセスされうる
(その典型的な例がクローラーってだけの話)
サーバーにアクセスしないときは〜なんて考える必要はない。
そもそもアクセスされないなら何も出しようがないだろ?
SEOの話とは違うね。
ページが見つからない時、どうやって404を返すべきかどうかの話
SPAがどうたらとか、サーバーにアクセスしないときがどうとか
言っているが、それらは全く関係ないってことを言ってる。
普通にサーバーにアクセスされた時にデータがなければ404を返せばいい
どんなページもURIを持っていればサーバーにアクセスされうる
(その典型的な例がクローラーってだけの話)
サーバーにアクセスしないときは〜なんて考える必要はない。
そもそもアクセスされないなら何も出しようがないだろ?
927デフォルトの名無しさん
2018/02/18(日) 14:07:51.73ID:dp9S/ZRw >>925
> 要はURIだけで画面が作れる画面ってのはあるんだよ。
> URIがデータの時な。
URIがデータだったとしても、(そもそも全てのURIがそうなんだがw)
話は関係ない。
URIを持っていればサーバーにアクセスされうる
SPAの場合にサーバーにアクセスしない場合もあるってだけで
ブラウザでF5を押したりクローラーからアクセスされる。
だから必ずしも作る必要はないが、ちゃんと作るならば
サーバー側の処理は必要。その時にデータがなければ404を返せばいい
(URIの情報しか使わないというのならそれは200だろうけどな)
> クローラはブラウザセッション、状態をすべて忘れてそのURLをレンダリングするんだぞ。
> SPAなんにもわかってねえな。
そもそもレンダリングする前に、クローラーはSPAであることもわすれて
URIに対してサーバーにアクセスする。ここでSPAのことを考えること自体が意味ないんだよ
ちゃんと作るならば、サーバーにアクセスされた時に必要なデータがなければ404を返せばいいだけ
データの有無の話でAjaxによるアクセスかどうかとかの違いも考える必要はない。
どんな内容を返すか?のために考えるのであって、データがないときは404
> 要はURIだけで画面が作れる画面ってのはあるんだよ。
> URIがデータの時な。
URIがデータだったとしても、(そもそも全てのURIがそうなんだがw)
話は関係ない。
URIを持っていればサーバーにアクセスされうる
SPAの場合にサーバーにアクセスしない場合もあるってだけで
ブラウザでF5を押したりクローラーからアクセスされる。
だから必ずしも作る必要はないが、ちゃんと作るならば
サーバー側の処理は必要。その時にデータがなければ404を返せばいい
(URIの情報しか使わないというのならそれは200だろうけどな)
> クローラはブラウザセッション、状態をすべて忘れてそのURLをレンダリングするんだぞ。
> SPAなんにもわかってねえな。
そもそもレンダリングする前に、クローラーはSPAであることもわすれて
URIに対してサーバーにアクセスする。ここでSPAのことを考えること自体が意味ないんだよ
ちゃんと作るならば、サーバーにアクセスされた時に必要なデータがなければ404を返せばいいだけ
データの有無の話でAjaxによるアクセスかどうかとかの違いも考える必要はない。
どんな内容を返すか?のために考えるのであって、データがないときは404
928デフォルトの名無しさん
2018/02/18(日) 14:17:14.66ID:AYB00j0e >>927
だから、サーバにアクセスされても、indexと同じものを返すよ。サーバからのリソースは。
F5を押されたって同じだ。
そのURIにデータがあるか無いかは、クライアント次第なんだから、サーバが返すのは不可能。
もちろんデータのうち、ユーザが作るようなもの、クローラがそもそも「生成しようがない」ものは拾えなくて当然というか、
クローラには一生生成できないURIで表現されるので、検索結果には上がらんし、そういうデータの一覧画面は空として上がるだろう。上がらないようにしたけど。
ただ、アプリケーションだけがハンドリングする静的なコンテンツ、はクローラが拾う。
それはサーバリソースと全く関係なく、jsにバンドルした内容から描画してる画面なんかも含まれるわな。
OSSのライセンス一覧とロゴのaboutなんかとか、特定のコンポーネントだったり、色々あるだろうが。
お前が言ってるSPAはアプリケーションと言うより、ブラウザのレンダリング力を借りたダム端なんだろう。
ダム端知らないなら早めに言ってね。言い換えるから。
だから、サーバにアクセスされても、indexと同じものを返すよ。サーバからのリソースは。
F5を押されたって同じだ。
そのURIにデータがあるか無いかは、クライアント次第なんだから、サーバが返すのは不可能。
もちろんデータのうち、ユーザが作るようなもの、クローラがそもそも「生成しようがない」ものは拾えなくて当然というか、
クローラには一生生成できないURIで表現されるので、検索結果には上がらんし、そういうデータの一覧画面は空として上がるだろう。上がらないようにしたけど。
ただ、アプリケーションだけがハンドリングする静的なコンテンツ、はクローラが拾う。
それはサーバリソースと全く関係なく、jsにバンドルした内容から描画してる画面なんかも含まれるわな。
OSSのライセンス一覧とロゴのaboutなんかとか、特定のコンポーネントだったり、色々あるだろうが。
お前が言ってるSPAはアプリケーションと言うより、ブラウザのレンダリング力を借りたダム端なんだろう。
ダム端知らないなら早めに言ってね。言い換えるから。
929デフォルトの名無しさん
2018/02/18(日) 14:20:48.05ID:F2O3xW/S >>925
> そのサーバではindex.htmlと同じ内容を返してる、JSでレンダリングされた内容しか含まないURLもちゃんと検索結果に上がってくるんだよなぁ。
そういう話はしてないんだなぁw
SPAでページがない時に404を返したい。どうすればいいか。という話
答は、今までと何も変わらない。
サーバーにアクセスした時にページを表示するために
必要なデータがなければ404を返せばいい
反論としてSPAだとサーバーにアクセスされない場合が〜とかいうから
どのページでもURIを持っていれば、サーバーにアクセスされる可能性があります。
特にクローラーは必ずサーバーにアクセスしてきます。
その時に404を返せば良いのです。という話
> そのサーバではindex.htmlと同じ内容を返してる、JSでレンダリングされた内容しか含まないURLもちゃんと検索結果に上がってくるんだよなぁ。
そういう話はしてないんだなぁw
SPAでページがない時に404を返したい。どうすればいいか。という話
答は、今までと何も変わらない。
サーバーにアクセスした時にページを表示するために
必要なデータがなければ404を返せばいい
反論としてSPAだとサーバーにアクセスされない場合が〜とかいうから
どのページでもURIを持っていれば、サーバーにアクセスされる可能性があります。
特にクローラーは必ずサーバーにアクセスしてきます。
その時に404を返せば良いのです。という話
930デフォルトの名無しさん
2018/02/18(日) 14:25:32.86ID:F2O3xW/S >>928
お前、前提がおかしいぞ?
今は、サーバーにデータが無い場合に404を返すにはどうするかの話だ
そもそもHTTPステータスはサーバーが返すもの。サーバーでしか判断できない
ダム端も全く関係ない話。クライアントの端末がなにであるかとか
クライアントがブラウザとかクローラーとか、SPAか否かとか
そういったクライアントは完全に無視できる話なんだよ。
お前が言いたいのはクライアントが○○の場合には〜と
全部クライアントの話ししかしてね〜じゃんか
クライアントは関係ないんだよ。忘れていい。
お前、前提がおかしいぞ?
今は、サーバーにデータが無い場合に404を返すにはどうするかの話だ
そもそもHTTPステータスはサーバーが返すもの。サーバーでしか判断できない
ダム端も全く関係ない話。クライアントの端末がなにであるかとか
クライアントがブラウザとかクローラーとか、SPAか否かとか
そういったクライアントは完全に無視できる話なんだよ。
お前が言いたいのはクライアントが○○の場合には〜と
全部クライアントの話ししかしてね〜じゃんか
クライアントは関係ないんだよ。忘れていい。
931デフォルトの名無しさん
2018/02/18(日) 14:30:39.49ID:F2O3xW/S クライアントが関係ないっていうのはクローラーの例を使っても説明できる。
つまり、あなたのクライアントと、私(クローラー)のクライアントはデータを共有していません。
あなたのクライアントでは何かデータが表示されるんでしょうが、
私(クローラー)のクライアントはあなたのデータなんか知りません。
あなたのクライアントでSPAが動いていようが
私(クローラー)のクライアントでは動いていません
ってことなんだよ
つまり、あなたのクライアントと、私(クローラー)のクライアントはデータを共有していません。
あなたのクライアントでは何かデータが表示されるんでしょうが、
私(クローラー)のクライアントはあなたのデータなんか知りません。
あなたのクライアントでSPAが動いていようが
私(クローラー)のクライアントでは動いていません
ってことなんだよ
932デフォルトの名無しさん
2018/02/18(日) 14:42:23.81ID:F2O3xW/S クローラーが高度なレンダリング機能を備えているから
JavaScriptが動くっていうのも、クライアントの話なんで関係ない
単にレンダリングするってだけ
ここでSPAが〜とか言ってくるやつは、
レンダリングされる=SPAとしてクローラーが動くって
考えちゃってるんだろうなって思う。
もう少し具体的にいうと
クローラーが、Aというページを読み込んで表示されたBというリンクをクリックして
(History APIでURIが変わった時に)A+Bとなった情報を保存する
と思い込んじゃってるんでしょう?
そういうクローラーを作ることは可能だが、そんなことはしない。
なぜなら、Bというリンクをクリックした時にサーバーにアクセスしないかもしれないから
それを許すとクローラーのマシンの中だけで無限にアドレスが作れる。
しかもそのアドレスは他人がアクセスできるとは限らない。
クローラーというクライアントが生成したクローラー専用のURIになる。
実際の動きはこう
クローラーが、Aというページを読み込んで表示されたBというリンクを巡回するURIとして記録する
別のタイミングでHistoryAPIなんか使わずにBというURIでサーバーにアクセスして表示されたものを保存する
で、ここで重要なのは クローラーの "例から" 分かる通り URIを持つならばサーバーにアクセスする可能性がある
サーバーにアクセスされた時に404を返せば良いんだよっていう話をしている。
JavaScriptが動くっていうのも、クライアントの話なんで関係ない
単にレンダリングするってだけ
ここでSPAが〜とか言ってくるやつは、
レンダリングされる=SPAとしてクローラーが動くって
考えちゃってるんだろうなって思う。
もう少し具体的にいうと
クローラーが、Aというページを読み込んで表示されたBというリンクをクリックして
(History APIでURIが変わった時に)A+Bとなった情報を保存する
と思い込んじゃってるんでしょう?
そういうクローラーを作ることは可能だが、そんなことはしない。
なぜなら、Bというリンクをクリックした時にサーバーにアクセスしないかもしれないから
それを許すとクローラーのマシンの中だけで無限にアドレスが作れる。
しかもそのアドレスは他人がアクセスできるとは限らない。
クローラーというクライアントが生成したクローラー専用のURIになる。
実際の動きはこう
クローラーが、Aというページを読み込んで表示されたBというリンクを巡回するURIとして記録する
別のタイミングでHistoryAPIなんか使わずにBというURIでサーバーにアクセスして表示されたものを保存する
で、ここで重要なのは クローラーの "例から" 分かる通り URIを持つならばサーバーにアクセスする可能性がある
サーバーにアクセスされた時に404を返せば良いんだよっていう話をしている。
933デフォルトの名無しさん
2018/02/18(日) 14:42:58.66ID:AYB00j0e >>929
だから、結論を言うと、SPAで404にあたる場合に、表示するかなんてサーバが関与する事ではない。
ルータの二重管理にもなる。
だから、SPAでソフト404を出すしかない。
って言ってるんだが。
だから、結論を言うと、SPAで404にあたる場合に、表示するかなんてサーバが関与する事ではない。
ルータの二重管理にもなる。
だから、SPAでソフト404を出すしかない。
って言ってるんだが。
934デフォルトの名無しさん
2018/02/18(日) 14:44:45.48ID:AYB00j0e935デフォルトの名無しさん
2018/02/18(日) 14:45:15.29ID:AYB00j0e >>932
違うよ。
違うよ。
936デフォルトの名無しさん
2018/02/18(日) 14:48:58.99ID:F2O3xW/S >>933
だからSPAなんて忘れろってw
SPAを使おうが使うまいが、サーバーにアクセスされる時に
データがなければ、サーバーが404を返せばいいだけだって言ってる。
URIを直接ブラウザで開くならば、そのタイミングで404を返せばいいし、
History APIでURIを変えただけならば、その時にAjaxでリクエストあればそのタイミングで404を返せばいい
(その時にAjaxでリクエストがなければそもそも404を変えしようがない)
404をどう返すかの話をしていて、404をどう表示するかの話はしてないんだよ。
だからSPAなんて忘れろってw
SPAを使おうが使うまいが、サーバーにアクセスされる時に
データがなければ、サーバーが404を返せばいいだけだって言ってる。
URIを直接ブラウザで開くならば、そのタイミングで404を返せばいいし、
History APIでURIを変えただけならば、その時にAjaxでリクエストあればそのタイミングで404を返せばいい
(その時にAjaxでリクエストがなければそもそも404を変えしようがない)
404をどう返すかの話をしていて、404をどう表示するかの話はしてないんだよ。
937デフォルトの名無しさん
2018/02/18(日) 14:49:05.24ID:AYB00j0e サーバは、API以外同じコンテンツをどのURLでも吐くもんだろ。SSR無しのSPAなら。
だから頭おかしい発想になってるんだと思うが。
404である、とか、一旦Webページの発想から離れられないもんか、
Dreamweaverでシコシコ画面作ってる「ウェブ屋」でもあるまいし。
だから頭おかしい発想になってるんだと思うが。
404である、とか、一旦Webページの発想から離れられないもんか、
Dreamweaverでシコシコ画面作ってる「ウェブ屋」でもあるまいし。
938デフォルトの名無しさん
2018/02/18(日) 14:51:07.76ID:F2O3xW/S >>934
> その「単にレンダリングするだけ」がダム端そのものだと言っとるんだよ。
https://www.nttpc.co.jp/yougo/%E3%83%80%E3%83%A0%E7%AB%AF%E6%9C%AB.html
> つまりダム端末は、自分で計算したりデータを保存したり出来ない“頭の悪い端末”という意味で、
>英語では dumb-terminal(ダム・ターミナル)という。それを日本語化して
>「ダム端末」、略して「ダム端」と呼ぶことも多い。
レンダリングする頭があればダム端にはならんが?w
> その「単にレンダリングするだけ」がダム端そのものだと言っとるんだよ。
https://www.nttpc.co.jp/yougo/%E3%83%80%E3%83%A0%E7%AB%AF%E6%9C%AB.html
> つまりダム端末は、自分で計算したりデータを保存したり出来ない“頭の悪い端末”という意味で、
>英語では dumb-terminal(ダム・ターミナル)という。それを日本語化して
>「ダム端末」、略して「ダム端」と呼ぶことも多い。
レンダリングする頭があればダム端にはならんが?w
939デフォルトの名無しさん
2018/02/18(日) 14:53:33.03ID:AYB00j0e >>936
なんで忘れなければいけないんだ…?
>>834
が発端だろ。
URLをブラウザで叩いて、404であるかどうかって時点で違うよね。
ajaxがどうのと言ってるけど、ajaxなんか発生しない、単なる画面切り替えのhistoryAPI操作もあるよね。
それは、もとの画面が切り替わった状態、として扱われるべきだよね。リロードの時。
でも、使うのはSSR無しだと同じコンテンツだよね。だからpathinfo使うんだよね。
頭おかしくなってるのはこのへん。
で、画面切り替えではなく、手入力で変なアドレス入れられると、
「切り替えるはずの画面が無かった」なんて判断は、JS側にしか出来ないよね、って言ってる。
なんで忘れなければいけないんだ…?
>>834
が発端だろ。
URLをブラウザで叩いて、404であるかどうかって時点で違うよね。
ajaxがどうのと言ってるけど、ajaxなんか発生しない、単なる画面切り替えのhistoryAPI操作もあるよね。
それは、もとの画面が切り替わった状態、として扱われるべきだよね。リロードの時。
でも、使うのはSSR無しだと同じコンテンツだよね。だからpathinfo使うんだよね。
頭おかしくなってるのはこのへん。
で、画面切り替えではなく、手入力で変なアドレス入れられると、
「切り替えるはずの画面が無かった」なんて判断は、JS側にしか出来ないよね、って言ってる。
940デフォルトの名無しさん
2018/02/18(日) 14:54:06.49ID:AYB00j0e941デフォルトの名無しさん
2018/02/18(日) 14:56:10.32ID:F2O3xW/S >>937
> サーバは、API以外同じコンテンツをどのURLでも吐くもんだろ。SSR無しのSPAなら。
コンテンツとHTTPステータスは別。
同じコンテンツを返しても、HTTPステータスは違っても良い。
極端な話、404を返しながら、コンテンツを返すことだってある
それからSPA(それはクライアントの話)によってサーバーが挙動を変えるわけじゃない。
サーバーにとってクライアントがなにでどうやって動いているかは関係ない
(サーバー側が手抜きだから)HTTPステータスが全部200を返してしまう。
ページがなくても200を返してしまう。って話だから
それならサーバー側をちゃんと作りましょうで終わる話
> サーバは、API以外同じコンテンツをどのURLでも吐くもんだろ。SSR無しのSPAなら。
コンテンツとHTTPステータスは別。
同じコンテンツを返しても、HTTPステータスは違っても良い。
極端な話、404を返しながら、コンテンツを返すことだってある
それからSPA(それはクライアントの話)によってサーバーが挙動を変えるわけじゃない。
サーバーにとってクライアントがなにでどうやって動いているかは関係ない
(サーバー側が手抜きだから)HTTPステータスが全部200を返してしまう。
ページがなくても200を返してしまう。って話だから
それならサーバー側をちゃんと作りましょうで終わる話
942デフォルトの名無しさん
2018/02/18(日) 14:56:39.90ID:F2O3xW/S943デフォルトの名無しさん
2018/02/18(日) 14:57:37.94ID:AYB00j0e SPAはアプリケーションであって、Webページの軽量版でもおしゃれ版でもリロードなし版でも無い。
一つの画面に1リクエストでもない。
アプリケーションなんだから。
こいつの頭の中でポップアップする子画面とかどう処理されてるのか謎過ぎる。
一つの画面に1リクエストでもない。
アプリケーションなんだから。
こいつの頭の中でポップアップする子画面とかどう処理されてるのか謎過ぎる。
944デフォルトの名無しさん
2018/02/18(日) 14:58:27.50ID:AYB00j0e945デフォルトの名無しさん
2018/02/18(日) 14:59:24.98ID:AYB00j0e >>942
うん?
ただレンダリングするだけなら、ダム端と同じ、は
ただHTMLをレンダリングするだけなら、ただエスケープシーケンスをレンダリングするダム端と同じだ、と言ってるんだが。
コンテキスト読めてる?
うん?
ただレンダリングするだけなら、ダム端と同じ、は
ただHTMLをレンダリングするだけなら、ただエスケープシーケンスをレンダリングするダム端と同じだ、と言ってるんだが。
コンテキスト読めてる?
946デフォルトの名無しさん
2018/02/18(日) 15:05:53.24ID:F2O3xW/S >>939
> >>936
> なんで忘れなければいけないんだ…?
> >>834
> が発端だろ。
だから、SPAがどうのこうのって考えてる事自体が間違いなんだよ
>>834のリンク先のソフト404エラーの内容見てみ?
SPAの話であるとか全く関係ない
リンク先引用しようか?
> ソフト 404 エラーとは、サイトの URL にアクセスしたときに、
> ページが存在しないことを示すページと 200 レベル(成功)のコードがブラウザに返されることです
「サイトの URL にアクセスしたときに」って書いてあるだろ。
SPAでもなんでも構わないが、サイトのURLにアクセスしない時には全く関係ない話。
(SPAで)サイトのURLにHistory APIで変更すると、サーバーにアクセスしなくても画面に表示できる〜とか
いいだすから、おいおいってなる。前提が違うだろ。サーバーにアクセスしない時は考える必要がない。
サイトの URL にアクセスしたときの話なんだから
ただのa要素のリンクだろうがHistory APIで変更しようが関係ない。どちらも同じURLだ。
そのURLに対して「サイトのURLにアクセスした時に」404を返すのがソフト404対策なんだよ。
で、発端の>>834へのレスだ
> SPAを作る時にページが存在しない場合にをどうやって404を返せばいいんでしょうか?
「サイトの URL にアクセスされたときに」データがなければ404を返せばいい
SPAとか考える必要はない。
> >>936
> なんで忘れなければいけないんだ…?
> >>834
> が発端だろ。
だから、SPAがどうのこうのって考えてる事自体が間違いなんだよ
>>834のリンク先のソフト404エラーの内容見てみ?
SPAの話であるとか全く関係ない
リンク先引用しようか?
> ソフト 404 エラーとは、サイトの URL にアクセスしたときに、
> ページが存在しないことを示すページと 200 レベル(成功)のコードがブラウザに返されることです
「サイトの URL にアクセスしたときに」って書いてあるだろ。
SPAでもなんでも構わないが、サイトのURLにアクセスしない時には全く関係ない話。
(SPAで)サイトのURLにHistory APIで変更すると、サーバーにアクセスしなくても画面に表示できる〜とか
いいだすから、おいおいってなる。前提が違うだろ。サーバーにアクセスしない時は考える必要がない。
サイトの URL にアクセスしたときの話なんだから
ただのa要素のリンクだろうがHistory APIで変更しようが関係ない。どちらも同じURLだ。
そのURLに対して「サイトのURLにアクセスした時に」404を返すのがソフト404対策なんだよ。
で、発端の>>834へのレスだ
> SPAを作る時にページが存在しない場合にをどうやって404を返せばいいんでしょうか?
「サイトの URL にアクセスされたときに」データがなければ404を返せばいい
SPAとか考える必要はない。
947デフォルトの名無しさん
2018/02/18(日) 15:07:32.04ID:F2O3xW/S >>945
ダム端の定義がしたいなら、どっかよそでやれ
ダム端の定義がしたいなら、どっかよそでやれ
948デフォルトの名無しさん
2018/02/18(日) 15:08:12.87ID:AYB00j0e >>946
だから、データが無いか知ってるのはアプリケーションになってしまうのが、SPAだから、問題になってるんだよ。
お前が最初の時点から読み間違えてるの。
バカなの。
いいかげん認めて。めんどくさくなってきた。
技術者なら知らないことを知りませんでしたと言うのは大切だよ。
だから、データが無いか知ってるのはアプリケーションになってしまうのが、SPAだから、問題になってるんだよ。
お前が最初の時点から読み間違えてるの。
バカなの。
いいかげん認めて。めんどくさくなってきた。
技術者なら知らないことを知りませんでしたと言うのは大切だよ。
949デフォルトの名無しさん
2018/02/18(日) 15:09:00.51ID:AYB00j0e950デフォルトの名無しさん
2018/02/18(日) 15:10:01.70ID:AYB00j0e 俺は降りる。ずっと勘違いしとけ。
951デフォルトの名無しさん
2018/02/18(日) 15:10:43.79ID:F2O3xW/S >>948
> だから、データが無いか知ってるのはアプリケーションになってしまうのが、SPAだから、問題になってるんだよ。
404ってサーバーが返すものだぞ?
サーバーがデータがないとクライアントに返すものなのに、
データが無いか知ってるのがアプリケーション?
サーバーと関係ない話なら最初から404とか200ですら出てこないだろ。
問題になるどころか、問題そのものがない
> だから、データが無いか知ってるのはアプリケーションになってしまうのが、SPAだから、問題になってるんだよ。
404ってサーバーが返すものだぞ?
サーバーがデータがないとクライアントに返すものなのに、
データが無いか知ってるのがアプリケーション?
サーバーと関係ない話なら最初から404とか200ですら出てこないだろ。
問題になるどころか、問題そのものがない
952デフォルトの名無しさん
2018/02/18(日) 15:16:19.87ID:F2O3xW/S ん? もしかして>>834もそうなのかもしれないが、他のやつも
404が「サーバーから返すもの」
つまり HTTPというプロトコルを使ってクライアントから
サーバーにアクセスした時に、サーバーからクライアントへ
返すものだって分かってないのか?
404が「サーバーから返すもの」
つまり HTTPというプロトコルを使ってクライアントから
サーバーにアクセスした時に、サーバーからクライアントへ
返すものだって分かってないのか?
953デフォルトの名無しさん
2018/02/18(日) 15:19:01.00ID:F2O3xW/S 404はHTTPプロトコルレベルの話なんだから、
仮にHTMLとJavaScriptだけで動くものがって
一切サーバーとアクセスしない=HTTPプロトコルを使わない場合
には、当然HTTPプロトコルレベルの話であるHTTPステータスコード404(200も)はでてこない。
これは常識だよね?
ここまではいいよね?
仮にHTMLとJavaScriptだけで動くものがって
一切サーバーとアクセスしない=HTTPプロトコルを使わない場合
には、当然HTTPプロトコルレベルの話であるHTTPステータスコード404(200も)はでてこない。
これは常識だよね?
ここまではいいよね?
954デフォルトの名無しさん
2018/02/18(日) 15:36:21.08ID:Ct2k6iqr955デフォルトの名無しさん
2018/02/18(日) 15:46:08.25ID:AYB00j0e 一切アクセスをしないと言えど、リロード時にはリクエストは飛ぶからな。サービスワーカーにでも。
その時帰ってくるのはコンテンツとしては200、ただしHTML/JSが表示するのは存在しないというエラーになるだろうが。
プロトコル上の404と、ソフト404(≒200)はもちろん区別ついてるが、一般的にソフト404と呼ぶんだよ。
ソフト404ってのはプロトコル上のエラーコードを概念的な名前として使ってるだけであって。
お前が、周りが何を問題にしてるかわかってないんだろう。
いろんな問題をごちゃまぜにした結果馬鹿な事言ってると思いたいわ。
その時帰ってくるのはコンテンツとしては200、ただしHTML/JSが表示するのは存在しないというエラーになるだろうが。
プロトコル上の404と、ソフト404(≒200)はもちろん区別ついてるが、一般的にソフト404と呼ぶんだよ。
ソフト404ってのはプロトコル上のエラーコードを概念的な名前として使ってるだけであって。
お前が、周りが何を問題にしてるかわかってないんだろう。
いろんな問題をごちゃまぜにした結果馬鹿な事言ってると思いたいわ。
956デフォルトの名無しさん
2018/02/18(日) 15:48:40.21ID:F2O3xW/S >>954
俺はHTTPステータスコード404を返したいんだから、
HTTPプロトコルでサーバーにアクセスのは当然の話として
> SPAを作る時にページが存在しない場合にをどうやって404を返せばいいんでしょうか?
というのは今現在200が返ってきてしまって困っているという状況には
>>917 で説明したパターンで起こるのを知っているからその話だと理解した
下手な作りだと、例えば http://example.com/foo/1 でデータがなくて
普通のウェブアプリだと404が返ってくる状況でも、(下手な)SPAの作りだと
>>917みたいに一旦 SPA(Single Page Application)のシングルに相当するページを表示してから、
(404になる)データを読み込むという流れだから、200になってしまう。
これを404にするにはどうすればいいかの話をしていたんだが?
そうか、やけにサーバーにアクセスしないことも有るって強調していたのは
HTTPリクエストを伴わないからそもそもHTTPの404の話なんかでてこないことに
気づいていなかったんだろうな。その時点で話について来れてなかったのか
俺はHTTPステータスコード404を返したいんだから、
HTTPプロトコルでサーバーにアクセスのは当然の話として
> SPAを作る時にページが存在しない場合にをどうやって404を返せばいいんでしょうか?
というのは今現在200が返ってきてしまって困っているという状況には
>>917 で説明したパターンで起こるのを知っているからその話だと理解した
下手な作りだと、例えば http://example.com/foo/1 でデータがなくて
普通のウェブアプリだと404が返ってくる状況でも、(下手な)SPAの作りだと
>>917みたいに一旦 SPA(Single Page Application)のシングルに相当するページを表示してから、
(404になる)データを読み込むという流れだから、200になってしまう。
これを404にするにはどうすればいいかの話をしていたんだが?
そうか、やけにサーバーにアクセスしないことも有るって強調していたのは
HTTPリクエストを伴わないからそもそもHTTPの404の話なんかでてこないことに
気づいていなかったんだろうな。その時点で話について来れてなかったのか
957デフォルトの名無しさん
2018/02/18(日) 15:52:23.09ID:F2O3xW/S958デフォルトの名無しさん
2018/02/18(日) 16:00:36.45ID:AYB00j0e 違うよ。
SPAだと、example.com/
以下はHTTPで返すものは同じコンテンツを返して当然だと言ってるの。
例外はexample.com/api/xxxxみたいなAPIのURL。
その後についてくるfoo/1というのは、アプリケーションに対するパラメータであって、HTTPサーバがハンドリングする「ための」ものではない、と。
example.com/history/2017
というURIは、historyの2017分、というSPAへのパラメータであって、それが存在するかどうかはHTTPサーバは知りようが無い。
というか、historyが存在するかどうかも関係ない。
アプリケーションは、history/2017というルートから、適切なコントロールとapiで、ログイン認証したり、履歴ページを表示したり、そこに、ログインユーザ(またはpuiblicな)の2017年分のデータをapiから取得して並べたりする。
apiのレスポンスとして404もわかるが、その404は200データなしとは異なるよね、ってのが前半に言ってた事で。
200になってしまう、と言うのは話がおかしくて、200で当然だが、なんだよ。
レスポンスを404にしたいんじゃなくて、404というレスポンスの値に相当する表示を表現するにはどうしたら良いか、の話だろ。
SPAだと、example.com/
以下はHTTPで返すものは同じコンテンツを返して当然だと言ってるの。
例外はexample.com/api/xxxxみたいなAPIのURL。
その後についてくるfoo/1というのは、アプリケーションに対するパラメータであって、HTTPサーバがハンドリングする「ための」ものではない、と。
example.com/history/2017
というURIは、historyの2017分、というSPAへのパラメータであって、それが存在するかどうかはHTTPサーバは知りようが無い。
というか、historyが存在するかどうかも関係ない。
アプリケーションは、history/2017というルートから、適切なコントロールとapiで、ログイン認証したり、履歴ページを表示したり、そこに、ログインユーザ(またはpuiblicな)の2017年分のデータをapiから取得して並べたりする。
apiのレスポンスとして404もわかるが、その404は200データなしとは異なるよね、ってのが前半に言ってた事で。
200になってしまう、と言うのは話がおかしくて、200で当然だが、なんだよ。
レスポンスを404にしたいんじゃなくて、404というレスポンスの値に相当する表示を表現するにはどうしたら良いか、の話だろ。
959デフォルトの名無しさん
2018/02/18(日) 16:01:57.46ID:F2O3xW/S > SPAだと、example.com/
> 以下はHTTPで返すものは同じコンテンツを返して当然だと言ってるの。
ほんと呆れる。クライアントのことなんかなんけいないって言ってるのに
まーだクライアントがSPAで動いているとーとか言ってやがる
> 以下はHTTPで返すものは同じコンテンツを返して当然だと言ってるの。
ほんと呆れる。クライアントのことなんかなんけいないって言ってるのに
まーだクライアントがSPAで動いているとーとか言ってやがる
960デフォルトの名無しさん
2018/02/18(日) 16:02:58.40ID:AYB00j0e961デフォルトの名無しさん
2018/02/18(日) 16:03:47.16ID:AYB00j0e >>959
お前は本当に議論が出来ないやつだな。
お前は本当に議論が出来ないやつだな。
962デフォルトの名無しさん
2018/02/18(日) 16:04:48.58ID:F2O3xW/S > 一切アクセスをしないと言えど、リロード時にはリクエストは飛ぶからな。
自分でリロードした時にサーバーにリクエスト飛ぶと言ってるくせにw
> その後についてくるfoo/1というのは、アプリケーションに対するパラメータであって、HTTPサーバがハンドリングする「ための」ものではない、と。
HTTPサーバーがハンドリングするだろ。その時に404返せって
言ってるのにこいつは理解しない
お前の作ったクソSPAは200を返すんだって何度も繰り返し言わなくてもわかってるわ
それがクソだから修正して404を返すようにしろって話だ。
自分でリロードした時にサーバーにリクエスト飛ぶと言ってるくせにw
> その後についてくるfoo/1というのは、アプリケーションに対するパラメータであって、HTTPサーバがハンドリングする「ための」ものではない、と。
HTTPサーバーがハンドリングするだろ。その時に404返せって
言ってるのにこいつは理解しない
お前の作ったクソSPAは200を返すんだって何度も繰り返し言わなくてもわかってるわ
それがクソだから修正して404を返すようにしろって話だ。
963デフォルトの名無しさん
2018/02/18(日) 16:05:01.09ID:AYB00j0e >SPAを作る時にページが存在しない場合にをどうやって404を返せばいいんでしょうか?
なんだから、SPAの話をして当然だろ。
SPAよくわかんないから旧石器時代の話します、とかもう間抜けすぎるからやめて。
なんだから、SPAの話をして当然だろ。
SPAよくわかんないから旧石器時代の話します、とかもう間抜けすぎるからやめて。
964デフォルトの名無しさん
2018/02/18(日) 16:08:10.52ID:AYB00j0e >>962
違うよね。
HTTPサーバは関与できない。
その処理はクライアントの実装次第で、サーバ側の処理としては存在しないから。
その二重管理は間違ってるし、ユーザしか知り得ない情報をサーバに持ち込むのは全く持って意味が無いというかデメリットしかない。
ユーザしか知り得ないことを正しく知らないのは大切。
だから、HTTPサーバは、pathinfoでなりなんなり、好きな方法で良いが、静的なコンテンツを吐く。
そもそもお前は404の意味もちょっと間違ってる。
違うよね。
HTTPサーバは関与できない。
その処理はクライアントの実装次第で、サーバ側の処理としては存在しないから。
その二重管理は間違ってるし、ユーザしか知り得ない情報をサーバに持ち込むのは全く持って意味が無いというかデメリットしかない。
ユーザしか知り得ないことを正しく知らないのは大切。
だから、HTTPサーバは、pathinfoでなりなんなり、好きな方法で良いが、静的なコンテンツを吐く。
そもそもお前は404の意味もちょっと間違ってる。
965デフォルトの名無しさん
2018/02/18(日) 16:09:10.37ID:F2O3xW/S >>960
> そして、データなしは404とは違う。404は未検出、だ。データなしは200の空レスポンスとは相当意味合いが違う。
リソースとして考えろ、中の実装は忘れろ。
URI、例えば http://example.com/foo/1 というURIで示したい
リソースをNot Foundとしたいなら404だ。
http://example.com/foo/1 を表示した時、周りに広告やらカテゴリやら
いろんなデータがついてることよくあるよな? 例えそんなのがあったとしても
「http://example.com/foo/1 というURIで示したいリソース」がないなら404にするんだよ
SPAのhtml/jsがあったからって200にするな
抽象化して物事を考えられないのか
基準は「http://example.com/foo/1 というURIで示したいリソース」だ
まわりの関係ないもので判断するんじゃねーよ
> そして、データなしは404とは違う。404は未検出、だ。データなしは200の空レスポンスとは相当意味合いが違う。
リソースとして考えろ、中の実装は忘れろ。
URI、例えば http://example.com/foo/1 というURIで示したい
リソースをNot Foundとしたいなら404だ。
http://example.com/foo/1 を表示した時、周りに広告やらカテゴリやら
いろんなデータがついてることよくあるよな? 例えそんなのがあったとしても
「http://example.com/foo/1 というURIで示したいリソース」がないなら404にするんだよ
SPAのhtml/jsがあったからって200にするな
抽象化して物事を考えられないのか
基準は「http://example.com/foo/1 というURIで示したいリソース」だ
まわりの関係ないもので判断するんじゃねーよ
966デフォルトの名無しさん
2018/02/18(日) 16:10:19.39ID:AYB00j0e >>962
そもそも、ページ(正確にはSPAの画面)は存在するんだよ。
そして、画面は一つのリソースから構成されてるわけじゃないんだから。
200で画面出して、集まったデータ分表示するのはまっとうでしょ。
そこで、APIが200のデータなしではなく404返したなら、完全なるエラー画面に飛ばす必要があるかもしれんが。
そもそも、ページ(正確にはSPAの画面)は存在するんだよ。
そして、画面は一つのリソースから構成されてるわけじゃないんだから。
200で画面出して、集まったデータ分表示するのはまっとうでしょ。
そこで、APIが200のデータなしではなく404返したなら、完全なるエラー画面に飛ばす必要があるかもしれんが。
967デフォルトの名無しさん
2018/02/18(日) 16:11:12.18ID:F2O3xW/S >>963
お前、質問者が
HTMLを作る時にページが存在しない場合にをどうやって404を返せばいいんでしょうか?
っていったら、HTMLの話すんのか?
404を返すのはHTTPサーバー(or ウェブアプリ)なんだから、
質問者が関係ないものを持ち出してきたものとして、HTMLの話ではなく
HTTPサーバー(or ウェブアプリ)の話をするだろ
お前、質問者が
HTMLを作る時にページが存在しない場合にをどうやって404を返せばいいんでしょうか?
っていったら、HTMLの話すんのか?
404を返すのはHTTPサーバー(or ウェブアプリ)なんだから、
質問者が関係ないものを持ち出してきたものとして、HTMLの話ではなく
HTTPサーバー(or ウェブアプリ)の話をするだろ
968デフォルトの名無しさん
2018/02/18(日) 16:13:01.23ID:F2O3xW/S >>966
画面が存在するのと404を返すのは別の話
カスタム404ページとか調べてこい
画面は存在するが、404を返している。
そして忘れんなよ? HTTPステータスコードは
HTTPプロトコルで、サーバーにアクセスした時に
サーバーから返す時に使うものだ
画面が存在するのと404を返すのは別の話
カスタム404ページとか調べてこい
画面は存在するが、404を返している。
そして忘れんなよ? HTTPステータスコードは
HTTPプロトコルで、サーバーにアクセスした時に
サーバーから返す時に使うものだ
969デフォルトの名無しさん
2018/02/18(日) 16:14:21.22ID:AYB00j0e >>965
リソースとして考えて、空と、見つからない、は断じて違うもの。
実装論だと、apiの互換性がなくなって旧ver消したなら、APIが見つからない、404。
apiはあってて、処理も正しく行われて、データなかったよ、は404とは限らない。
なら、APIが見つからないと切り分ける必要あるよね。
抽象化すると、
あるものは200
見つからないものは404
あったけど中身入ってないよ、は200
探し方が悪い、は400
お前には見せられない、は403
名乗れ、は401
サーバとして答えられん、は500系。
お前が抽象化できてないよ。
完全な実装論じゃん、
リソースとして考えて、空と、見つからない、は断じて違うもの。
実装論だと、apiの互換性がなくなって旧ver消したなら、APIが見つからない、404。
apiはあってて、処理も正しく行われて、データなかったよ、は404とは限らない。
なら、APIが見つからないと切り分ける必要あるよね。
抽象化すると、
あるものは200
見つからないものは404
あったけど中身入ってないよ、は200
探し方が悪い、は400
お前には見せられない、は403
名乗れ、は401
サーバとして答えられん、は500系。
お前が抽象化できてないよ。
完全な実装論じゃん、
970デフォルトの名無しさん
2018/02/18(日) 16:14:32.94ID:AYB00j0e >>967
そうだよ。
そうだよ。
971デフォルトの名無しさん
2018/02/18(日) 16:15:04.37ID:AYB00j0e972デフォルトの名無しさん
2018/02/18(日) 16:18:20.71ID:AYB00j0e >>967
このどうやって404を、ってのは、存在しないものをどうやったら手に入れられるか、って話であって、
たとえ話に近いだろ。
そこに、いや、ajaxが、とかアスペのようにHTTPサーバについて一所懸命に勉強したつたない知識で騒がないで。
このどうやって404を、ってのは、存在しないものをどうやったら手に入れられるか、って話であって、
たとえ話に近いだろ。
そこに、いや、ajaxが、とかアスペのようにHTTPサーバについて一所懸命に勉強したつたない知識で騒がないで。
973デフォルトの名無しさん
2018/02/18(日) 16:21:22.10ID:F2O3xW/S 「URIが指し示すリソース」っていうのが分からんのかもなw
例えば以下の適当なページは404を返してくる
https://support.google.com/websearch/answer/dsfasdfasdfa
だが、画面上は検索ボックスやGoogleアプリのリンクや
ログイン状態といった「リソース」が表示されてる
>>966の馬鹿げた理屈では
> そして、画面は一つのリソースから構成されてるわけじゃないんだから。
> 200で画面出して、集まったデータ分表示するのはまっとうでしょ。
この適当なページにたいして>>966では200を出すのがまっとうだと言っているが
見ての通り、googleはそんなことはしていない。
なぜなら「URIが指し示すリソース」というのは(これはヘルプなので)
ペルプの1ページのことで、まわりにあるごちゃごちゃしたリソースのことではないから
もちろんこの周りにあるごちゃごちゃしたリソースにSPAのシステムも含まれる
画面が出るから200とかアホすぎw SPAだから200にするんだとかアホすぎw
200にするか404にするかは「URIが指し示すリソース」の存在の有無が基準だ
例えば以下の適当なページは404を返してくる
https://support.google.com/websearch/answer/dsfasdfasdfa
だが、画面上は検索ボックスやGoogleアプリのリンクや
ログイン状態といった「リソース」が表示されてる
>>966の馬鹿げた理屈では
> そして、画面は一つのリソースから構成されてるわけじゃないんだから。
> 200で画面出して、集まったデータ分表示するのはまっとうでしょ。
この適当なページにたいして>>966では200を出すのがまっとうだと言っているが
見ての通り、googleはそんなことはしていない。
なぜなら「URIが指し示すリソース」というのは(これはヘルプなので)
ペルプの1ページのことで、まわりにあるごちゃごちゃしたリソースのことではないから
もちろんこの周りにあるごちゃごちゃしたリソースにSPAのシステムも含まれる
画面が出るから200とかアホすぎw SPAだから200にするんだとかアホすぎw
200にするか404にするかは「URIが指し示すリソース」の存在の有無が基準だ
974デフォルトの名無しさん
2018/02/18(日) 16:25:01.50ID:AYB00j0e >>973
違うよ。
違うよ。
975デフォルトの名無しさん
2018/02/18(日) 16:25:54.86ID:F2O3xW/S >>974
反論しろよw
反論しろよw
976デフォルトの名無しさん
2018/02/18(日) 16:29:10.66ID:AYB00j0e977デフォルトの名無しさん
2018/02/18(日) 16:29:38.60ID:AYB00j0e ああ、アプリ→Webアプリ、な。
978デフォルトの名無しさん
2018/02/18(日) 16:32:27.92ID:AYB00j0e 一つの画面が一つのリソースからできてるわけでないってのもわかるか。
画面を動かすとアドレスが変わるけど、リロードしてもSSRしていないリソースはそのまま落ちてくるのもわかるな。
画面を動かすとアドレスが変わるけど、リロードしてもSSRしていないリソースはそのまま落ちてくるのもわかるな。
979デフォルトの名無しさん
2018/02/18(日) 16:32:29.01ID:F2O3xW/S 例示するとこれかな?
例えば以下の適当なページは404を返してくる
https://support.google.com/websearch/answer/dsfasdfasdfa
お前の理屈ガッバガバw
例えば以下の適当なページは404を返してくる
https://support.google.com/websearch/answer/dsfasdfasdfa
お前の理屈ガッバガバw
980デフォルトの名無しさん
2018/02/18(日) 16:33:48.38ID:F2O3xW/S981デフォルトの名無しさん
2018/02/18(日) 16:33:52.75ID:AYB00j0e982デフォルトの名無しさん
2018/02/18(日) 16:35:12.53ID:AYB00j0e SPAでも同じ話だろ、って言いたいんだろうが、全然違うことがわかったよな。
技術についてこれねえやつは発言しないでくれるかな。
COBOLでは〇〇だった、とかドヤってくる無能そっくりなんだわ。
技術についてこれねえやつは発言しないでくれるかな。
COBOLでは〇〇だった、とかドヤってくる無能そっくりなんだわ。
983デフォルトの名無しさん
2018/02/18(日) 16:35:57.85ID:F2O3xW/S あ、なるほど、こいつURIリソースが見つからないのと
検索結果が見つからないをごっちゃにしてるのかw
検索結果が見つからないをごっちゃにしてるのかw
984デフォルトの名無しさん
2018/02/18(日) 16:37:11.71ID:AYB00j0e985デフォルトの名無しさん
2018/02/18(日) 16:37:25.16ID:F2O3xW/S >>981
> そっちはWebページ、俺が挙げたのはSPA。
SPAで404が返ってこないものを出して
200が返ってきましたーって意味ねーだろw
SPAを使って404を返してくるものをもってこいって。
画面に地図表示されて明らかに404じゃないのに
404でてないとかいわれてもな(苦笑
> そっちはWebページ、俺が挙げたのはSPA。
SPAで404が返ってこないものを出して
200が返ってきましたーって意味ねーだろw
SPAを使って404を返してくるものをもってこいって。
画面に地図表示されて明らかに404じゃないのに
404でてないとかいわれてもな(苦笑
986デフォルトの名無しさん
2018/02/18(日) 16:37:46.52ID:F2O3xW/S >>984
APIレスポンスの中で404になるべきものってどれですか?
APIレスポンスの中で404になるべきものってどれですか?
987デフォルトの名無しさん
2018/02/18(日) 16:38:11.19ID:AYB00j0e だからURIとURLを区別してたのに、アホなのかな。
988デフォルトの名無しさん
2018/02/18(日) 16:39:19.18ID:WV1p31YW989デフォルトの名無しさん
2018/02/18(日) 16:39:49.25ID:WV1p31YW >>986
自分で考えてみたらどうだ?
自分で考えてみたらどうだ?
990デフォルトの名無しさん
2018/02/18(日) 16:40:36.85ID:WV1p31YW あ、toastで出てるわ。snackじゃなかった。
991デフォルトの名無しさん
2018/02/18(日) 16:41:39.82ID:F2O3xW/S992デフォルトの名無しさん
2018/02/18(日) 16:43:00.60ID:WV1p31YW 実在するもの叩いたら、今回出てるのtoastわかると思うんだがな。
>>980
そうだよ。だからURIなの。httpとhttpsは違うものでしょw
Androidで見たら、前者叩いたらマップが開くんだよ。
>>980
そうだよ。だからURIなの。httpとhttpsは違うものでしょw
Androidで見たら、前者叩いたらマップが開くんだよ。
993デフォルトの名無しさん
2018/02/18(日) 16:43:14.95ID:WV1p31YW >>991
全てじゃないよ。
全てじゃないよ。
994デフォルトの名無しさん
2018/02/18(日) 16:44:15.64ID:F2O3xW/S995デフォルトの名無しさん
2018/02/18(日) 16:45:06.21ID:WV1p31YW >>994
自分でわかってるだろうが、違うよねww
自分でわかってるだろうが、違うよねww
996デフォルトの名無しさん
2018/02/18(日) 16:45:27.99ID:F2O3xW/S997デフォルトの名無しさん
2018/02/18(日) 16:45:58.61ID:WV1p31YW 逆に「サーバしか知らない事」はクライアントで判断出来るわけねえじゃんw
998デフォルトの名無しさん
2018/02/18(日) 16:46:44.20ID:WV1p31YW999デフォルトの名無しさん
2018/02/18(日) 16:47:33.18ID:WV1p31YW 何が言いたいんだと言ってるやつが一番わかってないだけの大舞踏会のおしまいw
1000デフォルトの名無しさん
2018/02/18(日) 16:48:40.48ID:WV1p31YW ほんと、化石は化石として生きればいいのに。
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1064日 0時間 28分 55秒
新しいスレッドを立ててください。
life time: 1064日 0時間 28分 55秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 芸能人の不倫に「誰と誰が寝たとかで人間性まで否定して叩くの気持ち悪くない?」 三崎優太氏、永野芽郁の不倫報道で私見 ★2 [jinjin★]
- 【🌋】富士山噴火で東京に「火山灰」4.9億㎥の戦慄 2時間で都市機能はマヒ、必要な備蓄は「大地震」以上と識者 [ぐれ★]
- 建設会社勤務、ラップ活動も 川崎女性遺棄の27歳容疑者 [少考さん★]
- 永野芽郁『キャスター』出演継続もドラマ公式インスタから完全に“消えた”! 「二股交際&不倫」報道で視聴者から“降板要求”殺到 ★2 [Ailuropoda melanoleuca★]
- ほんこん 宇多田ヒカル新曲の「夫婦別姓」歌詞に「これはない…俺は名字は統一した方がいいと思う」「感化されてるのか知らんけど」 [muffin★]
- 【発達障害】ADHDの「先延ばし癖」改善に「殴る」は有効か Xで主張流布、専門家は警鐘「ずっとは続かない」 [シャチ★]
- 日本人、ニュースアクセスNo.1の記事が電車の4人席が座れないとかいうしょーもない話題… [667744927]
- 地蔵
- 【急募】"死にたい"を耐える方法 [904880432]
- ふなふな言ってるうちにGWが終わるのをみんなで感慨深く楽しむお🏡
- 「東京に住んでると美術館や舞台オペラ、クラシック公演を毎日見に行ける」⇦これガチで東京以外のジャップでは実現不能だよな… [271912485]
- 【GW暇な奴来い】安価で指定されたものを全力で探してうpするスレ