Autor | Zpráva | ||
---|---|---|---|
nyllo Profil |
Zdravím,
potřebuji automaticky aktualizovat obsah xml souboru, který se mění v prodlevě 1 - 3 min. Je pro mě důležité to aktualizovat již v tomto kódu. XML načítám tímto js. $(document).ready(function () { $.ajax({ type: "GET", url: "http://api.example.com/data.xml", dataType: "xml", success: xmlParser }); }); function xmlParser(xml) { $(xml).find("apidat").each(function () { $(".api").append('<div class="title">' + $(this).find("title").text() + '</div><div class="text">' + $(this).find("text").text() + '</div><div class="callmeback">' + $(this).find("callmeback").text() + '</div><div class="cover"><img src=" ' + $(this).find("cover").text() + ' "</img></div>'); }); } Předem děkuji za rady. |
||
_es Profil |
#2 · Zasláno: 12. 6. 2015, 02:33:13
Asi chceš použiť funkciu setInterval.
|
||
nyllo Profil |
#3 · Zasláno: 12. 6. 2015, 06:24:49
Klidně bych jí použil ale nepodařilo se mi to za implementovat do kódu.
|
||
Taps Profil |
#4 · Zasláno: 12. 6. 2015, 06:56:35
nyllo:
pro inspiraci http://www.samundra.com.np/automatic-ajax-call-using-jquery/608 |
||
nyllo Profil |
#5 · Zasláno: 12. 6. 2015, 07:03:36
Napsal jsem to takto ale data to neaktualizuje, ale znovu vypíše.
$(document).ready(function () { $(function () { setInterval(GetValues, 2000); }); }); function GetValues(){ $.ajax({ type: "GET", url: "http://api.example.com/data.xml", dataType: "xml", timeout: 10000, success: xmlParser }); } function xmlParser(xml) { $(xml).find("track").each(function apidata() { $(".api").append('<div class="artists">' + $(this).find("artists").text() + '</div><div class="title">' + $(this).find("title").text() + '</div><div class="callmeback">' + $(this).find("callmeback").text() + '</div><div class="cover"><img src=" ' + $(this).find("cover").text() + ' "</img></div>'); }); } |
||
Radek9 Profil |
#6 · Zasláno: 12. 6. 2015, 08:26:22
nyllo:
Musíš ten div s třídou api nejdřív promazat, než do něj začneš ty data přidávat. |
||
nyllo Profil |
#7 · Zasláno: 13. 6. 2015, 18:06:10
Tak jsem tu funkci napsal takto. Nyní ale text nevzhledně bliká.
$(document).ready(function () { GetValues(); $(function () { setInterval( function() { $('.api').empty(); GetValues(); }, 5000); }); }); function GetValues(){ $.ajax({ type: "GET", url: "http://api.example.com/data.xml", dataType: "xml", timeout: 100000, success: xmlParser }); } function xmlParser(xml) { $(xml).find("track").each(function () { $(".api").append('<div class="artists">' + $(this).find("artists").text() + '</div><div class="title">' + $(this).find("title").text() + '</div><div class="callmeback">' + $(this).find("callmeback").text() + '</div><div class="cover"><img src=" ' + $(this).find("cover").text() + ' "</img></div>'); }); } |
||
Radek9 Profil |
#8 · Zasláno: 13. 6. 2015, 19:07:02
nyllo:
Myslím vyprázdnit před tím opětovným plněním (tedy před tím each ), ne před načítám. Je logické, že to blikne, když to ještě na to načtení čeká.
|
||
nyllo Profil |
#9 · Zasláno: 13. 6. 2015, 19:12:56
Už to funguje jak má.
Děkuji moc všem za rady. |
||
Časová prodleva: 9 let
|
0