質問
最近、EasyUIを使用してバックグラウンドシステムを開発しました。テスト中に奇妙な問題を発見しました。 $( 'dg')。datagrid( 'reload');テーブルデータをリロードするとき、私はまったく反応がありませんでした。その後、私はそれが応答がなかったということではなく、ブラウザがキャッシュを使用したことであることがわかりました。
解決
ネチズンがオンラインで要約されたいくつかのソリューションがあります。
1. URLの後にタイムスタンプを追加して、最初の負荷とリロードでアクセスされるURLが一貫性がなくなり、システムがキャッシュを使用できなくなります。テストを通じて、EasyUIリクエストには、要求された後、_145232XXXの文字列が既にあることがわかりましたが、IEはまだキャッシュを使用しています。その後、rand = xxx(math.rand()によって生成された乱数を要求されたJSに追加しましたが、キャッシュは使用しません。 (IE8からIE11にテストしました)
2。同様の方法を使用して、<meta>を<head>に追加してキャッシュをクリアします。
コードコピーは次のとおりです。
<メタhttp-equiv = "pragma" content = "no-cache">
<Meta http-equiv = "cache-control" content = "no-cache、nucs-revalidate">
<Meta http-equiv = "expires" content = "1997年2月26日08:21:57 GMT">
残念ながら、多くのネチズンと同様に、私はこの方法に失敗しました。 :(
3.データグリッドの負荷に対応するメソッドを「POST」と宣言します。このソリューションは最速です。しかし、いくつかの問題があります:
•サーバーインターフェイスがポストモードをサポートしていない場合、停止します。
•サーバーインターフェイスがそれ自体を制御できる場合、フロントエンドのこの妥協のこの方法は、インターフェイスがまったく安らかではないことにつながります。 Restfulインターフェイスは基本的にクエリデザインのために取得されていることを知っておく必要があります。
要約します
これが最初の方法です。 URLに乱数を自分で追加するのは使いやすいです。サーバーインターフェイスを変更したくないというコードに夢中になっていることを許してください_(:з」з」)_。