2012-04-07 4 views
1

ユーザーがjQuery Mobileアプリケーションにログインし、自動的に生成された戻るボタンを押すと、ログイン画面に戻ります。この効果を防​​ぐにはどうしたらいいですか?バックボタンを強制的にjQuery Mobileにキャッシュしないようにする方法はありますか?

私は(私はこの質問は見つかり:How does one disable Caching in jQuery Mobile UI)のキャッシングを防ぐために、このコードを使用しようとしました。

jQuery('div').live('pagehide', function(event, ui){ 
    var page = jQuery(event.target); 

    if(page.attr('data-cache') == 'never'){ 
    page.remove(); 
    }; 
}); 

このコードはキャッシュを防止します。しかし、それは何らかの理由で私のフォームのポップアップ、複数選択オプションボックスを壊してしまいます。したがって、私はそれを使用することはできません。

ログインしてクリックした後にログイン画面に移動するのを防ぐ信頼できる方法は何ですか?

+0

あなたは、ユーザーがすべてのページにログインしているかどうかを確認するためにあなたのキャッシュを使用することができますし、彼がログイン上にある場合、あなたはホームページにリダイレクト – Gerep

+0

は、ユーザーが自分のキャッシュを使用してすべてのページにログインしている場合、私はチェックしますか、ありがとう? – dangerChihuahua007

+0

jQueryでcacheを使う方法を知っていますか? – Gerep

答えて

2

キャッシュに問題はありません。 JQMがhistory.replaceStateを使用してajax環境でのナビゲーションを追跡する方法。続きを読む>>http://jquerymobile.com/demos/1.1.0-rc.2/docs/pages/page-navmodel.html

自動的に生成された戻るボタンをあなた自身の戻るボタンで置き換えることができます。すなわち

<div data-role="header"> 
    <a data-role="button" data-icon="arrow-l" class="back">back</a> 
    <h1>Page after login</h1> 
</div> 

その後戻ってあなたの歴史の中で2ページをナビゲートするwindow.history.goを(-2)を使用してそのボタンにクリックをバインドします。すなわち

$(document).delegate('.back','click',function(){ 
    window.history.go(-2); 
});​​​​​​​​​​​​​​​ 

デフォルトでは、ダイアログページはJQMのajax履歴システムでは追跡されません。そのため、ダイアログ・ページに囲まれたいくつかのタイプのajaxログイン・システムがあれば、履歴には挿入されません。そしてあなたの自動的に生成された戻るボタンは正常に動作します。これはあなたがajaxを無効にしていないことを前提としています。幸運デイビッド私は助けて願っています!

+0

ありがとう! 1.必要に応じてこの戻るボタンが自動的に表示されますか? 2.なぜ1の代わりに2ページ分の履歴に戻るのですか? – dangerChihuahua007

+0

いいえ私はその戻るボタンを作成することを提案していました。私はログインページをスキップするように2ページ分戻っています。私はあなたがそれを特定のページへのリンクにすることもできると思います。私はちょうどあなたが戻るボタンで歴史の最後のページをスキップする方法を示していた。 – codaniel

+0

「自動的に生成された戻るボタン」と言うとき、data-back-btn = "true"を使用していますか? – codaniel

関連する問題