JavaScriptデカップリング

920 ワード

二つのページA、Bがあります.ページAはページBを呼び出します.Bページはまた、非同期的なロード方式でJavascipt(例えば、Class HeaderEvaaluation.js)ファイルを含んでいます.問題シーン:Aページは、非同期的な要求方式でBを要求し、BのClass HeaderEvaaliations.jsファイルのロードが完了したら、Class Header Evaaluation.jsのメソッドを呼び出して、どのように実現しますか?
考え方1:
ループ待ちを使用して実現し、疲れないようにします.
考え方2:
Bページでは、隠しコントロールを追加します.例えば、idは:Class Header Evaaluation loaddivで、ページBのコードを修正します.
<script type="text/javascript">

    $.getScript('Scripts/Student/ClassHeaderEvaluation.js', function () {

        var targetObj = $("#ClassHeaderEvaluationloaddiv");

        if (targetObj.length > 0)

        {

            var val = targetObj.val();

            if (val.length > 0) {

                eval(val);

            }

        }

    });

</script>

 
ここで、ページAはページBをロードする際に、BページのコントロールClass Header Evaaluation loaddivをコールバック関数で割り当てられ、その後、操作はBページ自身によってロードされ実行される.