2017-02-24 25 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,它實際上是相同的解決方案。

相關問題