2009-06-25 5 views
1

まだ作成されていない(IDがない)オブジェクトがありますが、ユーザーがフィールドを作成して作成しています。いずれかのフィールドでは、このオブジェクトの属性を作成しますが、その属性にはオブジェクトのIDが必要です。まだ作成されていないオブジェクトに関連する属性をAJAX経由で保存するにはどうしますか?

問題はどこにあるのですか?オブジェクトはまだ実際には作成されていないため(ユーザーがフィールドを作成するためにフィールドを作成中です)、IDはありません。オブジェクトを編集してオブジェクトのIDを持っている場合、属性を作成することは問題ありません。ここで

は関係あり:

OBJECT (name, id) 
^ATTRIBUTE (name, object_id, id) 

あなたはこのような状況に対処するにはどうすればよいですか?オブジェクトに「is_temporary」フィールドを追加することを検討していたので、バットからIDを取得できるようになりましたが、確かに良い方法がありますか?

+0

私はよく分かりません。オブジェクトをどこに保存していますか?保存しているのはどうですか?あなたが追加できるいくつかのより多くのコードがありますか? IDはいつ生成されますか? –

+0

@イアン、もう少し詳しく質問に追加しました。ありがとう。 –

+0

"ID"はデータベースIDで、javascript/DOM IDではないと思いますか? – razzed

答えて

1

実際には大きな質問です。

  • は、クライアント側のフォームの状態を経て作成と保存を処理できるように、「ATTRIBUTE」作成コードを変更します:2つのオプションがあります。
  • "is_temporary"フィールドを使用し、通常の実行タスクで定期的にパージします。

後者の方が実装がはるかに簡単ですが、オブジェクトにアクセスする他の場所ではis_temporary = 'false'を含める必要があります。また、人がキャンセルするとIDシーケンスがマックアップされます。

ATTRIBUTE作成コードの難易度によって異なります。オブジェクトが(IDなしで)作成されるまでフォーム内で永続化させることが難しい場合は、後者のオプションを選択します。それ以外の場合は、前者を選択します。

0

私はあなたが保存されているオブジェクト(データベースやどこにあっても)とオブジェクト[JSでインスタンス化されている]とを区別する必要があると思います。

オブジェクトをデータベースに保存していますか? 1つの方法は、データベースから次のIDをプリフェッチすることです。しかし、これは独自の問題を抱えています(ページが大量のトラフィックである場合は重複しています)。

オブジェクトを保存し、IDを取得して属性に使用できますか?サーバーへの複数回のトリップを避けたい場合は、すべてを送信してIDのサーバー側を処理するまで、IDのことを心配しないでください。

さらに具体的な例もいいでしょう:-)

関連する問題