2010-05-10 5 views
1

Je considère la création d'une application de débogage à distance simple pour Javascript. En fait, je veux fournir un objet à Firebug Lite et le laisser faire tout le travail. Donc, puis-je obtenir un objet à partir d'une page, le sérialiser, l'envoyer au serveur puis à un autre navigateur et enfin voir les mêmes résultats dans Firebug Lite (sur cet autre client) comme je le verrais sur le premier navigateur (avec faire "console.dir (obj)")? Est-il possible de faire?Pouvez-vous transporter un objet Javascript sur le serveur et le recevoir dans le même état?

Répondre

1

Réponse non-officielle: non. Vous devrez serialize votre objet à une sorte de chaîne. Il pourrait être XML ou JSON, ou un format maquillage, comme:

var anObject = {first:1,second:2,third:'infinite'}; 
function serializer(obj){ 
    var serialized = []; 
    for (var l in obj){ 
    if (obj.hasOwnProperty(l)){ 
     serialized.push(l+'='+obj[l]); 
    } 
    } 
    return serialized.join('&'); 
} 

alert(serializer(anObject)); //=>first=1&second=2&third=infinite 

Si votre objet contient des objets, vous pouvez utiliser la fonction sérialiseur récursive.

0

La solution la plus simple est de sérialisation JSON. Cependant, il est important de noter que JSON ne prend pas en charge tous les types JavaScript.

0

Au lieu de simplement répondre à la moitié de la question, voici la vraie affaire!

Comme les autres ont dit, utilisez JSON (implementation details) pour sérialiser vos données (parce qu'il est nativement pris en charge par Javascript et il est léger), puis l'envoyer à votre serveur en utilisant AJAX, peut-être en l'envoyant à un script PHP qui vient l'enregistre dans un fichier ou une base de données ou quelque chose.

Puis de l'autre côté, vous le recevez simplement en utilisant AJAX pour demander au script PHP de vous renvoyer ces données!

Questions connexes