PDA

Volledige versie bekijken : Blijft XML gecached?


FredericCox
%Europe/Berlin %490 %2005, 12:46
Hallo,

Ik ga geen code geven want die is niet echt nodig.

Ik heb gewoon een paar knoppen, en elk hebben ze een ander matchID. Als je op een knop drukt krijg je dus een andere match.

Dan laadt ik wat er in die match gebeurt in via XML. Daarna doe ik een duplicate om voor elk event een knopje te creeëren. Dit doet ie de eerste keer altijd goed, maar als ik daarna weer op een knop druk,en dus die functie die de xml laadt weer uitvoer. Dan geeft hij wel aan dat het id veranderd maar de XML data blijft hetzelfde.

Als ik flash terug opstart(mijn swf) doet hij het de eerste keer altijd goed, het is gewoon als ik op een andere knop klik in runtime datde XML data niet veranderd.

Ik heb al voor MyXML = new XML() MyXML = "" geprobeerd maar dat werkt niet

behived
%Europe/Berlin %493 %2005, 12:50
probeer iets in deze zin:

thisXML.load("messages.xml?"+ new Date().getTime());

de link is elke keer anders dus gaat de xml elke keer opnieuw worden ingeladen. Toch wordt de juiste xml ingeladen want alles na het vraagteken wordt aanzien als extra gegevens die worden meegegeven via de url

FredericCox
%Europe/Berlin %503 %2005, 13:05
probeer iets in deze zin:

thisXML.load("messages.xml?"+ new Date().getTime());

de link is elke keer anders dus gaat de xml elke keer opnieuw worden ingeladen. Toch wordt de juiste xml ingeladen want alles na het vraagteken wordt aanzien als extra gegevens die worden meegegeven via de url

Ik parse de XML door een php , hier staat dus al een vraagteken in...
_global.xmlFile + "/xml.php?page=live.asp&outputType=XML&actionType=addMatch&matchID=" + MatchID

behived
%Europe/Berlin %524 %2005, 13:35
de idee achter de new Date().getTime()-functie is dat deze altijd verschillend is, je hebt dus altijd een andere url. Het gaat hem niet om het vraagteken, maar om de link anders te doen lijken dan dat wat in je cache zit.

FredericCox
%Europe/Berlin %546 %2005, 14:07
de idee achter de new Date().getTime()-functie is dat deze altijd verschillend is, je hebt dus altijd een andere url. Het gaat hem niet om het vraagteken, maar om de link anders te doen lijken dan dat wat in je cache zit.

Inderdaad dus mijn xml is altijd uniek, wat kan dan het probleem zijn, hij traced de XML hetzelfde:s

behived
%Europe/Berlin %569 %2005, 14:40
had iets te vlug gelezen...

kan je even de exacte code posten die op je button staat + de code die ervoor zorgt dat de andere xml-data wordt ingeladen

FredericCox
%Europe/Berlin %609 %2005, 15:37
had iets te vlug gelezen...

kan je even de exacte code posten die op je button staat + de code die ervoor zorgt dat de andere xml-data wordt ingeladen

Het is al opgelost. Ineens realiseerde me dat ik matchen toevoeg, dus je krijgt in de xml verschillende match indexen, en ik haalde telkens maar de eerste match op terwijl de andere er wel instonden..:)

Anderprobleem.


Ik doe een switch

switch (EventID) {
case 10:

dat is goed,no errors

switch (EventID) {
case > 10

Dit is fout:s terwijl ik dit letterlijk uit een actionscriptdictionary heb overgenomen

behived
%Europe/Berlin %629 %2005, 16:05
Waar heb je deze code gevonden, want een switch expression test strict equality (===).
Denk dat je misschien beter gewoon if(eventID>10){}else{} gebruikt

FredericCox
%Europe/Berlin %671 %2005, 17:07
Waar heb je deze code gevonden, want een switch expression test strict equality (===).
Denk dat je misschien beter gewoon if(eventID>10){}else{} gebruikt

ja maar tis voor heel veel zaken, zouden anders ongeveer 321 if's zijn:s

behived
%Europe/Berlin %344 %2005, 09:15
da wordt inderdaad moeilijk...
in php werkt de switch op de volgende manier:
In een switch statement, wordt de conditie maar ��n keer geevalueerd, vervolgends wordt de uitkomst van deze evaluatie vergeleken met de verschillende case statements. Bij een elseif statement wordt de conditie per elseif geevalueerd. Dit betekent dat je, als je een gecompliceerde evaluatie hebt, het gebruik van een switch statement wellicht sneller zou werken.

De statement list voor een case kan ook leeg zijn, op deze manier zal de controle meteen worden doorgegeven aan de volgende case:

switch ($i) {
case 0:
case 1:
case 2:
print "i is kleiner dan 3 maar niet negatief";
break;
case 3:
print "i is 3";
}
zie hier voor de volledige uitleg (http://be.php.net/switch)

Ik veronderstel dat dat in flash juist hetzelfde zal zijn...
Misschien kan dat je helpen om je structuur op te bouwen?

dioneo
%Europe/Berlin %615 %2005, 15:45
tip ; je kunt cache door de browser voorkomen in php door

header("Pragma: public");
header("Expires: 0");

en in flash zit de undocumented free-functie. Als je de inhoud van je thisXML hebt verwerkt, doe je

free(thisXML);

zodat je object effectief geleegd wordt.