X



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

■ このスレッドは過去ログ倉庫に格納されています
0001Name_Not_Found
垢版 |
2018/07/31(火) 12:30:52.90ID:???
JavaScript を自ら学ぶ人のための質問スレッドです。
次スレは>>950が(本スレで改善案があれば考慮して)立ててください

■規則/推奨ルール
・メール欄を空欄にし、名前にレス番を入れることを強く推奨(なりすまし防止)
・質問内容は具体的に。言葉だけでなく、出来る限り再現性を確認したサンプルコードの掲示。
・質問テンプレートの利用推奨。
・質問への「答え」だけでなく「意見」を出しても良い。

■禁止行為
・丸投げ質問
・迷惑スクリプトの質問
・オレオレ用語の使用(一般的な用語を使用する事)
・煽り、批判等の他人を不快にさせる行為(批判の代わりに「AよりBが良い」のような代案を出す事)

■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。
【条件】期待する回答の条件を書いてください。
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/

■回答者へ
・回答には多様性があります。他人の回答を尊重してください
・動作ブラウザや環境が限られる場合は、それを明記してください
・他人の回答を批判する代わりに、自分ならこう書くという例を示してください
・質問者がJavaScriptでなければ実現できないと勘違いしてるなら、その否定としてHTMLとCSSで実装しても良い
・他人の回答を見たくないのであれば、文句をつける代わりにNGにして見えないようにしてください。文句をつける=荒らしです
0330Name_Not_Found
垢版 |
2018/09/29(土) 10:42:15.73ID:2XpGYQdx
下のコードでaddEventListenerが実行されないのが良く分かりません。

window.onload = function () {
  window.addEventListener('load', function () {
    ・・・ // 実行されなかった
  });
};

