2

私は JavaScript を初めて使用します。ゲームの続行を許可する前に、すべてのアセット、スクリプトなどの読み込みと確認について質問があります。基本的に、すべてのアセットとスクリプトがいつ読み込まれるかを知る方法は...

これは些細な問題/質問のように思えますが、私は何人かのプログラマーに尋ねましたが、誰も決定的な答えを持っていないようです。

アセットをロードする html ページがあります。つまり、png などはすべて vis css で指定されています。

また、jquery、loading など、多くのカスタム javascript クラスなどがあります。

現在、これを使用してページの読み込みを確認しています。ページの読み込み機能を実行すると、コンテンツが表示されます。ページには、削除される小さな読み込みスピナーがあります。

jQuery の標準読み込みスクリプトを使用しています -$(document).ready(function()

</head>
<body  onload="doAfterPageLoad()">

<div id="wrapper"  >

<div id="loadingIcon" >
    <div id="loadingWord"></div>
</div>
<div id="content"  style="visibility: hidden;">
    <!-- html stuff here -->
       </div>
</div>

</body>
</html>


//Javascript jQuery stuff....
<script type="text/javascript">
    function doAfterPageLoad()
    {
        $("#loadingIcon").css("visibility","hidden");
        $("#content").css("visibility","visible");
    }

    $(document).ready(function()
    {       
        // start javascript stuff
    });
 </script>

私の質問 - これは同期していますか? (私は高速接続を使用していて、わかりません) 何かが故障する可能性はありますか?- 両方の「ロード」が完了したときに変数とカウントを設定し、それを使用してゲームを開始する必要がありますか? また、javascript ローダーを介していくつかの png アセット ファイルをロードすることを選択した場合、ロードが完了したことをトリガーするために必要な 3 番目の変数/値を提供する必要がありますか?

4

3 に答える 3

2

jQueryは関数を提供するので、 doload()の代わりに$(document).ready

$(window).load(function()
{       
    // start javascript stuff
});

すべてのアセットが読み込まれると起動します

于 2012-09-26T17:26:41.147 に答える
0

私が見つけたこれに対する最善の解決策は、requirejsを使用することでした。

http://requirejs.org

つまり、この問題を解決し、必要に応じてスクリプトをロードし、スクリプトがロードされていることを認識できるようにします。スクリプトは必要なときにのみロードするため、アプリケーションが高速になります。

基本的な構文は次のとおりです。

require(
    ["jquery","module"], // these are your dependancies
    function($,module){ // this is what you want to do after your deps have been loaded
        // do stuff
    });

requirejsでは、各依存関係モジュールは独自のファイルで定義されます。モジュールはdefine()関数でラップされ、requirejsがそれをプルできるようにします。

define(
        ["jquery"], // these are your dependancies
        function($){ // this is what you want to do after your deps have been loaded
            var module= {
                // my widget definition
            };
            return module;
        });
于 2012-09-28T16:41:38.700 に答える
0

あなたは正しい考えを持っていました。DOM 対応の依存アイテムをすべて以下の中に投げます。

$(document).ready(function()
{       
    // start javascript stuff
});

あなたが言ったように、これはjavascriptの実行を許可する前に、最初にhtmlをページにレンダリングできるようにします。

于 2012-09-26T17:24:33.000 に答える