2012-06-09 33 views
0

我不是一個很好的Web開發人員,我的知識沒有進一步比PHP和JavaScript/jQuery的基本知識,因此裸露在我的嘗試來解釋這一點。如何防止舊的圖像出現在頁面重新加載時有更新的圖像可用

我經常不得不更新我網站上的主要圖片,用戶會去該網站,但圖片將不會是更新的版本,除非他們手動刷新。即使我把「請刷新查看更新的圖像」,用戶忽略了這一點,我必須通過電子郵件發送到刷新按鈕。我試過有初始的index.html重新加載使用Javascript這樣

最初的index.html現場實際:

document.location.href='index2.php?code=reload_page' 

然後在index2.php:

$the_code = $_GET['code']; 

    if($the_code == "reload_page") 
    { 
    $page = $_SERVER['PHP_SELF']; 
    $sec = "1"; 
    header("Refresh: $sec; url=$page"); 
    } 
    else 
    { 
     //load page regular 
    } 

我嘗試了這樣,但它沒有工作,仍然有舊圖像,直到你點擊刷新按鈕。使用PHP或javascript/jquery完成此任何其他方式? 感謝您的時間 -Mike

+0

我不明白。誰更新你的圖片?爲什麼你需要刷新頁面? –

回答

3

的問題圖像不刷新可能是在Web瀏覽器或服務器代理等緩存問題。這是配置問題,可能不依賴於你。簡單的技巧繞過這是添加時間戳到IMG網址。每次重新生成內容index.php時間只需添加一些查詢字符串,以你的形象,因爲這:

<?php 
echo '<img src="my_image.png?ts='.time().'" />'; 
?> 

它會欺騙你的瀏覽器和代理的方式,它是另一種形象和防止緩存。

1

您可以使用計時器通過AJAX刷新你的圖片,並讓他們傳請求形成其他頁面:

setInterval(function(){ 
    $.ajax({ 
    url: 'index2.php' 
    }).done(function (data) { 
    $('#image-div').html(data); 
    }); 
}, 10000); // wait 10 seconds 

看看jQuery.ajax

+0

現在試試這個,謝謝你的回答。 – user1053263

+0

這工作完美!!!!!! – user1053263

+0

好,那麼你應該接受這個答案;) – Zbigniew

1

將以下內容放入頁面的頭部,這將每5秒重新載入一次內容。

<meta http-equiv="refresh" content="5"> 

如果瀏覽器仍然緩存圖像,因爲url沒有改變,那麼在圖像url的末尾放置一個隨機查詢字符串。你可以使用時間戳。

<img src="image.jpg?<?php echo time(); ?>"> 
相關問題