0

データベースに既にレコードを追加/編集しているときに、ブラウザのキャッシュに関する問題が発生しました。データベースのデータは変更されましたが、表示は変更されていません。そのページを更新するにはブラウザで F5 キーを押す必要があり、更新されたデータが表示されます。

この問題を解決する方法を教えてください、ありがとう。

申し訳ありませんが、皆さんに伝えるのを忘れていました。私のアプリケーションには 2 つの部分があります。

  1. データを追加/編集するための管理部分 (バックエンド)。(この部分は問題ありません)
  2. ビューアーにデータを表示するためのフロント パーツ (ここで問題です。管理パーツでレコードを追加/編集した後、このパーツは変更されません。更新を表示するには、ページを更新する必要があります)

これは、フロント部分の関連コードです。

コントローラー内

class ProductController extends Controller
{
  public function actionIndex()
  {    
    $products = Product::model()->getProductList(); // use findAll() method
    $this->render('index', array('products' => $products));
  }
}

モデル内

class Product extents CActiveRecord
{
  /*
   *
   * The other code that generated by Gii 
   *
   */

  public function getProductList()
  {
    return $this->findAll();
  }
}

ビューで

<html>
<body>

<ul class="thumbnails thumbnails-product">      
  <?php foreach ($products as $product): ?>

    <li class="span3" style="margin-left:0px;">
      <div class="thumbnail">
        <img class="img-thumb" src="../images/<?php echo $product->PDT_IMG" />
        <?php echo CHtml::link($product->PDT_NAME, array('product/view/' . $product->PDT_ID)); ?>                       

        <span class="price"><?php echo $product->PDT_PRICE; ?></span>

      </div>            
    </li>

  <?php endforeach; ?>
</ul>

</body>
</html>
4

3 に答える 3

0

これが役立つかもしれません: Server-Sent Events (SSE) を使用したサーバー プッシュ データのリアルタイム表示

これはサーバー プッシュ手法であり、変更が行われるたびに自動的に、また一定時間後にデータを取得できます。

于 2013-06-11T10:46:27.413 に答える
0

問題は解決しました。

追加するだけです

header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");

そのビューが読み込まれるたびに、ページが再読み込みされ、キャッシュは保持されません。

于 2013-06-11T17:42:54.630 に答える