2012-09-29 65 views
0

嗨我有這個示例代碼來加載隨機引號。Jquery的加載函數在第一次加載後卡住

PHP代碼:

<?php 
    //Selecting Random quotes from database --randomquotes.php 
    require('dbconnection.php'); 
    // $temp=10; 
    $sql = "SELECT * FROM db.q order by rand() LIMIT 1"; 
    $res = mysql_query($sql,$con); 
    while ($res1=mysql_fetch_assoc($res)) 
    { 
    print "<em>".$res1['quote']."</em>"; 
    } 
?> 

HTML代碼:

<div class="class_box_shadow_quote"> 
<?php 
    require('randomquotes.php'); 
?> 
</div> 

jQuery代碼:

<script> 
    var $j = jQuery.noConflict(); 
    $j(document).ready(function(){ 
    setInterval(function() { 
     $j(".class_box_shadow_quote").load('randomquotes.php'); 
    }, 7000); 
    }); 
</script> 

此代碼是首次運作良好,但陷在第二報價並不會改變報價。 還每次我看到第二個報價總是相同的。 是什麼問題。請幫忙?

回答

2

我相信輸出被jQuery緩存。您可以嘗試禁用緩存。

setInterval(function() { 
    $j.ajax({ 
     url: 'randomquotes.php', 
     cache: false, 
     success: function(data) { 
      $j(".class_box_shadow_quote").html(data); 
     } 
    }); 
}, 7000); 
+0

精湛!!!!!!謝謝! :) –

0

嘗試增加你的URL的末尾隨機種子以避免瀏覽器緩存,就像這樣:

$(".class_box_shadow_quote").load('randomquotes.php?s=' + (Math.Random() * 1000000)) 
+0

哇這對我來說是新的......但以前的解決方案很容易避免緩存。 –

+0

有時,操縱緩存標題不起作用。我遇到過幾次這個問題。雖然它正在變得更好。 :) –

+1

實際上'cache:false'也是一樣的。它爲網址添加了隨機數發生器。 0123! – techfoobar

相關問題