2011-11-15 11 views
1

私はRaphaelJSベースのキャンバスを用意しています。私は2つのことを実行する必要があります。SVGシリアル化

  1. 保存ユーザーはデータベース
  2. Rastersize SVGに働く1 https://github.com/jspies/raphael.serializeについては

は、JSONにラファエルのキャンバス、jQueryのをダンプします(私はそのタスクのためのApacheのバティックを使用します)。 getJSON()を使用してバックエンドに送信し、SVGに戻してBatikにフィードする必要があります。

このフローは妥当と思われますか? SVG - > JSON - > SVG変換はオーバーヘッドのようですが、これを行うにはより良い方法がありますか?

バックエンドはpython/djangoを実行します。私はJSON - > SVGの標準jsonパッケージを使用しますが、(通常はフォントスタイルのプロパティで)着信jsonの構文エラーで失敗することがあります。誰もこれらの問題に直面しましたか?

このデータをデータベースに保存するにはどうすればよいですか?文字列のように?

+0

このアプリケーションはどの程度スケーラブルである必要がありますか? svgのテキストを大きな文字列として保存しても問題ありません。しかし、それについて質問しなければならない場合や、多量のトラフィックを計画している場合は、それは良い考えではありません。 – Clint

+0

この時点では、このデータに多くの質問が出るようではありません。私が見る別の方法は、テキストファイルに保存することです。 –

+0

私はRaphael 2.0で動作するようにraphael.serializeをかなりリファクタリングし、すべての要素と変換を処理します:https://github.com/ElbertF/Raphael.JSON –

答えて

2

Raphael.Exportがに要素を保存しますラファエルがサポートする任意のブラウザでSVG:

https://github.com/ElbertF/Raphael.Export

私はバティックを使用してPNG画像サーバ側としてラファエル図面を保存するためにそれを使用しました。

0

あなたは、あなたが(クライアント上)生のXMLソースにこれを変換することができますし、それだけを送信ラファエルからのルート<svg>要素のハンドルを取得できた場合:

var svgAsXML = (new XMLSerializer).serializeToString(svg); 
+2

古いものはありません。

+0

@AlexKreimer ...ラファエルはうまくいきませんよね? RaphaelがVMLを表示レイヤーとして実行しているIEのケースについて話している場合を除きます。 – Phrogz

関連する問題