0

私は何年もの間、JavaScript を使用してサイトの軽量機能 (DOM 操作など) を実行してきましたが、今ではそれを使用してより多くの面倒な作業を (PHP と組み合わせて) 行うことを調査し始めています。オブジェクト指向 JS を始めたばかりで、オブジェクト指向 JS でうまく機能するベスト プラクティスとデザイン パターンを理解しようとしています。

より具体的に言えば、私の質問は、フォームを JavaScript オブジェクトに接続するためのテクニックを提案できる人はいますか?

私の現在の実装では、(かなり大きな) フォームで編集できる JS オブジェクトがあります。オブジェクトをインスタンス化するときに、onchange オブザーバーをフォームにアタッチします。このオブザーバーのコールバックは、フォーム フィールドをオブジェクト パラメーターと同期します。AJAX を介して送信するフォームを処理しています。フォーム情報の一時的なバージョンを mySQL DB に保存する定期的な要求もあります。私が疑問に思っていることの 1 つは、フォーム フィールドが更新されるオブジェクトの変更時 (たとえば、フォームのリセット時) の同期を他の方向で簡単に処理できるかどうかです。

このアプローチが正しい/賢明なものであるかどうかを知りたいと思っています。より一般的には、OOJS フォームの処理に関するアドバイスを聞くことに非常に興味があります。

事前に乾杯:)

(私はプロトタイプを使用しています)

4

3 に答える 3

0

オブジェクトをフォームと再同期するメソッドをオブジェクトに作成してみませんか? そして、オブジェクトが変更されるたびにそれを呼び出しますか? 特別な変更関数を作成して、すべての変更で確実に呼び出されるようにすることができます。

于 2009-01-02T18:07:17.813 に答える
0

それは完全に合理的なアプローチです。JS は、その興味深いオブジェクト システムと、特にバインドされたメソッドがファースト クラス オブジェクトではない方法のために、この種のことを完全に推奨しているわけではありませんが、適切なメタクラスとコールバックの接着剤を少し使用すれば、それは非常に可能です。

この種の低レベルのフォーム処理機能を無料でもっと入手したい場合は、ウィジェット ライブラリを調べることもできます。プロトタイプの上に構築されたものは試していません。他の可能性には、YUI の可能性が含まれます。

サーバーからモデルを更新するのは非常に簡単です。通常、AJAX リクエストをポーリングし、サーバーが差分を認識している場合は差分を返すようにするか、各オブジェクトの更新にタイムスタンプを付けて、更新ごとに新しいオブジェクトの詳細をクライアント側に送信し、クライアントに方法を決定させます。その間にユーザーが行った変更とマージします。

于 2009-01-02T23:28:10.943 に答える