のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,098,724人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

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

    JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    401 : Name_Not - 2019/07/30(火) 07:54:09.29 ID:???.net (+28,+30,+0)
    404 : Name_Not - 2019/07/30(火) 16:39:39.39 ID:j7QmNAUu.net (+98,-29,-65)
    連投すみません;

    かなり初歩的な質問なのですが、よく「document.writeは使うな」という警告を耳にしますが、あれはなぜなのでしょうか?
    window.onloadイベントを記述してもNGなのでしょうか…?

    現状、document.writeでスクリプトを読み込んでいるのですが、別の方法に変えたほうが良いのでしょうか?
    405 : Name_Not - 2019/07/30(火) 18:24:32.07 ID:???.net (+18,+29,-10)
    >>393はどこへ?
    >>404に名前を変えて再質問してるのか?
    406 : Name_Not - 2019/07/30(火) 20:06:14.66 ID:???.net (+28,+29,-60)
    >>404
    使うなというのではなく、初期から実装されてたから今では古いし、他の手段があるからという事
    あとDOMを扱う時に不具合が生じるケースがある(どのような場合か知っていれば問題ない)

    そのくらいか?
    407 : Name_Not - 2019/07/31(水) 03:35:06.82 ID:???.net (+11,+18,+0)
    >>401
    グロ
    408 : Name_Not - 2019/07/31(水) 08:18:02.44 ID:???.net (+27,+29,-9)
    相変わらず、自助努力する気のない丸投げ質問ばがりだな
    409 : Name_Not - 2019/07/31(水) 09:56:39.11 ID:???.net (+31,+29,-47)
    >>406
    レンダリングの最適化を妨げるので使うなとされている
    使わない事を誓うフィーチャーポリシーすら定義されている
    410 : Name_Not - 2019/07/31(水) 11:08:38.69 ID:8ILJEm94.net (+38,+29,-98)
    JavaScriptコードがレンダリングに必須な場合
    どうやって最適化するんだろうか?

    遅い回線使ってると時たま見るよね。
    ページ読み込んでる途中はレンダリングが崩れていて、
    ページ読み込み完了したらやっとまともにレンダリングされるページ

    JavaScriptを非同期で読み込むことが目的になってしまって
    レンダリングが人間にとって最適化されてない
    411 : Name_Not - 2019/07/31(水) 11:38:38.17 ID:???.net (-1,+0,-18)
    document.writeなんてIE6の頃ですら使わない方がいいって言われてたのになんでいまだに使いたがるんだろうか?
    414 : Name_Not - 2019/07/31(水) 16:27:47.86 ID:???.net (+27,+29,-4)
    Javascriptがレンダリングに必須なことなんて殆どない
    415 : Name_Not - 2019/07/31(水) 17:24:56.19 ID:nbAt67+R.net (+29,+29,-45)
    >>391
    線形合同法を利用してる分際で出しゃばりやがってw
    416 : Name_Not - 2019/07/31(水) 18:30:21.52 ID:???.net (-19,-13,-6)
    appendChilde的なのを期待して使っちゃう初心者は多いだろうね
    実際は>>413なんだけど
    417 : Name_Not - 2019/07/31(水) 20:52:51.40 ID:???.net (+37,+29,-36)
    >>410
    回線が遅いと言うだけで処理性能やストレージが満足に使えるならやりようはいくらでもある
    ブラウザも先読み機能が強化されているしSWでキャッシュ周りもいじれる
    418 : Name_Not - 2019/07/31(水) 20:58:52.92 ID:???.net (+36,+29,-38)
    >>417
    最適化っていうのは、単に先読みのことだったの?
    ってことは回線が遅いとレンダリングが崩れるよね
    419 : Name_Not - 2019/07/31(水) 21:16:30.36 ID:???.net (+38,+29,-68)
    >>418
    >>410で述べられてる最適化はまた別でしょ
    同期script及びdocument.writeがどう最適化を阻害するかは
    調べたら詳しく出てくるだろうからここで適当に説明することはしないけど
    420 : Name_Not - 2019/07/31(水) 21:28:07.47 ID:???.net (+27,+29,-17)
    崩れるのが嫌ならロード終わるまで表示させなきゃいいじゃん
    421 : Name_Not - 2019/07/31(水) 21:29:34.42 ID:???.net (+27,+29,-6)
    それを実現するのが「ブロック」なんだよ
    422 : Name_Not - 2019/08/01(木) 12:16:34.08 ID:???.net (+27,+29,-54)
    すごく恥ずかしい質問なのですが
    HTMLに点在するscriptタグの変数というのは共有されてるんですか??
    ポリフィルとかの変数と自分のスクリプトの変数と名前が同じだとどうなるのかな???と思いました
    423 : Name_Not - 2019/08/01(木) 12:25:35.94 ID:???.net (+17,+14,-7)
    共有される、但しモジュールならされない
    後に実行された方に上書きされる
    424 : Name_Not - 2019/08/01(木) 12:41:23.14 ID:???.net (-26,-30,-44)
    だから一般的なライブラリは変数や関数名が競合しないように(function() {~})();で囲って
    必要最低限だけwindow.~に代入して外部に公開してる
    425 : Name_Not - 2019/08/01(木) 12:41:37.68 ID:???.net (+30,+29,-8)
    >>423
    やっぱりされるんですね
    自分のはモジュール???ではないと思うので気をつけます
    ありがとうござました
    426 : Name_Not - 2019/08/01(木) 12:50:40.53 ID:???.net (+24,+29,-6)
    >>424
    ありがとうございます
    入門書を読んだぐらいなので何となくしかわからないですが調べて勉強してみます
    428 : Name_Not - 2019/08/01(木) 18:24:26.72 ID:???.net (-24,-29,-275)
    >>422の疑問が湧くのももっともなんだよね
    どうも解説書にこういった肝心なことが書かれてないことが多すぎる

    多くのJavascript入門書に欠けている(重要な)記述
    ・var等の単語の語源の紹介
    ・スクリプト同士の変数や関数名は共有されているのかどうかの疑問
    ・ユーザースクリプトやブラウザ拡張機能のスクリプトは、ブラウザや、見ているページに対して、どのように存在するのか
    ・イベントリスナーやsetTimeout等に無名関数を登録する時変数の中身を値渡しする方法
    ・beautifierやLintの存在とそれらをローカルで使うためのエディタやプラグインの紹介
    ・ブラウザの開発ツールの使い方(特に効果的な使い方のtips)
    これらを書かない著者はボンクラだわ
    429 : Name_Not - 2019/08/01(木) 20:24:24.70 ID:???.net (+27,+29,-23)
    結果として変数が共有されるとも言えるが
    もっと素直にグローバルが同じと考えたほうが良い
    430 : Name_Not - 2019/08/01(木) 20:25:35.73 ID:???.net (+27,+29,-36)
    そういや略語の一覧や元になった単語は教えたほうがいいよな
    strをずっと攻撃力と思ってたわははは
    434 : Name_Not - 2019/08/01(木) 21:26:54.58 ID:???.net (-21,-30,-112)
    >varはvariableで変数

    それじゃまだ丸暗記の域を出ないでしょ
    variという語根に「変わる」という意味があってバラエティとかバリエーションと同じ部品であって
    variableは当然-able(可能)がついてるから「変わることができる」という意味だ、まで説明しないと
    435 : Name_Not - 2019/08/01(木) 21:30:34.41 ID:???.net (+25,+29,-3)
    >>434
    おお、まさにそういうのを聞きたいんだよ
    436 : Name_Not - 2019/08/01(木) 22:52:12.65 ID:???.net (+22,+24,-5)
    言語によってletが定数だったりするからカオス
    437 : Name_Not - 2019/08/01(木) 22:53:29.01 ID:???.net (-29,-22,-33)
    letが定数になるってどの言語?
    438 : Name_Not - 2019/08/01(木) 23:08:26.49 ID:???.net (+17,+29,+0)
    えっとねぇ
    439 : Name_Not - 2019/08/01(木) 23:11:48.88 ID:???.net (+36,+27,-110)
    外から渡されたスクリプトを安全に実行するのにサンドボックスを作ろうとしているんだけど、
    WebWorkerってスクリプト本体をstringで渡すことってできないんだっけ?

    あるいはeval()でグローバルオブジェクトを任意に指定できたらそれが一番楽なんだが、
    なんでできないんだろう。
    440 : Name_Not - 2019/08/01(木) 23:20:25.09 ID:???.net (-27,+29,-26)
    危険だからだよwww
    441 : Name_Not - 2019/08/01(木) 23:39:32.05 ID:???.net (+31,+29,-27)

    今のeval()が許されてるのに逆にそれより危険になるって?マウントとりたいにしても雑すぎ。
    442 : Name_Not - 2019/08/02(金) 00:11:07.24 ID:???.net (+36,+29,-288)
    evalが許されてることがなにか問題あるの?
    サンドボックスというのは環境を隔離するものであって
    evalの危険性とは全く別物なんだけど

    ちなみにevalの危険性とは利用者が、利用者自身を危険にさらすことができるってことな
    サーバー側が危険になるわけじゃな無いし、悪意がある人がeval使ってなにかできるわけじゃない。
    evalと別のなにかの脆弱性を併用して攻撃することはあるが、
    その場合は脆弱性自体が悪いのであってevalそのものは危険なものじゃない。
    evalはユーザーがソースコードを書き換えられるのと同じ程度の話
    443 : Name_Not - 2019/08/02(金) 02:56:23.64 ID:SwpHAZj0.net (+19,+29,-3)
    つまり諸刃の剣だから最終手段、と
    444 : Name_Not - 2019/08/02(金) 06:27:31.97 ID:???.net (+32,+29,-34)
    >>439
    ずっと議論されてるから、もう2・3年待てばESに入る
    意見があるなら今が参加するチャンス
    445 : Name_Not - 2019/08/02(金) 06:31:48.68 ID:???.net (+33,+29,-10)
    >>441
    寝てたら>>442が代わりに言ってくれてたわ
    もう少し深く考える癖を付けたほうが良いぞ
    446 : Name_Not - 2019/08/02(金) 06:32:12.81 ID:???.net (+5,+2,-11)
    >>439
    WebWorkerを文字列から作ることはできる
    だけど必ずしも安全とは言えない
    447 : Name_Not - 2019/08/02(金) 08:11:48.50 ID:???.net (+32,+29,-109)
    >evalが許されてることがなにか問題あるの?

    evalが許されていること自体が問題だと言ったつもりはないが?
    ただ、呼び出し元と同じグローバルオブジェクトにアクセスできるのは安全じゃないから
    それを差し替えられたら良いという話。
    少なくとも現状より危険になるわけじゃないから>>440は的外れだと言ったまで。
    448 : Name_Not - 2019/08/02(金) 13:20:41.19 ID:???.net (-28,-30,-21)
    >>422-429
    <script>
    var a = 1;
    </script>

    <script>
    var a = 2;
    </script>

    <script>
    console.log( a ); // 2
    </script>
    449 : Name_Not - 2019/08/02(金) 15:05:37.23 ID:???.net (-22,-17,-16)
    >>428みたいなFAQをスレのテンプレに入れればいいと思う
    450 : 404 - 2019/08/02(金) 15:30:37.79 ID:3e/9quPm.net (-16,+27,-92)
    返信が遅れてすみません;

    >>405
    その人とは別人ですー

    >>406
    >>409
    なるほど…。よく「document.writeは使うなとあれほど」みたいなこと言われたのでSEOに悪いのかなと…。
    レンダリングをブロックするということは、読み込み速度が遅くなったりするのでしょうか?
    多用することでSEOに響くのであれば別の方法で代用したいのですが。。
    通常、document.write的な動作を行いたい場合、相場としてどのような方法がメジャーなのでしょうか?
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について