我无法使用缓存更改DOM?

时间:2014-08-12 14:33:20

标签: php html caching yii

我正在使用Yii2框架。

我有一个代码:

$loading = Url::home() . "image.gif";
$data = PhpSimple\HtmlDomParser::str_get_html($result);
$dataSrc = 'data-src';
$selectors = explode(", ", $this->selector);
foreach ($selectors as $selector) {
  $cacheKey = "Ca::" . $selector . "::" . Yii::$app->request->url;
  $dataSelector = Yii::$app->cache->get($cacheKey);
  $arrImages = $data->find($selector." img");
  if ($dataSelector === false) {
    foreach ($arrImages as $img) {
        $img->$dataSrc = $img->src;
        $img->src = $loading;
        $var = "<noscript><img src=" . $img->$dataSrc . " /></noscript>";
        $img->outertext = $img->outertext . $var;
    }
    Yii::$app->cache->set($cacheKey, $arrImages, DAY, $this->dependency);
  }
  else{
      $arrImages = $dataSelector;
  }
}
return parent::afterAction($action, $data);
  

$ selector =&#39; div.main,div.part__a&#39;;

我需要什么: 我需要在你第一次访问我在IMG标签中传递的页面选择器时更改属性并添加新标签更新的选择器被记录在缓存中。当您下次访问时,数据选择器不会更改,而是从缓存中获取。

我有什么: 在第一次访问时,选择器被更改并存储在缓存中,页面正确显示。在后续调用中,来自缓存的数据不会进入内部,选择器也不会更改......

问题: 我需要从缓存选择器更改为正确替换原始数据的数据吗?

如果你需要任何数据,我可以写。

0 个答案:

没有答案