コンテンツをロードするためにajax呼び出しを使用しているアプリケーションがあります。これらのajax呼び出しは、HTMLのみを取得しています。Javascriptは別のファイルにあります。
AJAX呼び出しを実行した後、できるだけ早くjavascriptの実行を開始する必要がある関数を呼び出します。
ここでは、ajax呼び出しからコードを取得する小さな関数を残します。
function loadPage(page) {
$(".container").html("");
if(page == "page1") {
$.ajax({
url: "/page1.php",
success: function(html){
$(".container").html(html);
loadPage1Script();
}
});
}else if(page == "page2"){
$.ajax({
url: "/page2.php",
success: function(html){
$(".container").html(html);
loadPage2Script();
}
});
}
}
その後、loadPage1Script()またはloadPage2Script()を実行します。
function loadPage1Script(){
//Start the carousel plugin, for example
}
新しいコードがHTML構造に追加されました。$(document).ready();を呼び出す必要があります。すべてのイベントハンドラーをアタッチするコードを実行する前に、loadPage1Script()で?そうしないと違いはありますか?$(document).ready();を追加すると、スクリプトの起動が速くなりますか??
function loadPage1Script(){
$(document).ready(function(){
//Start the carousel plugin, for example
});
}
jqueryサイト(http://api.jquery.com/ready/)から取得:
「ほとんどの場合、スクリプトはDOM階層が完全に構築されるとすぐに実行できます。.ready()に渡されるハンドラーは、DOMの準備ができた後に実行されることが保証されているため、通常、これはすべてをアタッチするのに最適な場所です。他のイベントハンドラーと他のjQueryコードを実行します。 "