2016-10-31 5 views
1

私はajax呼び出しを使用してjsアプリケーションモデルコレクションにモデルを追加します。私がモデルをクリックして次のページに行くとき、私はバックボタンを押したときに私がロードしていたすべてのモデルをそこに残しておきたい。すべてのブラウザで動作するようにこれを行う最善の方法は何ですか?これはモバイルウェブ向けです。私はストレートな答えを見つけることができません、どのように私はbfcache、またはjsの履歴を使用するか、または別のより良い方法はありますか?戻るボタンを押したときにページがそのままロードされるようにDOMを保存/キャッシュする方法は?

+0

ローカルストレージをオーバーロードされます。少なくともFirefoxが実際に復元しますページがそのままbfにある場合は、そのままの状態で(DOMとJavaScriptの状態)特定のイベントハンドラによって抑制されていない場合を除き、 – the8472

+0

私は誰も携帯電話でFFを使っているとは思わないが、これは主にiosとAndroidのモバイルウェブユーザーのためにサファリとクロムで動作するようにしようとしている。 –

答えて

0

あなたはローカルストレージ

上に存在するので、代わりの通常の$のアヤックスを使用して、あなたはキャッシュしたいアヤックスのためにこれを使用していない場合にのみ、彼らのために、ローカルストレージとAjaxに保存することができます:

function storageBasedAjax(url,cb){ 

    if (localStorage.getItem("myAxaxCache_"+url)){ 
     cb(localStorage.getItem("myAxaxCache_"+url)); 
     return; 
    }  

    $.ajax({url: url, success: function(result){ 
    localStorage.setItem("myAxaxCache_"+url,result); 
     cb(result); 
    }}); 
} 

はちょうどあなたが過負荷にしたくない覚えているので、あなたはそれぞれの呼び出しを変更するパラメータを使用してURLを持っている場合は、これを使用していないか、あなたは

+0

私はブラウザがAjaxコンテンツを保存しないと確信しているボタンをクリックします。 – niandrei

+0

バックボタンには関係なく現金で保存します。 –

+0

ブラウザは現在、iosのモバイルサファリに何かを保存していません –

関連する問題