2017-02-24 28 views
0

有什么方法可以用当前时间重新加载HTML所有元素。 我正在使用yii2框架。 可能是jQuery中有一些解决方案。 请给我一些想法。 在此先感谢。如何使用当前时间重新加载html dom?

+0

你用'用当前时间'表示什么意思?它是动态的吗? – C2486

+0

意味着我有时候在dom中添加一个像图片这样的新元素,在第一次刷新页面之前,它不会加载,直到清除缓存为止!所以我想清除当前时间的亏损。是的,这是动态的 –

+2

我真的不知道你在问什么。从上面的评论我想你可能会问你如何指定客户端缓存的项目,如图像?如果是这种情况,您可以发送一些HTTP头文件来指定应该缓存多长时间的事情,但是您确实需要重写您的问题,以清楚说明您真正想要的内容以及原因。 – GordonM

回答

0

我已经为yii项目做了这个。最简单的解决方案是在元素网址的结束时间戳作为参数附加:

资产/ AppAsset.php

class AppAsset extends AssetBundle 
{ 
    public $basePath = '@webroot'; 
    public $baseUrl = '@web'; 
    public $css = [ 
     'css/site.css', 
    ]; 
    public $js = [ 
    ]; 
    public $depends = [ 
     'yii\web\YiiAsset', 
     'yii\bootstrap\BootstrapAsset', 
    ]; 

    public function init() 
    { 
     parent::init(); 
     foreach ($this->css as $key => $value) { 
      $this->css[$key] = $value . '?t=' . filemtime($this->basePath . DIRECTORY_SEPARATOR . $value); 
     } 
     foreach ($this->js as $key => $value) { 
      $this->js[$key] = $value . '?t=' . filemtime($this->basePath . DIRECTORY_SEPARATOR . $value); 
     } 
    } 
} 

或您的观点:

<img src="<?php echo Yii::getAlias('@web'); ?>/paris.jpg?t=<?php echo filemtime(Yii::getAlias('@webroot') . DIRECTORY_SEPARATOR . 'paris.jpg'); ?>" /> 

我做了这使用视图帮手。如果我找到代码,我会稍后发布。 不幸的是,你不能使用这个通过CSS(例如背景图像)或JavaScript文件加载的资源。

您可以检查this,它实际上是相同的解决方案。

相关问题