2012-06-30 62 views
0

我是一個初學者,所以我很抱歉,如果這個問題是基本的。使用JavaScript或Jquery操作API Feed

我有這種格式返回一個JSON對象數據API:

{"Variable": "Number", "Variable2": "Number2"}; //(yes the number is returned as a string) 

我想創建一個頁面,從該對象(「數字」 &「號碼2」)的值是不斷因爲這些值不斷變化,所以整個頁面不需要刷新。

http://sendgrid.com有我想要做的一個很好的例子。

任何幫助將是偉大的!

+0

那你試着和你在哪裏卡住? –

+0

我被卡住了,因爲我對JS幾乎一無所知。我已經編寫了幾個頁面大部分在PHP中。我想我可以iframe的數據和頁面的部分刷新,但我認爲這將是更好的PHP。 –

+0

那麼我建議你先學習JS,如果仍然無法正常工作,請回過頭來找出所面臨的具體問題。不要指望我們爲你做這項工作。 –

回答

1

處理不斷變化的數據的方法是使用setTimeout。還有另一種稱爲setInterval的方法,但最好使用setTimeout和遞歸函數。這樣,如果操作需要比預期更長的時間,計時器不會失去同步。通過實例證明:

function updateCounter() { 
var timer; 

document.getElementById("counter").innerText(data.Variable); 

timer = setTimeout(updateCounter, 50); 

} 
+0

+1這就是如何避免setInterval,即將寫入相同。 – Blaster

+0

當然,爲了提高性能,您可能希望將循環外的元素#counter保存在循環之外。 –

0

可以使用setInterval()請求發送到您的API和更新你的目標與你的數據元素。

只是一個例子:

function updater() { 
    $.ajax({ 
    url: 'src_to_script', 
    dataType: 'json', 
    sucess: function(data) { 

     // updating your target elements 
     $('#some_item1').text(data.Variable); 
     $('#some_item2').text(data.Variable2); 

     // call updater with 5 seconds interval 
     setInterval(updater, 5000); 

    } 
    }); 
} 

// initial call to updater 
updater();