プッシュ状態のアプリを作成しました。すべてが正常に機能しています。ただし、場合によっては、jquery 関数が複数回起動しています。これは、プッシュ状態を呼び出すときに、呼び出すページごとに特定の js ファイルをバインドするためです。これは、自分のページを閲覧しているときに、同じ js 関数が何度も html にバインドされることを意味します。
ヒント: jquery 関数で documen.on を使用しています。これは、関数が Ajax を介して動的に印刷された HTML にバインドされる必要があるためです。
印刷前のプッシュ状態でオフを使用しようとしましたが、成功しませんでした!
これが私のコードです:
var requests = [];
function replacePage(url) {
var loading = '<div class="push-load"></div>'
$('.content').fadeOut(200);
$('.container').append(loading);
$.each( requests, function( i, v ){
v.abort();
});
requests.push( $.ajax({
type: "GET",
url: url,
dataType: "html",
success: function(data){
var dom = $(data);
//var title = dom.filter('title').text();
var html = dom.find('.content').html();
//alert(html);
//alert("OK");
//$('title').text(title);
$('a').off();
$('.push-load').remove();
$('.content').html(html).fadeIn(200);
//console.log(data);
$('.page-loader').hide();
$('.load-a').fadeIn(300);
}
})
);
}
$(window).bind('popstate', function(){
replacePage(location.pathname);
});
前もって感謝します!