javascript
  • jquery
  • refresh
  • 2012-10-23 73 views 0 likes 
    0

    我有一個<div id="refresh">,它有一些MySQL內容。我有這方面這段JavaScript代碼:自動刷新聊天問題

    <script type="text/javascript"> 
        var auto_refreshs_contents = setInterval(
         function(){ 
          $('#refresh').load('index.php?_=' +Math.random()+' #refresh').fadeIn("slow"); // load div.refresh 
         } 
        , 3000); // refresh every 3 seconds 
    </script> 
    

    它實際上職位代碼的副本,第一次那麼它會是這樣的:

    0 seconds 
    +-------------------------------------+ 
    |Randome Text       | 
    |This is such a cool chat room  | 
    |Not really       | 
    +-------------------------------------+ 
        3 seconds 
    +-------------------------------------+ 
    |Randome Text       | 
    |This is such a cool chat room  | 
    |Not really       | 
    |This is such a cool chat room  | 
    |Not really       | 
    +-------------------------------------+ 
    

    如果您發現,它離開了崗位「隨機文本」。我不知道爲什麼。 但是,它基本上是第一次。然後在6秒後刷新,但沒有更多的內容,之後,它刷新正確。所以我決定在刷新之前清除頁面中的內容:

    <script type="text/javascript"> 
        var auto_clearContents = setInterval(
         function(){ 
          $("#refresh").html(""); //clear contents of div#refresh 
         } 
        , 3000); //clear existing contents every 3 seconds 
    
        var auto_refreshs_contents = setInterval(
         function(){ 
          $('#refresh').load('index.php?_=' +Math.random()+' #refresh').fadeIn("slow"); // load div.refresh 
         } 
        , 3000); // refresh every 3 seconds 
    </script> 
    

    但是,當事情變得怪異時,我正在查看Chrome開發者工具中的networks標籤,它顯示它每200毫秒左右刷新一次(是200),有時需要2.5秒。我不知道...

    我的代碼有什麼問題嗎?有沒有更好的方法來做到這一點?謝謝!

    回答

    1

    我認爲後端肯定有問題。 Here is a fiddle顯示基本上只是你在說什麼,它工作正常。

    當您看到200毫秒時,我認爲這可能是生成index.php頁面所需的時間,而不是間隔之間的時間。

    如果您向我們顯示來自php頁面或php頁面的響應,我們可能會提供幫助。

    +0

    這裏是另一個版本,實際上顯示每個'load()之間的毫秒數http://jsfiddle.net/Gm82w/7/ – davehale23

    +0

    divs是否被引用爲ID?或者我可以在他們上面有一個類(因爲有多個): –

    +0

    可以這樣做:$('。refresh')。load('inc/chat.php .messages')。fadeIn(「slow 「);我問的原因是因爲我們把DIVS都改成了一個班,因爲他們多次使用過。現在不爽快。 –

    相關問題