ブートストラップ キャッシュの問題に対処する方法

angryTom
リリース: 2020-05-15 09:21:05
オリジナル
2226 人が閲覧しました

ブートストラップ キャッシュの問題に対処する方法

著者は、VS2017MVC に付属の bootstrap.js v3.0.0 バージョンを使用しています。使用中に、モーダル読み込みページに重大なキャッシュの問題があることがわかりました。Baidu で検索した後、多くの同様の状況に対する解決策は、基本的に次の 2 つです:

Bootstrap について詳しく知りたい場合は、次をクリックしてください: Bootstrap Framework

1. 閉じるときにデータを消去します:

 $("#myModal").on("hidden.bs.modal", function () {
        $(this).removeData("bs.modal");
    });
ログイン後にコピー

2. 要求された URL にタイムスタンプを追加して、要求された URL を変更します。

function remoteUrl(u){
	u += '&t=' + Math.random(1000)
    $.get(u, '', function(data){
        $('#remoteModal .modal-body').html(data)
    })
    $('#remoteModal').modal({show:true,backdrop:false})
}
ログイン後にコピー

上記 2 つの解決策は確かに効果的ですが、IE では最初の方法は無効で、2 番目の方法は面倒すぎて解決できません。

Baidu で、特に IE 向けの別の解決策を見つけました:

[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]//不加的话,IE缓存会捣乱
ログイン後にコピー

この方法では、サーバー側で各アクションを追加します。この場合、追加するアクションの数はいくつですか?筆者は実際、IE はゴミすぎるのでインターネット業界を辞めるべきだと考えています。

オーケー、嘔吐は終わりました。これが私の解決策です。bootstrap.js ファイルを直接変更します。

位置は、次のように 1068 行目あたりです。

 $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
    var $this   = $(this)
    var href    = $this.attr('href')
    var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
    var remoteUrl = !/#/.test(href) && href
    if (remoteUrl == undefined) {
        remoteUrl = "";
    }
    if (remoteUrl.indexOf("?") > -1) {
        remoteUrl += "&" + (new Date()).valueOf()
    }
    else {
        remoteUrl += "?" + (new Date()).valueOf()
    }
    //var option  = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
    //上边的是原代码,增加了remoteUrl来解决IE下缓存的问题
    var option = $target.data('modal') ? 'toggle' : $.extend({ remote: remoteUrl }, $target.data(), $this.data())
    e.preventDefault()
    $target
      .modal(option, this)
      .one('hide', function () {
        $this.is(':visible') && $this.focus()
      })
  })
ログイン後にコピー
コメントで解決策が説明されていますが、remoteUrl を追加し、要求された URL の後に時間を追加するだけなので、1 つずつ変更する必要がなく、各ブラウザーを考慮することができます。

以上がブートストラップ キャッシュの問題に対処する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!