Avatar billede larsny Nybegynder
03. april 2006 - 16:15 Der er 4 kommentarer og
1 løsning

xml cache problem

Jeg leger med en privat side, hvor jeg via en flash player og kan høre det musik jeg har liggende på min server.

Flash playeren henter numrene ud fra en xml fil, som jeg så manipulere med via asp.net/c#

Mit problem er at hver gang jeg skriver til filen, skal jeg op og slette temp filerne eller genstarte browseren for at den henter de nye informationer...
Har tjekket at der bliver skrevet til filen...

Nogen der ved hvordan jeg kan rette denne fejl i asp.net/c#??

Den fil der skriver til xml filen bliver kørt i et iframe, så jeg ikke behøver at genstarte flash playeren...
Avatar billede aspnet Nybegynder
04. april 2006 - 00:43 #1
Det tyder på at det er flashen der ikke kan finde ud af at hente den seneste xml fil, da du skriver at tingene bliver skrevet til filen.

Jeg vil prøve at kalde xml filen fra flash med en parameter, som er afhængig af dato/tid. Feks.

min_xml.load("destinationer.xml?id=20060404131002");

På den måde tvinger du flashen til at hente den nyeste version af xml filen.
Dette burde hjælpe dit problem.
Avatar billede aspnet Nybegynder
04. april 2006 - 00:47 #2
lad mig høre om det har hjulpet dit caching problem.
Avatar billede larsny Nybegynder
04. april 2006 - 09:17 #3
kan ikke lige få det til at fungere...

min kode:

// Reparsing all xml data into flash
function reLoadData(success) {
    if (success) {
        // getting all titles and filenames
        aPath = new Array();
        songTitel = new Array();
        audioTracks = new Array();
        audioTracks.shuffle();
        audioTracks = this.firstChild.childNodes;
        song_total = audioTracks.length;       
        for (var i = 0; i<Old_Song_Total+1; i++) {
            bot.playlist["btn"+i].removeMovieClip();
        }
        for (var i = 0; i<song_total; i++) {
            aPath.push(audioTracks[i].attributes.path);
            songTitel.push(audioTracks[i].attributes.title);
            // buiding playlist buttons
            bot.playlist.btn.duplicateMovieClip("btn"+i, i);
            bot.playlist["btn"+i]._y = bot.playlist.btn._y+i*int(bot.playlist.btn._height) +i;
            bot.playlist["btn"+i].txt = checkDigits(i+1)+". "+songTitel[i];
            bot.playlist["btn"+i].hit.onPress = function() {
                listClick(this._parent.getDepth()+1); };
        }
    }
    // done ! all loaded succesfully. purging trash
    delete audioTracks;
    delete data_xml;
}

function reloadPlaylist() {
ReloadStatus = "yes";
Old_Song_Total = song_total;
data_xml = new XML();
data_xml.ignoreWhite = true;
data_xml.onLoad = reLoadData;
data_xml.load(playlist+"?id="+Now()); <----??
}
setInterval(reloadPlaylist, 3000);
Avatar billede larsny Nybegynder
04. april 2006 - 09:36 #4
fik det til at virke :)

denne del af koden:
function reloadPlaylist() {
ReloadStatus = "yes";
Old_Song_Total = song_total;
data_xml = new XML();
data_xml.ignoreWhite = true;
data_xml.onLoad = reLoadData;
data_xml.load(playlist+"?id="+Now()); <----??
}
setInterval(reloadPlaylist, 3000);

rettede jeg til:
function reloadPlaylist() {
    myDate = new Date();
    ReloadStatus = "yes";
    Old_Song_Total = song_total;
    data_xml = new XML();
    data_xml.ignoreWhite = true;
    data_xml.onLoad = reLoadData;
    data_xml.load(playlist+"?id="+myDate.getSeconds());
}
setInterval(reloadPlaylist, 3000);
Avatar billede larsny Nybegynder
04. april 2006 - 09:37 #5
der er point ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester