2010-09-23 63 views
0

我真的很困惑這幾行代碼應該在我看來。 Div在使用.html時更新,但在使用自定義腳本時不會更新。阿賈克斯成功,如何刷新每分鐘響應

我有幾個文件,index.php文件和test.php的

指數包含:

$(document).ready(function() { 
    setInterval(function() { 
     $(function() { 
      $.ajax({ 
       url: 'test.php', 
       dataType: 'json', 
       cache: false, 
       success: function (data) { 
        // custom script that displays parsed info goes here, doesn't work 
        $("#div").html(data); // works and updates 
       } 
      }); 
     }); 
    }, 10000); 
}); 

的test.php包含JSON字符串。

index.php會顯示並更新div中的解析信息,但是使用json填充的數據的腳本不會刷新。

任何幫助將不勝感激。

謝謝

+0

如果使用firefox你可能會安裝firebug來跟蹤發生了什麼事情。它允許您查看是否發送請求以及每個請求的內容和響應。 – 2010-09-23 23:40:54

+0

所以你的問題中的代碼有效,但是還有另外一部分,你沒有包括那不起作用? – user113716 2010-09-24 00:25:14

+0

謝謝大家的回答。有問題的劇本其實是罪魁禍首。 – Bastien 2010-09-24 03:17:12

回答

0

首先,檢查以確保請求被成功完成。首先仔細檢查你的選擇器語法是否與標記匹配。 '#div'正在尋找任何id =「div」的元素。如果這是正確的,請確保請求正在處理中。嘗試在成功函數中放置警報或調試語句。如果您沒有彈出窗口,請使用firefox或chrome網絡監視器來查看發出請求時發生的情況。

0

使用setInterval,定期調用函數,您的函數可能會或可能不會完全執行,當您使用setTimeout調用函數時,有可能執行代碼(完全)。以及在你的問題,我正在寫一個自執行的匿名函數的函數名稱爲request,我會打電話給它的每一個10000 milli seconds

$(function() { 
    (function request() { 
     $.ajax({ 
      url: 'test.php', 
      dataType: 'json', 
      cache: false, 
      success: function (data) { 
       $("#selector").html(data); // works and updates 
      } 
     }); 
     //calling the anonymous function after 10000 milli seconds 
     setTimeout(request, 10000); second 
    })(); //self Executing anonymous function 
}); 

後只要給它一試=)