0

Coldfusion8/MySql サイトを「スパゲッティからオブジェクトへ」(= ビュー、コントローラー、プロセスを分離 - フレームワークなし、すべて Jquery Mobile で処理) からかなり複雑な検索で更新しています。

Jquery-AJAX を介して検索クエリを実行する必要があり、データベース クエリを実行する searchProcess.cfc に検索フォームを投稿しています。

質問:
結果を表示する場所がわかりません。

結果はかなり複雑になり (数百万レコードのデータベース、40 フィールドの行)、単一の結果レイアウトまたは複数の結果レイアウト ファイルになるはずです。

私は cfc 内にファイルを構築し、cfsavecontentを介してそれらを返すことを考えていましたが、どこでも読んでいますが、これはノーノーです...

その場合、代替手段は何ですか?

template_single.cfmtemplate_multi.cfmを設定し、純粋な検索結果を AJAX 応答として返し、成功ハンドラーから別の AJAX 呼び出しを起動してテンプレートを呼び出し、この 2 回目の呼び出しの出力をレンダリングすることができます。これは非常に複雑に思えます。さらに、大きなデータセットを渡さなければ、ページネーションをどこに収めることができるかわかりません。

オブジェクト指向の方法で検索結果を処理する方法についてのアドバイスを探していますか?

ご意見ありがとうございます。

編集:
さらに数時間グーグルで調べた後、現在次のオプションを検討しています:
1.)単一のデータベースクエリを実行して、ページ分割された結果を返します-ここ
のように 2.)0〜25レコードのデータをAJAXに送り返しますJSON
3.) ループでテンプレート cf/js を使用しようとしています (長さ 1 または長さ 25) -こちらのとおり

これは、JSON の 1 ~ 25 個の生レコードのみのデータ転送を意味します。成功ハンドラーでレンダリングしようとすると、別のテンプレートを http リクエストする必要はありません。

このアプローチは理にかなっていますか?

4

1 に答える 1

1

まず、表示ロジック専用の .cfc に表示ロジックを配置しても問題はないと思います。厳密な MVC ではないことはわかっていますが、実行内容によっては問題なく動作します。私が気に入らないのは、関数内で何らかの出力を行う .cfc です。私は常に関数からデータを返します。

/意見終了

この特定の問題については、ページ分割されたレコードセットの AJAX 呼び出しを使用して、ほとんどすべての HTML/jQuery になるようにビューを設定するという EDIT のアイデアを 2 番目に使用します。単一/複数の結果に関しては、必要なものに応じて個別の jQuery 関数を使用します。これの良いところは、(Dom に完全なレコードセットを保持しながら) 単一レコードを表示するために、複数レコードセット表示で単一レコード表示を呼び出すことができることです。

どちらの場合も、Javascript Dump関数を取得することを強くお勧めします (DOM データの視覚化に非常に役立ちます)。

PS。cfdump のように機能する新しい/より優れた JS Dump 関数を誰かが見つけた場合は、お知らせください。

于 2012-05-22T14:09:33.107 に答える