2012-01-26 3 views
2

すべてのタブがajaxを使用してロードされるタブがあります。私はキャッシュしたくありません(私はタブがclikedいつでもアヤックスの要求をしたい)。上記に
$('#tabs').tabs({ ajaxOptions: { cache: false}, spinner: 'Loading task...' });jQuery UIタブは最初にロードされたタブがキャッシュされていますが、ajaxOptions:cache:falseが指定されています

おかげで、私はタブをクリックすると、特別な変数が追加されます:私は次のようにタブを作成し
http://localhost:3252/Task/Show/2?_=1327576289684
をそれはURLがユニークせることによって防止のキャッシングを防止し、その要求があります常にサーバーに送信されます。

ただし、タブでページを開くと、タブが初期化され、デフォルトのタブ(タスク1)が読み込まれます。この場合、変数は追加されません:
http://localhost:3252/Task/Show/1
この結果、ページはキャッシュからロードされます。

私はリクエストごとに固有の番号(私の場合にはダニ)を含有するようにタブのURLを変更することで動作を変更:

@<div id="tabs"> 
    <ul> 
     @Code 
      For Each task In Model.Tasks 
       @<li><a href="@[email protected]"><span>@task.Name (@task.Number)</span></a><span class='ui-icon ui-icon-close'>Remove task</span></li>     
      Next 
     End Code 
    </ul> 
    @*@Html.EditorFor(Function(m) (m.Tasks))*@ 
</div> 

を質問です:なぜ私はそれをしなければならないのですか? ajaxOptions: { cache: false}で解決したいのですか?誰もがこの問題に遭遇し、それに素晴らしい解決策を見つけましたか?私は何かを逃しているのですか、それともバグでしょうか?

答えて

0

メインのjQuery ajax設定キャッシュを強制的にfalseにしようとしましたか?すべてのAjaxリクエストをカバーするデフォルトとしてブランケット設定が必要な場合があります。参照用

// Force requested pages not to be cached by the browser 
$.ajaxSetup({cache:false}); 

ドキュメント:あなたは準備ができて、あなたの文書でこれを置くことができhttp://api.jquery.com/jQuery.ajax/

+0

私はあなたが言ってみましたが、ない幸運。それがうまくいっても、記述された振る舞いはあなたに論理的に当てはまりますか? –

+0

Ok ... htmlリンクのURLにタイムスタンプを追加したことがわかります: '@ task.Url?_ = @ DateTime.Now.Ticks'初期URLまたはGETパラメータにタイムスタンプを追加できますか?それはおそらくそれを並べ替えるでしょう。 –

+0

私の元の投稿で読むことができるので、問題は解決されます。私が持っている問題は、自分のやり方で解決する必要があるという事実が好きではないということです。また、なぜデフォルトで読み込まれた最初のタブで 'ajaxOptions:{cache:false} 'が機能しないのか不思議です –

関連する問題