0

当我已经在数据库中添加/编辑记录时,我遇到了关于浏览器缓存的问题。数据库中的数据发生了变化,但视图中的数据没有变化。我必须在浏览器中按 F5 以刷新该页面,它会显示更新的数据。

请指导我如何解决这个问题,谢谢。

对不起,我忘了告诉你们,在我的申请中有两个部分。

  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

1

如果您想即时更新某些内容,我认为您正在寻找in place editing.
你可以看看这个为你做的扩展
尤其是这部分。

在此处输入图像描述

于 2013-06-11T07:39:56.857 回答
0

也许这可以帮助您: 使用服务器发送事件(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 回答