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
■ このスレッドは過去ログ倉庫に格納されています
2015/03/22(日) 16:19:45.75ID:nW67tQ7U
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と判断できる
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】トランプ氏、海外制作映画に100%の関税を課す方針を明らかにした [蚤の市★]
- 【川崎・20歳女性死体遺棄】「あさひを返せ!」県警の説明に親族、友人ら90人が署に集まり猛抗議「嘘ばかり、謝れば済むことなのに」 ★5 [ぐれ★]
- 【芸能】フランスのコンビニで買ったおにぎりの値段に辛坊治郎が仰天 「狂ってる」 ネットもあ然「日本は完全に落ちぶれた」 [冬月記者★]
- 【住宅】退職後も家賃支払う「賃貸」か、住宅ローン見極め「持ち家」か…住居費は手取りの3割が目安 ★3 [ぐれ★]
- 【元日本代表】槙野智章、サッカー界の喫煙について仰天発言「結果を残している人、よく走る人はみんなタバコを吸ってるんですよ…」 [鉄チーズ烏★]
- 【🟤】大判焼き、今川焼き、回転焼き... 結局アイツは何なのか?全国調査の結果がコチラ [ぐれ★]
- LAD @ ATL ★11
- LAD @ ATL ★10
- 【DAZN】フォーミュラGP【F1 F2F3 SF P】Lap1691
- 井上尚弥×ラモン・カルデナス 4団体Sバンタム級防衛戦 1
- 井上尚弥×ラモン・カルデナス 4団体Sバンタム級防衛戦 2
- 【NJPW】新日本プロレスワールド part.2278
- 財務省・厚労省解体デモやってもノーダメージで面白くないよね、いっそみんなで山を上ればいいのに [677076729]
- 【胎内回帰】赤ちゃんすこすこスレッド👶🏡
- ▶ゲーマーズで一番べろちゅーしたい子は?
- コスプレイヤー「万博に行ってからずっと誹謗中傷されてます。なんとかして下さい」 [834922174]
- 葬式に喪服着ろなんて誰が決めたんだよなんの利権だくだらない 今の時代葬式の服装自由にしろやボケカスジャップ [817148728]
- 弱男「苦労せずに生きる人が許せなかった」車で小学生をひく←これ