このpushstateとpopstateをajaxアプリケーションに使用する方法を理解しようとしています。プラグインがいくつかあることは知っていますが、現時点では未加工の形で使用する方法を学ぼうとしています。また、生の形式ではIEでサポートされていないことも認識しています。それはさておき、私はそれを使用する方法を理解するためにいくつかの助けが必要です。
そのプッシュステート部分は非常に単純です。今私は持っています:
function loadForm(var1,var2){
string = "xyz="+var1+"&abc="+var2;
history.pushState("", "page 1", string);
}
これにより、URLが適切に変更され、URLスタックに追加されます。次のような別の関数があります。
function loadForm2(var1,var2, var3){
string = "xyz="+var1+"&abc="+var2+"&123="+var3;
history.pushState("", "page 2", string);
}
2番目の関数も、呼び出されたときにURLを変更します。今、私はその部分を持っているので、ポップステートの使い方を理解しようとしています。今私はそれを次のように持っています
window.popState = ajax;
function ajax(){
jQuery.ajax({
type: "get",
url: "../html_form.php",
data: string,
dataType: "html",
success: function(html){
jQuery('#Right_Content').hide().html(html).fadeIn('slow');
validate();
toolTip();
}
})
}
したがって、2つのリンクを使用してページをイメージできる場合、1つはloadForm関数を呼び出し、もう1つはloadForm2関数を呼び出します。各リンクをクリックすると、フォームはajaxを介して正常に読み込まれ、URLが適切に変更されます。戻るボタンを押すと、URLは前のページのURLにロールバックしますが、ページのコンテンツは前のフォームではなく現在のフォームを再度ロードします。戻るボタンを押すと、前のフォームを読み込もうとしているかのようにajax呼び出し(firebug)を実行しますが、前のajax呼び出しを実行する代わりに、現在のajax呼び出しを実行します。したがって、私のURLは前のURLに戻りますが、ロードされるフォームまたは呼び出されるajax呼び出しは、最新のページロードと同じです(前のページロードではありません)。
何が間違っているのかわかりません。助けていただければ幸いです。