2010-08-09 10 views
1

J'ai un gadget Windows 7 qui exécute JavaScript localement. Il envoie des arguments à un script Perl sur le serveur qui renvoie XML. Le XML n'est que des horodatages et des données brutes. Je représente graphiquement ces résultats dans une série temporelle en utilisant Flot. Les graphiques sont généralement des données de performance (% d'utilisation du processeur, espace disque logique, etc.) et je veux avoir la possibilité d'exporter les résultats en local sous forme de fichier XML afin que les utilisateurs puissent les ouvrir en Excel et générer des rapports.Exporter XML vers un fichier local en utilisant JavaScript

Voici un exemple de code:

var graphData = new Array();//Global variable 
function sendQuery(){ 
    var host_name = $('#hostNameInput').val(); 

    $.ajax({ 
    type: "GET", 
    url: "http://okcmondev102/cgi-bin/itor_PerfQuery.pl?",//+arguments   
    dataType: "XML", 
    success: function(xml){ 
     var results = new Array(); 
     var counter = 0; 

     var $xml = $.xmlDOM(xml); 

     $xml.find('DATA').each(function(){ 
     results[counter] = new Array(2); 
     results[counter][0] = $(this).find('TIMESTAMP').text(); 
     results[counter][1] = $(this).find('VALUE').text(); 
     counter++; 
     }); 

     plotGraph(results, host_name); 
    }//end Success 

    });//end AJAX 

}//end sendQuery 

function plotGraph(results, host_name){ 

    graphData.push({label: host_name, data: results}); 

    plot = $.plot($("#resultsArea"),graphData, options); 

}//end plotGraph 

Toutes les suggestions sur la façon dont je pourrais y arriver?

+0

Je soupçonne fortement que la meilleure façon de le faire est à partir du serveur - qui est, ont le serveur retourne le XML en tant que pièce jointe via une nouvelle URL que vous développez. – Pointy

+0

Pour ce faire, je dois envoyer le tableau (qui est un tableau d'objets JSON, n'est-ce pas?) Au serveur et générer le fichier xml, correct? –

Répondre

0

Download a file using Javascript

var url='http://server/folder/file.ext';  
window.open(url,'Download'); 
+0

Je suppose que le fichier doit être généré sur le serveur avant d'être téléchargé, correct? –

+0

Je pense que si elle renvoie un texte/type mime XML, vous n'aurez pas à écrire le code. Pour changer le type mime, vous devez mettre à jour les informations d'en-tête renvoyées par le serveur. – JKirchartz

Questions connexes