現在修正中のキオスクとして機能する比較的単純な Web アプリがあります。私の当初の目標は、それを機能させることだけでしたが、今はよりエレガントなアプローチを実装しようとしています.
基本的な背景情報:
- コンテンツ - すべてのコンテンツは php 経由でデータベースから取得されます - ajax 呼び出しに応答するか、php でコンテンツを直接エコーします (ほとんどのコンテンツ)。この部分はすでに修正済みで、まだ完全ではありませんが、かなり効果的/柔軟です。
- キオスクの機能 - クライアントは、キオスクを使用して 1 つまたは複数のアンケートに回答します。フォームが検証に合格すると、データが送信されます。それが最後の調査である場合、セッションは終了します。さらに調査がある場合は、引き続き調査を行います。
問題:キオスクの動作を制御するjQuery イベント ハンドラーがごちゃごちゃし ています。基本的に、この動作は、キオスクの状態に基づいて、DOM に既に存在する要素を表示/非表示にすることで構成されます。
- 指示の切り替え
- ログアウト画面の切り替え(アンケートの早期終了)
- アンケートの次/前の質問に移動
- 自動ログアウトの警告を表示するアイドル タイマー (アラートではなく表示/非表示のみ)
- 十分に回答されていない場合は、見逃した質問を表示する
- 単純な検証に合格した場合にフォームを送信する
調査を追加すればするほど、遭遇する特殊なケースが増え、jQuery がより厄介になるように見えます。ラジオボタンだけで構成された調査は簡単ですが (コードはまだ洗練されていません)、質問パイピング (他の質問に依存する質問) とテキスト応答があるものは、できれば特別なケースとして扱っているようです。 jQuery に対してよりモジュラー/OOP アプローチを採用します。
検討した...
- プロトタイプ
- jQuery UI ウィジェット ファクトリ
- 独自の jQuery プラグインの作成
- 自分の JavaScript クラスを書く
- ノックアウト.js
- 現在のjQueryアプローチを継続し、クリーンアップするだけです
あなたの専門知識を提供し、私のプロジェクトのコンテキストに基づいて正しい方向に私を向けてくれてありがとう.