これを行う方法は混乱しています。私はいくつかの入力要素と "適用"ボタン(提出ではない)を持つポップアップフィルタを持つページを持っています。ボタンをクリックすると、2つのjquery.get()呼び出しが行われ、グラフ、DataTablesグリッド、写真、およびその他の情報が4つのタブに読み込まれます。グラフの中で、特定の要素をクリックすると、データはより細かいレベルにドリルダウンされる別のページに移動します。これはすべてうまくいきます。ColdfusionのAjax状態の履歴ページ
問題は、元のページに戻って、グラフ/グリッド/写真などを作成したajaxを使用した場合です。元々は、元のフォーム変数にセッション変数を格納すると思っていましたクエリを返し、ページに戻る際に、セッション変数が見つかった場合は、元のajax呼び出しが再度行われ、タブを再入力します。
このメソッドで見つかった問題は、ブラウザの戻るボタンを使用してページに戻るときにセッション変数が設定されていることをColdfusionが認識しないことです。元のページと2番目のページの両方でセッション変数をダンプすると、2番目のページで新しく設定されたvarが表示され、ナビゲーションメニューから元のページに移動すると表示されますが、戻るボタン。
こんにちは、ここにAjaxのブラウザ履歴プラグインについての記事を投稿して、BBQなど、これを手助けする様々なjqueryプラグインがあるようです。このアプローチで見られる問題は、アンカー要素を使用してトリガーする必要があり、アンカーのhref属性を使用してクエリ文字列を変更することです。私は隠されたアンカーを含むようにページを修正できると思います。
私の質問は、これを達成する最善の方法であるBBQのようなajax履歴プラグインですか?戻るボタンでページに戻ったときにColdFusionに新しく作成されたセッションvarが表示されるようにする方法はありますか?または、ページの再構成を検討して、ajax呼び出しを代わりにフォームへのフォームの送信に置き換えるようにしてください。
いつものように、事前に感謝します。
EDIT:物事を明確にするのに役立ついくつかのコード: ここでは、元のAJAX呼び出しますボタンです:
<button id="applyFilter">APPLY</button>
と#applyFilterに呼ばれるJSの一部は、$(ドキュメント).readyを(に包まれました):ユーザーはAJAX生成されたグラフ上のドリルダウンを呼び出すとき
$('#applyFilter').click(function(){
// fill in the Photos tab
$.get('tracking/listPhotos.cfm',
{
id: id,
randParam: Math.random()
},
function(response){
$('#tabs-photos').html(response);
}
);
});
最後に、それは必要な変数が移入されたMaintActionフォームを使用:
function DrillDown() {
//get the necessary variables and populate the form inputs
document.MaintAction.action = "index.cfm?file=somepage.cfm&Config=someConfig";
document.MaintAction.submit();
}
これは新しいページにわたります。最初のページに戻ってもらいたいのですが、ajaxを読み込んだ写真があります。
いくつかのコードを提供すれば、私が説明したセッション+同期XHRメソッドの実装方法について説明できます。 –
ありがとうございました!どのくらいのコードが必要ですか - ちょうどajaxコールですか? – earachefl
オリジナルの質問を編集し、AJAXコンポーネントの1つと関連するJSのためにCFMLを追加した場合、これで十分であるはずです。 –