我正在更新一个 Coldfusion8/MySql 站点,其中包含从“意大利面条到对象”的相当复杂的搜索(= 单独的视图、控制器和进程 - 没有框架,一切都由 Jquery Mobile 处理)。
我需要通过 Jquery-AJAX 运行搜索查询,现在将搜索表单发布到我的 searchProcess.cfc,它执行数据库查询。
问题:
我不确定在哪里呈现结果?
结果将相当复杂(数据库有几百万条记录,40 个字段的行)并且应该以单个结果布局或多个结果布局文件结束。
我正在考虑在 cfc 中构建文件并通过cfsavecontent将它们交还,但我正在到处阅读这是一个禁忌......
那么有哪些替代方案呢?
我可以设置一个template_single.cfm和template_multi.cfm ,将纯搜索结果作为 AJAX 响应传回,然后从成功处理程序中触发另一个 AJAX 调用来调用模板,然后呈现第二次调用的输出。这似乎非常复杂,而且如果不传递大型数据集,我看不出我可以在哪里放置我的分页。
所以我正在寻找一些关于如何以面向对象的方式处理搜索结果的建议?
感谢您的输入!
编辑:
经过几个小时的谷歌搜索,我目前正在查看以下选项:
1.)运行单个数据库查询以返回分页结果 - 根据此处
2.)将具有 0-25 条记录的数据发送回 AJAX JSON
3.) 尝试在循环中使用模板 cf/js(长度为 1 或长度为 25) - 如此处
这意味着仅对 JSON 中的 1-25 条原始记录进行数据传输。如果我尝试在成功处理程序中呈现,我不必 http 请求另一个模板。
这种方法有意义吗?