2013-01-01 10 views
11

Esiste? L'algoritmo di clone strutturato è definito per HTML5 per consentire ai browser un meccanismo coerente per mantenere e trasferire oggetti JavaScript complessi, utilizzati da IndexedDB e window.postMessage() ma NON è un formato di serializzazione. Qualcuno sa di un tale formato che può rappresentare tutto valido nello SCA?Formato di serializzazione compatibile con Structured Clone Algorithm?

Oltre ai tipi che JSON può rappresentare, questo deve includere riferimenti ciclistici tra oggetti e oggetti RegExp, oggetti Blob, File, FileList e ImageData.

C'è qualcosa che va bene?

risposta

2

Il esistenza di un algoritmo clone strutturato in HTML5-browser è

http://www.w3.org/TR/2011/WD-html5-20110525/common-dom-interfaces.html#safe-passing-of-structured-data

E 'implementato almeno in FF:

https://developer.mozilla.org/en-US/docs/DOM/The_structured_clone_algorithm

penso di usarlo voi basta dare un grafico degli oggetti (può essere ciclico) nell'argomento del messaggio di:

window.postMessage(message, targetOrigin);.

https://developer.mozilla.org/en-US/docs/DOM/window.postMessage

Si dice così implicitamente qui:

Nota: Prima di Gecko 6.0 (Firefox 6.0/Thunderbird 6.0/SeaMonkey 2.3), il parametro messaggio deve essere una stringa. A partire da Gecko 6.0 (Firefox 6.0/Thunderbird 6.0/SeaMonkey 2.3), il parametro del messaggio viene serializzato utilizzando l'algoritmo clone strutturato. Ciò significa che è possibile passare in sicurezza una vasta gamma di oggetti dati alla finestra di destinazione senza doverli serializzare autonomamente.