2012-03-31 50 views
2

我正在設計一個JavaScript小部件,它將顯示一個由php創建的隨機廣告的iframe。正在按下後退按鈕時緩存JavaScript文件

每次頁面刷新時,都會創建一組新的隨機廣告。

當用戶點擊廣告時,他被重定向到廣告代表的網站。

當用戶使用後退按鈕時會出現問題。

由於後退按鈕只是顯示一個緩存頁面,所以會出現相同的廣告,這是我不想要的。

由於廣告將顯示在的網站不屬於我,我無法訪問頭文件。

即使使用JavaScript重載功能,JavaScript文件仍然被緩存。

任何幫助將不勝感激。

+0

可能在服務器端某種緩存被激活? – Daxcode 2012-03-31 02:50:27

回答

3

問題是Javascript的緩存是由瀏覽器控制的客戶端機制。因此,要做到這一點的一種方式是使用無緩存頭告訴瀏覽器不緩存:

<meta http-equiv='cache-control' content='no-cache'> 
<meta http-equiv='expires' content='0'> 
<meta http-equiv='pragma' content='no-cache'> 

另一種選擇是讓請求通過將隨機數到結束與看似獨特的每一次使用Javascript:

var img.src = 'www.mysite.com/ads.php'+'?'+Math.random()*Math.random(); 
return $(img).load(function() 
{ 
    alert('completed!'); 
}); 

最後一個選擇,如果你正在使用jQuery:

$.ajax({ 
    url: 'test.html', 
    cache: false, 
    success: function(html){ 
    $('#results').append(html); 
    } 
}); 
+0

這些都不起作用。我沒有訪問Ajax或標題,因爲這不在我自己的網站上。我已經有500個網站使用這個腳本,所以我不能改變它現在被調用的方式。 – 2012-03-31 03:43:11

+0

聽起來好像它可能爲時已晚,而沒有發生劇烈的變化...... – 2012-03-31 03:55:45

+0

動態添加標題會導致瀏覽器看到並尊重它們嗎? – 2012-03-31 04:10:39

0

如果它更多鈔票不要等待用戶推背屁股上。在他離開您的網站之前切換廣告。