| 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: 11 let
|
|||
0