2011-11-29 56 views
0

在我的網站的某些部分,它從用戶手機收到「成績」(葡萄牙語中的「notas」)。所以當收到成績時,必須更新網站這一點上的幾個元素。我試圖使用jQuery來刷新,但它不工作。下面是我在做什麼:用jQuery部分刷新元素

<script type="text/javascript"> 
    $(document).ready(function() { 
    setInterval(function() { refresh() }, 3000); 
    }); 

    function refresh() {  
    $.get("notas", function(data) { 
     var chart = $(data).find('img').attr('src'); 
     var conclusion = $(data).find("#conclusion").html(); 

     $("img").attr('src', char); 
     $("#conclusion").html(conclusion);  
    });  
    } 
</script> 

所以,在添加了一個檔次,這AJAX GET返回一個HTML全部搞定,所以我從HTML幾個字段拉動,並試圖取代我當前頁面上。但瀏覽器沒有任何反應,沒有更新。

當我用「ctrl + U」顯示源代碼時(在添加新的等級後)看起來很好,但它不像那樣呈現。我想我不會讓瀏覽器知道服務器發生了一些變化。

對不起,大的文章,任何想法我失蹤?

謝謝!

+0

您是否嘗試過加入一些調試的東西,像console.log(圖表),在你的刷新功能中,以確保你真的獲得了你期望的數據? –

回答

0

您無法查看HTML文檔的來源以查看您使用jQuery進行的動態更改。您需要像FireBug或Chrome Dev這樣的DOM檢查工具。工具。

有些事情,我注意到:

  1. 是 「NOTAS」 正確的URL爲您的服務器端腳本?
  2. 看起來好像您的服務器響應中包含ID爲「結論」的元素,並且您的頁面上已有相同的ID。這並不好,每個ID都應該是唯一的。
  3. 你有這樣一行:$("img").attr('src', char);這似乎並沒有做任何的DOM,正在創建的圖像沒有被添加到網頁的任意位置...
+0

這是正確的DOM檢查,HTML源不顯示瀏覽器上發生了什麼。我剛剛發現了瀏覽器的Web控制檯,可以找到你指出的那一行:$(「img」)。attr('src',char);正在打破我的腳本,因爲正確的var命名它的「圖表」不是「char」。所以,現在它工作正常!非常感謝!現在我喜歡瀏覽器Web控制檯:D – brunosm

+0

@brunosm您可以使用開發人員工具做很多有用的事情,例如發送觀看請求,在您的頁面加載時檢查正在下載的資產的瀑布,實時查看cookies正在被製作/修改/刪除,檢查DOM,用'console.log()'記錄數據,還有更多...... – Jasper