jQueryAjaxのロードとgetScript
質問
メインエリアのコンテンツがJavaScriptを介して読み込まれるようにサイトを設定しようとしています(一部のページはレンダリングに時間がかかります)。ただし、jQuery.load()、jQuery.getScript、およびjQuery.ajax()を使用すると、論理的な問題が発生しました。
ロードされたコンテンツ内でこれらの関数などを使用できるように、getScriptを介して特定のJavaScriptファイルをロードできる必要があります。
- index.php-表示されているメインファイル(#loadingも含まれています)
- js /script.js-ロードコードを含むファイル
- js/*。js-ロード後に#maincontent内で使用できるようにする必要があるいくつかのjavascriptファイル
- load.php-#maincontentにロードされているファイル
script.js: ジェネラコディセタグプレ
ご覧のとおり、最初に、URLパラメータやユーザーからの操作なしでload.phpを読み込もうとしています。 load.phpは毎回正しくロードされますが、javascriptコードについても同じことは言えません。動作する場合もあれば、クリーンなコンソールを取得する前にページを数回更新する必要がある場合もあります(エラーなし)。
コンソールのエラーは、load.php内で使用される前にjsコードが正しくロードされていないことを示唆しています。これは、load.phpに時間がかかる場合に特に当てはまります(PHPのsleep(5)関数でテスト済み)。
何か明確にする必要があるかどうか教えてください:)
解決
getScriptを使用してこれらすべてのスクリプトを実際にロードするべきではありません。毎回それらの一部(またはすべて?)が必要になるので、ページにそれらを含めるだけではどうでしょうか。さらに、jqueryを使用してjqueryをロードしているので、すでにページに含まれていると言います。したがって、再度ロードしようとしないでください。
他のヒント
問題がロードのタイミングである場合は、動作を延期した最新バージョンのjQueryの使用を検討する必要があります。
たとえば、次のことができます。 ジェネラコディセタグプレ
これは、すべてのgetScript呼び出しが返されるまで待機してから、load.phpへのajax呼び出しを実行します(または、上記のいずれかが失敗した場合、handleErrorsFunction()をトリガーします)。