[XML/JS] Xml file opnieuw inladen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • -db-
  • Registratie: Februari 2003
  • Laatst online: 14:42
Ik ben een sidebar gadget aan het ontwerpen voor de Vista Sidebar.
Je kunt voor sidebar applicaties gebruik maken van een ingebouwd systeem om variabelen op te slaan, maar omdat ik graag uiteindelijk in staat wil zijn wat dingen te importeren of exporteren in de applicatie of gewoon een overzichtelijk bestand wil hebben voor settings etc. heb ik gekozen variabelen op te slaan in xml-files. Sidebar gadgets zijn gewoon HTML in combinatie met Javascript, ik kan dus via ActiveX en MSXML makkelijk xml-bestanden openen en bewerken.

Op zich werkt dit goed, op een punt na. De sidebar heeft een zogenaamde flyout, een extra pagina die elke keer bij het openen opnieuw word ingeladen en waar je vanalles in kunt doen. In mijn flyout kun je iets kiezen, die keuze sla ik op in een settings xml-file.

De main gadget moet nou triggeren op het sluiten van de flyout (geen probleem) en vervolgens die xml-file opniew inladen om de keuze te verwerken. Het opniew inladen van de file lukt me echter niet. De flyout word in zijn geheel opnieuw opgebouwd elke keer bij het openen en laadt daarom de xml-file ook opnieuw in, maar de main-gadget word nooit opniew gestart en laadt de file daarom niet automatisch opnieuw in.

Ik heb gezocht op internet maar niets gevonden als een update command oid. Opnieuw een load command uitvoeren doet ook niets.

Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

Je zou kunnen gokken op het feit dat het standaard IE-meuk is.

Probeer: http://url.naar.je/xmlfile.xml?time=+huidigetijdinseconden.

om een unieke URL te krijgen. Dit werkt zeker weten om te garanderen dat er een file opnieuw ingeladen wordt :)

Ik ken alleen die API verder niet, dusik durf niet te zeggen of je die xml file zo mag oproepen, maar dit lijkt me verder een optie :)

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

  • -db-
  • Registratie: Februari 2003
  • Laatst online: 14:42
Ik heb eens geprobeerd met een random number erachter, geen effect helaas.
Hier een stuk uit de code om te laten zien hoe het werkt:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var setXml;
var gadgetPath = System.Gadget.path; //Sidebar functie (geeft de map waar de gadget in is geinstalleerd)

function openXml(path){
    var Xml = new ActiveXObject("msxml2.DOMDocument.3.0");
    Xml.async = false;
    Xml.load(gadgetPath + path + "?rand=" + Math.floor(Math.random()*100));
    Xml.setProperty("SelectionLanguage", "XPath");
    return Xml
    }

function init(){
    //Word uitgevoerd bij laden gadget.
    setXml = openXml('\\settings.xml');
    }

function onFlyoutHide(){
    //Hier zou dan de file opnieuw moeten worden ingeladen
    setXml = openXml('\\settings.xml');
    }