なぜですか?
なお
 window.onload = function () {
ではなく、
 jQuery(function ($) {
でも実行されませんでした。そう言う仕様ですか?
0331Name_Not_Found
垢版 |
2018/09/29(土) 10:59:08.55ID:???
はい。そういう仕様です。
0332Name_Not_Found
垢版 |
2018/09/29(土) 11:05:20.80ID:???
いいえ、ケフィアです。
0333Name_Not_Found
垢版 |
2018/09/29(土) 11:18:16.83ID:???
>>330
ロードイベントが起こった後にロードイベントを監視しても、もう起こった後だから起こらない。
0334Name_Not_Found
垢版 |
2018/09/29(土) 12:05:38.19ID:???
>>330
そりゃ二重にロードイベントに紐付けしたら起動するわけが無い
どっちかだけにしろ
0335Name_Not_Found
垢版 |
2018/09/29(土) 12:13:24.85ID:???
どっちかだけ選ぶなんてできません!
0336Name_Not_Found
垢版 |
2018/09/29(土) 12:23:25.99ID:???
Life is a series of choices.(人生とは選択の連続である)- William Shakespeare(ウィリアム・シェイクスピア)
0337Name_Not_Found
垢版 |
2018/09/29(土) 15:26:44.37ID:???
>>330
おかしいな? jQueryの場合は動くはずだけど?
jQueryのloadはPromise的な処理になっていて
あとからつけても発動するように考慮されてある

jQueryの古いバージョンは違ったかな?って思って1.9.1にしたけど動く
それよりも古いバージョンはしらないけど
https://jsfiddle.net/6q4whbty/
0338Name_Not_Found
垢版 |
2018/09/29(土) 15:28:38.85ID:???
あ、逆か。
外側をjQueryにして、中をDOM APIにするわけね。
そりゃDOM APIじゃむりだ。中もjQueryにしなきゃ

ってか、外側でjQuery使っていてjQueryでやれることを
DOM APIを使ってやる必要ないでしょw
0339Name_Not_Found
垢版 |
2018/09/29(土) 23:37:04.71ID:tbk/HiSj
ヒロシキャンプ【キャンプ雑誌GARVYに登場!焚火会】
https://www.youtube.com/watch?v=EE_HBXQJDfM&;t=565s
ヒロシキャンプ【雪中ハンモック泊】
https://www.youtube.com/watch?v=47uHNVivDZA&;t=213s
【キャンプ】初めての泊まり。焚き火に男の料理!「ソロキャンプ」
https://www.youtube.com/watch?v=_6hAQmv6eYw
【キャンプ】食欲の秋!男のキャンプ飯。Solo Camping
https://www.youtube.com/watch?v=9IWX8seahAU
【キャンプ】ソロ・テント「ルクセ・ミニ・ピークU」組み立て!ワンポール
https://www.youtube.com/watch?v=mkVD6BWPhR0&;t=454s
友ヶ島で探検キャンプ1/3
https://www.youtube.com/watch?v=r4sR6jNg_3s
清流で蛍キャンプ 1/2
https://www.youtube.com/watch?v=9Uc7rhK3aEg&;t=23s
【bushcraft】ヒルバーグのグランドシートをタープに【Singularity】
https://www.youtube.com/watch?v=Fll6jgc3ufc&;t=1251s
ホットサンドクッカーでハッシュドポテト outdoor cooking
https://www.youtube.com/watch?v=yJPoTDUNIJo
暖かいキャンプお菓子 Hot Sweets
https://www.youtube.com/watch?v=zfYBLxcpeSw
0340Name_Not_Found
垢版 |
2018/09/29(土) 23:39:13.97ID:???
必要かどうかは私が決めることです
分からないのなら解答しなくていいので黙っててください
0341Name_Not_Found
垢版 |
2018/09/30(日) 03:03:11.19ID:???
>jQueryのloadはPromise的な処理になっていて
>あとからつけても発動する

どういう経緯でこうなってるんですか
pure-js側はそんなことないですよね
デバッグの妨げになるようにも思えるんですけど
0342Name_Not_Found
垢版 |
2018/09/30(日) 04:27:38.85ID:???
どういう経緯って言われても、何度も発生するイベントと
resolve(またはreject)状態になってから変わらないものは
そもそも性質が異なるからですよ。

Promiseもいまやpure-jsですが、昔はそんなものがなかったからイベントで代用していましたが、
他のイベントと違い発生したタイミングが重要なのではなくロードは発生したタイミングが知りたいというより、
「現在ロードされているか?されていなければされるまで待つ」という処理を行うのが普通なので
現在の状態を判断するという処理が必要になります。


結構複雑ですよ?まずjQueryのloadはブラウザのloadイベントではなく
それよりも早い段階で発生する、DOM構築が完了した直後の
DOMContentLoadedを捉えるものだというのは知っていますか?

DOMContentLoadedはHTML5で標準化されましたが、それまでは非標準で
https://qiita.com/mamosan/items/ff336b5cc0a1a95e03a7
Firefox 2 (2006年)、Safari 3.1(2008年)、Chrome 4(2010年)、IE 9(2011年)で
予約サポートされたものです。jQueryは2006年なので普及しておらず当時は
使えない人が大半だったってのがわかりますね?

jQueryのloadはこのDOMContentLoadedをシミュレートする形で実装されました。
詳細は省きますがドキュメントのとあるプロパティをsetTimeoutで監視して読み取れれば
イベント発生扱いとしています。この部分のコードだけでも面倒なのですが、今は
DOMContentLoadedが使えるし、シミュレートが完璧に動作すると信じて
DOMContentLoadedの話にすすみましょう。

DOMContentLoadedが発生するのはDOM構築が完了した直後です。ここで問題になるのは
パフォーマンスアップのために使われる非同期で実行されるJavaScriptの存在です。
同期的に実行されるJavaScriptはDOM構築完了前に実行されますが、非同期で実行される場合
DOM構築完了後に実行されます。つまりDOMContentLoadedが発生した後に
DOMContentLoadedを監視することになるわけです。つまりイベントはすでに発生しているので
捉えることはできません。>>330と似たような状況になりますね。
0343Name_Not_Found
垢版 |
2018/09/30(日) 04:28:13.41ID:???
ではどうするのかというと、イベントを監視する前にすでにDOMContentLoadedが発生したかを
document.readyStateを使ってチェックするわけです。

ですが単純には行かず、document.readyStateを使ってチェックしてまだloading中であれば、
addEventListenerでDOMContentLoadedを監視すると書いてしまうと、チェックした段階では
loadingだったが、addEventListenerするまでに間にDOMContentLoadedが発生してしまって
イベントが捉えられない可能性があります。

なので逆に実装し、addEventListenerでDOMContentLoadedを捉えるようにしてから、
document.readyStateを監視して、すでにreadyStatusがinteractiveにだったら
ずっと前にDOMContentLoadedが発生していたと判断するわけですが、
実はaddEventListenerを設定した直後にDOMContentLoadedが発生した可能性があるため
この場合は2回イベントが発生する可能性があります。それを避けるために状態管理で
1回しか発動しないようにするわけです。

これらの動きはDOM読み込みとJavaScriptの実行タイミングによるものなので
毎回発生するものではなく、まちまちで見つけづらいバグとなってしまいます。
ローカルでは問題ないのにサーバーにアップした発生する。
でも2回目以降はキャッシュが効いて速いので発生しないとかですね。

このように完璧に対応するのは複雑なのです。DOMの非同期読み込みをやめれば
解決するのですがパフォーマンスアップのためにブラウザに搭載された機能を
使うなというのは、ライブラリとしてありえませんね。

他のイベントでは必要ないのにloadに関してこれらが必要になるのは
DOM構築が完了したあとに何度も発生するイベントと、そもそもDOM構築完了を監視する
DOMContentLoadでは性質が異なるからなのです。

そして実際のユースケースを考えたら「ロード済みかロード完了時にイベント発生」して
欲しいため、APIもそのようになっているのが望ましいわけです。
開発者が上で書いたようなな複雑な処理を書くことなく、単純なAPIで判断できるため
それが原因で起きるマイナーなバグから逃れることができます。
0344Name_Not_Found
垢版 |
2018/09/30(日) 04:38:35.01ID:???
>パフォーマンスアップのために使われる非同期で実行されるJavaScriptの存在です。
>同期的に実行されるJavaScriptはDOM構築完了前に実行されますが、非同期で実行される場合
>DOM構築完了後に実行されます。つまりDOMContentLoadedが発生した後に
>DOMContentLoadedを監視することになるわけです。つまりイベントはすでに発生しているので
>捉えることはできません。

これどゆこと

ブラウザにおけるjavascriptの実行ってのは
今も昔も非同期な関数(呼び出し)があるだけで、原則は全部同期実行なんじゃないのけ
setTimeoutやXHRのcallbackの中でwindow.addEventListener('load', ... )なんてしないし
0345Name_Not_Found
垢版 |
2018/09/30(日) 04:49:30.00ID:???
「なんでonloadではなくDOMContentLoadedなのか」は?
つか化石IE対応のための負の遺産的挙動じゃないん
0347Name_Not_Found
垢版 |
2018/09/30(日) 07:53:25.95ID:???
>>345
IEは9の時代からDOMContentLoadedに対応してる。
対応してないブラウザのためというのなら、別にIEだけじゃなくて
その他のブラウザも非標準のDOMContentLoadedには対応していなかった
DOMContentLoadedが標準化されたのはHTML5になってからだ。
0348Name_Not_Found
垢版 |
2018/09/30(日) 07:57:00.94ID:???
非常に興味深い話だが話が長い
0349Name_Not_Found
垢版 |
2018/09/30(日) 08:01:26.63ID:???
それはわざと。レスする気なくするでしょ?それが狙い
不正にjQueryを貶めようとする奴らに反論する気をなさせる
0350Name_Not_Found
垢版 |
2018/09/30(日) 08:49:36.93ID:???
asyncは「DOM構築完了後に実行」される、ではなく
「DOM構築完了後に終了する場合がある」というべきでは

つかasyncしてもwindow.onload使えばいい話じゃないのか
0351Name_Not_Found
垢版 |
2018/09/30(日) 08:54:02.57ID:???
この件は良く知らんのだけど
>>337いわく1.9.1の時点からそういう挙動
・scriptのasyncはHTML5から
・jq 1.9.1リリース 2013年02月04日
・HTML5勧告     2014年10月28日
順番おかしくね
0352Name_Not_Found
垢版 |
2018/09/30(日) 09:04:11.75ID:???
>>351
jQのpromise的動作とjsタグのasync的動作はまったく別物
0353Name_Not_Found
垢版 |
2018/09/30(日) 09:05:03.28ID:???
間違ったscriptタグね、まぁ何でもいいや
0354Name_Not_Found
垢版 |
2018/09/30(日) 09:07:27.62ID:???
>>352
>>346
JQueryの良く分からん挙動がscriptのasyncと関係ないということになると
>>342-343の大長編レスの前提が崩れるんじゃないか?
0355Name_Not_Found
垢版 |
2018/09/30(日) 09:18:08.16ID:???
同期、非同期ぐらい勉強しろよ
0356Name_Not_Found
垢版 |
2018/09/30(日) 09:18:49.85ID:???
>>351
> ・>>337いわく1.9.1の時点からそういう挙動

どこにも1.9.1の時点からなんて書いてない。
少なくとも1.9.1ではそういう挙動だったってだけ。
おそらく最初からそうだろう
0357Name_Not_Found
垢版 |
2018/09/30(日) 09:30:03.28ID:???
>>352
何を持って別物と言ってるのかは知らないが、
PromiseオブジェクトにはPromise.resolve()とPromise.reject()という
メソッドがあって、それぞれ解決済み、リジェクト済みのオブジェクトを返す。

このオブジェクトにあとからthenメソッドでコールバック関数を
くっつけてもちゃんとコールバックが呼ばれるんだよ。
0358Name_Not_Found
垢版 |
2018/09/30(日) 09:32:38.78ID:???
> jQのpromise的動作とjsタグのasync的動作はまったく別物

jsタグってなに?HTMLタグっていいたいの?
HTMLタグのasyncはJavaScriptの実行を遅らせることで
見た目上のパフォーマンスを上げる技術で

その弊害として、DOMContentLoadedが先に呼ばれてしまうから
JavaScriptの発動が起きないってものなんだけど

jQueryはそのことも考慮されてるから、普通に書くだけで
非同期でJavaScriptが読み込まれても大丈夫って話をしてるんだよ

Promise的動作っていうのは、コールバックを後から追加しても
発動するって話。あんた全く別物の話をしてるよ
0361Name_Not_Found
垢版 |
2018/09/30(日) 09:42:15.90ID:???
>asyncはJavaScriptの実行を遅らせることで

遅らせてるのか?
htmlの解析処理と当該jsファイルのダウンロード・実行処理とを
切り離して並行処理させることで、htmlのパース・文章や画像の配置等が妨げられないようにしているだけでは?

DOMContentLoadedより後に処理が開始されるのではなく
DOMContentLoadedの前に終わるとは限らないというだけの話では?
0362Name_Not_Found
垢版 |
2018/09/30(日) 09:46:11.48ID:???
> DOMContentLoadedより後に処理が開始されるのではなく
> DOMContentLoadedの前に終わるとは限らないというだけの話では?

今はそういう細かい話はどうでも良くて、
需要なのはscriptタグのasyncを使われてると、DOMContentLoadedが
先に発生してしまうことがあるってことですよ

他にもRequireJSのような非同期でJavaScriptモジュールを読み込む仕組みを
使ったときにも発生しましたね。
0363Name_Not_Found
垢版 |
2018/09/30(日) 09:49:05.41ID:???
たとえ細かい話でも虚偽が含まれてる人の話は信用できないからなあ
0364Name_Not_Found
垢版 |
2018/09/30(日) 09:50:48.24ID:???
はは、信用出来ないっていうだけで、間違ってるとは言えない
あわれよのうw
0365Name_Not_Found
垢版 |
2018/09/30(日) 09:57:43.01ID:???
まあ間違ってるわけじゃないからね。信用出来ないってだけ
0366352
垢版 |
2018/09/30(日) 09:58:20.98ID:???
>>354>>357>>358
ごめん訂正するね
言葉足らずだった
「別物」ではなく「実装箇所が別物」
動作としては似たようなものだ
一番最初の気持ちとしてただ>>351の言ってることが的外れだったので意図としてはそれを訂正したかった
0367Name_Not_Found
垢版 |
2018/09/30(日) 10:03:04.24ID:???
window.addEventListener('load', ... )ではどうしてもダメなケースを聞きたい
>>330のような無能サンプルコードは除外するものとする
0368Name_Not_Found
垢版 |
2018/09/30(日) 10:06:48.99ID:???
(たぶんダメなケースなんて)ないです
0369Name_Not_Found
垢版 |
2018/09/30(日) 10:10:23.62ID:???
>>367
ページ内にある画像全てが読み込まれないと
JavaScriptが動かないのでダメ
0370Name_Not_Found
垢版 |
2018/09/30(日) 10:11:51.44ID:???
>>368
操作性悪くなって遅くても動くからダメじゃないんですって主張は禁止なw
その理屈だと電気がなくても生きていけるって回答になる。
0372Name_Not_Found
垢版 |
2018/09/30(日) 10:14:13.01ID:???
ゼロに。ゼロがいい。ゼロにしよう。
0373Name_Not_Found
垢版 |
2018/09/30(日) 10:21:20.40ID:???
asyncで読ませたい
どうしても早いタイミングDOMContentLoadedで動かしたい
asyncするとDOMContentLoadedに間に合わないリスクが怖い・・・
jQueryなら専用のコード書かなくてもすぐに実現!! ←今ココ

ざっくり書くとこんな感じかね?
DOM APIでもできないわけではないし
jQueryならといっても最初からそれを狙った実装ではないようだが
現実として便利に転用できますよ、という具合
0374Name_Not_Found
垢版 |
2018/09/30(日) 10:30:51.06ID:???
>>370
どっちにしてもwindow.onloadだとロードイベントに一個しか関数を紐付けできないから不便極まるんだよなぁ
一個だけしか使わないってんなら関係ないけどさぁ…
0375Name_Not_Found
垢版 |
2018/10/02(火) 19:34:20.80ID:4cwxn02l
>>374
たまにはaddEventListenerのことも思い出してあげてください
0377Name_Not_Found
垢版 |
2018/10/05(金) 07:10:11.63ID:???
そんなことよりお前らremoveEventListenerとか使ったことある?
使う機会がまったくないよなアレ
0378Name_Not_Found
垢版 |
2018/10/05(金) 08:16:06.35ID:???
>>377
そもそも今この瞬間までそいつの存在すら知らなかったぞ
0379Name_Not_Found
垢版 |
2018/10/05(金) 08:21:08.17ID:???
>>377
使ったことはないが
disableにできない類のもののイベントリスナを切りたいとか
起動する関数を切り替えたいとか
使える機会はいろいろ思いつくぞ

呼び出される関数側でチェックして即returnとかの別手段でだいたい十分だけど
0380Name_Not_Found
垢版 |
2018/10/05(金) 08:54:47.34ID:???
>>379
> 呼び出される関数側でチェックして即returnとかの別手段でだいたい十分だけど

そういうのはクラス名で制御すべきだよ。

例えばこんな感じにしてると、spanのクラスが
それぞれmode1 or mode2 の場合のみ、該当のものだけ発動してくれる

$('span.mode1').click(function() { alert('click1'); })
$('span.mode2').click(function() { alert('click2'); })
0382Name_Not_Found
垢版 |
2018/10/05(金) 12:41:52.32ID:???
>>377
普通に使うけどなあ
来れなかったら、addしたイベントをどうやって剥がしたら良いのかわからん
0383Name_Not_Found
垢版 |
2018/10/05(金) 12:48:12.48ID:???
addしたイベントを剥がす機会がないということでは?
0384Name_Not_Found
垢版 |
2018/10/05(金) 13:05:13.90ID:???
要素が増減するならばデリゲート使って親要素でイベントを捉えれば良いし
その方が効率なわけで、わざわざイベントハンドラを外すことはないね
0386Name_Not_Found
垢版 |
2018/10/05(金) 13:33:44.87ID:???
>>385
増減しないならつけっぱなしでいいやん
0387Name_Not_Found
垢版 |
2018/10/05(金) 14:49:21.41ID:???
>>386
つけっぱなしで良いこともあるし外さにゃならんこともあるな
この辺は経験というか、やったことあるかどうかの差だからしゃーないわな
0388Name_Not_Found
垢版 |
2018/10/05(金) 15:08:34.23ID:???
だからその外さなきゃならない場合ってのが無いんだっていう話をしてるんだが
経験があるというのなら、その経験を語れよ
0389Name_Not_Found
垢版 |
2018/10/05(金) 15:14:14.60ID:???
webページ作るのに外さないといけないユースケースは確かにめったに無さそうだ。
実はコンソールで色々いじくって実験する用なんじゃないのか。console.logみたいに
0390Name_Not_Found
垢版 |
2018/10/05(金) 15:38:07.82ID:???
使った経験は無いが、想像するに一つのボタンに複数の機能を持たせるときには使えそう
0391Name_Not_Found
垢版 |
2018/10/05(金) 15:45:12.06ID:???
>>390

>>380を見てね
ロジックで処理を分けるのは古いやり方だよ。今は状態ごとの処理を定義する。
こうすることがバグも減らせるんだよ。ちゃんと外せたか?二重に登録してないか?
なんて考える必要がない。

こういうものこそ経験っていうんだけどな
0392Name_Not_Found
垢版 |
2018/10/05(金) 15:49:59.55ID:???
>>391
ますますremoveEventListenerの使い道ないじゃないか…(憤慨)
0393Name_Not_Found
垢版 |
2018/10/05(金) 15:50:44.44ID:???
>>388
色々あるけどなあ
フレームワークっぽいもの作ってたときとかよく使ったよ
0394Name_Not_Found
垢版 |
2018/10/05(金) 15:57:29.66ID:???
一個のサイト作る場合ではなく
複数のサイトで汎用的に使うコンポーネントなんかを作るケースだと
CSSまで自由に出来なくてJSでやらにゃならんこともあって
そんな時には必要になるなあ

みんなも自分のサイトに組み込んでるフレームワークやライブラリのコードをのぞいてみると
案外使われてるのに遭遇すると思うよ
0395Name_Not_Found
垢版 |
2018/10/05(金) 16:46:37.54ID:???
いちいち重複イベントチェックなんて面倒だ
まとめてごっそり総入れ替えだ
0396Name_Not_Found
垢版 |
2018/10/05(金) 17:00:40.46ID:???
リフレクションAPIやプロキシーAPIと同じでフレームワークとか作る人用か。使うだけの人には洋ナシ体型
0397Name_Not_Found
垢版 |
2018/10/05(金) 17:06:44.57ID:???
経験の差が出ましたなw
0399Name_Not_Found
垢版 |
2018/10/05(金) 17:28:11.92ID:1Er0ekUU
くだらん喧嘩は他所でやれw
ツイッターとか
0400381
垢版 |
2018/10/05(金) 19:20:16.30ID:???
>>387の人気に嫉妬w
0401Name_Not_Found
垢版 |
2018/10/07(日) 14:19:14.23ID:3lG9iLI9
phpよりjavascriptを勉強すべき、という理由を教えてください 私は頭が悪いので分かりやすく頼みます
0402Name_Not_Found
垢版 |
2018/10/07(日) 14:22:22.59ID:???
PHPを作ってるところは一つ
JavaScriptはMS、Google、Apple、Mozillaと大企業が力を注いている
0403Name_Not_Found
垢版 |
2018/10/07(日) 15:10:53.21ID:???
javascriptも、もはやc++やその他言語を呼び出すだけのものになりつつある
0404Name_Not_Found
垢版 |
2018/10/07(日) 15:20:29.77ID:???
いつから呼び出せるようになったの?
0405Name_Not_Found
垢版 |
2018/10/07(日) 16:00:23.89ID:3lG9iLI9
>>402
なるほど、ありがとうございます
本当に死ぬ気で毎日勉強した場合、
理解できるようになるまでどれくらい掛かりますか
0407Name_Not_Found
垢版 |
2018/10/07(日) 16:28:28.50ID:???
C++はもはやJavaScriptから呼び出すライブラリに成り下がったんだな
0408Name_Not_Found
垢版 |
2018/10/07(日) 16:29:19.58ID:???
呼び出されることすらできなかった状態から成り上がったんやぞ。
0409Name_Not_Found
垢版 |
2018/10/07(日) 16:30:34.31ID:???
(javascriptの実行速度が遅すぎて使えないからこういう方法が生まれたんだけど…)ボソッ
0410Name_Not_Found
垢版 |
2018/10/07(日) 16:34:26.07ID:???
でファミコンエミュレータwasmにしてみたらjsより遅かったんでしょワロスwwwww
0411Name_Not_Found
垢版 |
2018/10/07(日) 17:40:06.08ID:???
>>410
ブラウザ /JS版 /Wasm版
Chrome 63/4.36ms/5.68ms
Firefox 58/5.76ms/3.98ms
Safari 11/9.98ms/4.21ms
これ?要はchromeの実装がクソ雑魚だったってだけでしょ
firefoxとsafariはjs版を大きく超えてる
0413Name_Not_Found
垢版 |
2018/10/07(日) 18:02:40.77ID:???
>>411
え?たったそんだけしか違わないの?msって
人間が知覚できるレベルじゃないじゃん
0414Name_Not_Found
垢版 |
2018/10/07(日) 18:17:10.16ID:???
いやだって巨大なプログラム用だから
0415Name_Not_Found
垢版 |
2018/10/07(日) 18:28:51.84ID:???
なんでchromeで遅くなってるの?
chrome、前はjsの最適化で最速とか言ってたけど
sandboxとかセキュリティ絡み?
0416Name_Not_Found
垢版 |
2018/10/07(日) 18:33:16.37ID:???
>>411
ご覧くださいwww「javascriptの実行速度が 遅 す ぎ て 使 え な い」とまでイキッておいてコレwwwww
0417Name_Not_Found
垢版 |
2018/10/07(日) 18:36:45.12ID:???
cとphpやpyの差みたいに10倍かそれ以上速くなるもんだとばっかり思ってた
カスだな
0418Name_Not_Found
垢版 |
2018/10/07(日) 18:41:24.71ID:???
コンパイルの手間かけてまでこの程度かよw
時間は有効に使えよ?みんなお前に付き合うほどヒマじゃねーんだw
0419Name_Not_Found
垢版 |
2018/10/07(日) 18:43:11.76ID:???
これでセキュリティに穴が見つかろうものならまるで利用価値なしのゴミ屑扱いになってしまう
0420Name_Not_Found
垢版 |
2018/10/07(日) 20:08:06.87ID:3lG9iLI9
>>412
意地悪
0421Name_Not_Found
垢版 |
2018/10/07(日) 21:47:17.66ID:4m+yZWnq
エロゲー廃人速報改
http://erogehaijin.com/

・生活保護の不正受給カミングアウトして自慢
・DMMからステマ脅迫工作で雇われる
・アフィで稼ぎまくり

・DLsiteはじめ各流通やメーカーへの脅迫
・ステマ工作で金貰ってるのは言うに及ばず
・風俗通い・焼肉ざんまい

エロゲー廃人速報改
http://erogehaijin.com/

     ∧_∧
 ピュー (  ^^ ) <これからもエロゲー廃人速報改(ナマポ不正受給)を応援して下さいね(^^)v
  =〔~∪ ̄ ̄〕
  = ◎――◎ 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
0423Name_Not_Found
垢版 |
2018/10/08(月) 00:10:27.89ID:???
wasm使うならもはやjs発である必要性ないと思うんだが
js使いたいだけっていう
違うコンパイル言語開発しろって
0424Name_Not_Found
垢版 |
2018/10/08(月) 05:29:18.70ID:???
>>402-405
プログラマーが、クソ言語のPHP を使う理由がない

Ruby on Rails などのフレームワークを使うけど、
画面は、Vue.js など、JavaScript(JS) になるので必須

初心者は、Ruby, JS を数年やればよい。
それ以外の言語は難しいから、数年後に始める
0425Name_Not_Found
垢版 |
2018/10/08(月) 06:10:18.89ID:???
wasm, wasmってまあ良く聞くけど

・wasmの性能って「元の言語/コードの効率性」と「wasm形式にしてくれるコンパイラの(最適化)性能」と
「ブラウザの方のwasm動作環境の性能」の全部に左右されんだよね?

・「wasmはロード時間短縮にはなるけど動作速度は変わらない」って主張が今でもいくらか見られるけど
jsで動かしてたものをc-wasmに変えれば動作速度は劇的に改善される可能性もまあ普通にあるよね?

・jsと違って低次元なメモリ管理できちゃうけど、
wasmが個々のwasmに割り当てられたメモリ領域以外を読み書きできちゃって
セキュリティ的に大問題になる、ってことは生じ得ないの?
activexで脆弱性突いてウィルス散布、みたいな現象はノーサンキューなんだけど
0426Name_Not_Found
垢版 |
2018/10/08(月) 07:14:06.94ID:???
そもそもwasmっていうのは既存のサイト速くするものではないからな
既存のサイトは、サーバー側でバッチ処理をさせるという設計
クライアントでやることが少ないから、いくらwasmでクライアントが
速くなったとしても効果は殆ど無い。

ぶっちゃけるとwsamの主な用途はゲームだよ

ゲームは反応速度が重要なのでバッチ処理でさせると成り立たない
あとはせいぜいグラフィックソフトぐらいだろう
0427Name_Not_Found
垢版 |
2018/10/08(月) 07:31:39.68ID:???
ユーザに気付かれないようにクライアントに高処理効率でマイニングさせるとかな
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況