0

静的コンテンツと動的コンテンツの両方を含むjQueryUIタブを使用するページがあります。タブが読み込まれた後にタブのコンテンツを試してcacheいるので、ユーザーがタブを閉じてから再びアクセスしたい場合は、サーバーに再度アクセスする必要はなく、タブを作成できます。タブリストの最後に表示されます。これは、FF、Chrome、Safari、Opera、およびIE 8および9でうまく機能します。ただし、IE7では問題が発生します。

これが私が作ったjsFiddleで、問題を示しています。私の知る限り、問題はbeforeLoad、コンテンツが一度ロードされた後でも関数が呼び出されていることのようです。キャッシュのオプションを使用する必要があることはわかっていcache: trueますが、ユーザーはタブを閉じてから戻ってみることができるので、これはもう少し優雅かもしれないと思いました。

問題を再現するには:

  1. ボタンをクリックしDynamic 1ます。新しいタブが表示され、Dyn 1その中にいくつかのコンテンツが含まれます
  2. タブを終了します(タブを閉じるか、別のタブをクリックして)
  3. タブに戻りDyn 1ます。コンテンツが表示されますunable to load dynamic tab

これは、jQuery UIのオプションを使用する場合と、関数内cache: trueのタブのhref属性を変更する場合の両方で発生します。load

誰かがこれに似た経験をしたことがありますか、および/またはこれを引き起こすために私が間違ったことをしたかもしれないことを知っていますか?

ありがとうございました。あなたの助けは常にありがたいです。

4

1 に答える 1

1

なぜこのような行動が起こったのかについて、私は答えを得ることができませんでした。しかし、私はついにうまくいく解決策を見つけました。他の誰かが同じ問題でこの答えに偶然出くわした場合、これは私がそれを修正した方法です:

変化する:

beforeLoad: function(evt, ui) {
    ui.jqXHR.error(function(jqXHR) {
        ui.panel.html('Unable to load application');
    });
}

に:

beforeLoad: function(evt, ui) {
    ui.jqXHR.error(function(jqXHR) {
        if(jqXHR.statusText !== 'canceled') {
            ui.panel.html('Unable to load application');
        }
    });
}

タブの変更または変更が発生したbeforeLoadにもかかわらず、メソッドが呼び出される理由はまだわかりません。これをjQueryバグフォーラムに送信して、彼らの発言を確認します。バグの場合は、この投稿をチケットで更新してみます。cache: truehref

于 2012-12-06T14:58:07.130 に答える