2010-12-15 2 views
12

У меня есть этот кусок кода, но значения могут измениться, пока кто-то на моем сайте. Мне нужно обновить div #finance каждые 30 секунд или около того. Это можно сделать?jQuery Запрос Ajax каждые 30 секунд

$(function() { 
    $.getJSON(
     "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22%5EFTSE%22)%0A%09%09&format=json&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=?", 

     function(json){ 
      $('#finance').text(json.query.results.quote.Change); 
      // Patching payload into page element ID = "dog" 
     }); 
}); 
+0

Не забудьте выбрать ответ. Пожалуйста, вернитесь к некоторым из 50 или около того вопросов, которые вы задали, и примите некоторые ответы на них. – 2010-12-15 14:06:34

+0

Извинения. Сделаю. Я все беру в данный момент lol – 2010-12-15 14:20:45

ответ

30

Вы можете поместить свой код в отдельную функцию, как это:

function LoadFinance() 
{ 
    $(function() { 
     $.getJSON(
     "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22%5EFTSE%22)%0A%09%09&format=json&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=?", 
     function(json){ $('#finance').text(json.query.results.quote.Change); 
     // Patching payload into page element ID = "dog" 
     }); 
    }); 
} 

А затем настроить таймер вызова функции каждые 30 секунд:

setInterval(LoadFinance, 30000); 

Удачи! ;)

17

Вы можете установить его на интервале, например:

$(function() { 
    function update() { 
     $.getJSON("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22%5EFTSE%22)%0A%09%09&format=json&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=?", 
     function(json){ 
     $('#finance').text(json.query.results.quote.Change); 
    }); 
    } 
    setInterval(update, 30000); 
    update(); 
}); 

setInterval() пожары в первый раз после того, как интервал (например, он первым проходит через 30 секунд после того, как DOM нагрузок здесь) .. так что для этой начальной загрузки вам все равно необходимо сразу вызвать ее через update().

3

Абсолютно:

setInterval(  
    function() { 
    $.getJSON(
     "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22%5EFTSE%22)%0A%09%09&format=json&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=?", 

    function(json){ $('#finance').text(json.query.results.quote.Change); 
    // Patching payload into page element ID = "dog" }); 

    }, 
    30000); 
Смежные вопросы