【发布时间】:2012-05-22 09:05:28
【问题描述】:
我正在更新一个 Coldfusion8/MySql 站点,其中包含从“意大利面条到对象”的相当复杂的搜索(= 单独的视图、控制器和进程 - 没有框架,一切都由 Jquery Mobile 处理)。
我需要通过 Jquery-AJAX 运行搜索查询,现在将搜索表单发布到我的 searchProcess.cfc,它执行数据库查询。
问题:
我不确定在哪里呈现结果?
结果将相当复杂(数据库有几百万条记录,40 个字段的行)并且应该以单结果布局或多结果布局结束文件。
我正在考虑在 cfc 中构建文件并通过 cfsavecontent 将它们交还,但我到处阅读这是一个禁忌...
那么有什么选择呢?
我可以设置 template_single.cfm 和 template_multi.cfm,将 pure 搜索结果作为 AJAX 响应传回,然后触发另一个 AJAX从成功处理程序调用以调用模板,然后呈现此第二次调用的输出。这看起来非常复杂,而且我看不到在不传递大型数据集的情况下我可以在哪里放置我的分页。
所以我正在寻找一些关于如何以面向对象的方式处理搜索结果的建议?
感谢您的意见!
编辑:
经过几个小时的谷歌搜索后,我目前正在寻找以下选项:
1.) 运行单个数据库查询以返回分页结果 - 根据 here
2.) 以 JSON 格式将 0-25 条记录的数据发送回 AJAX
3.) 尝试在循环中使用模板 cf/js(长度为 1 或长度为 25) - 根据here
这意味着数据传输仅适用于 JSON 格式的 1-25 条原始记录。如果我尝试在成功处理程序中呈现,我不必 http 请求另一个模板。
这种方法有意义吗?
【问题讨论】:
-
如果您投票结束,请至少发表评论。
-
这不是我的投票,但选择的原因是“属于Software Engineering”。这是错误的,因为那个网站是关于程序员(人)的,而这个网站是关于编程(任务)的,这个问题肯定是关于后者的。
-
顺便说一句,虽然我自己对此没有任何想法,但我建议将标签更改为:[javascript] [templating-engines] [jquery-mobile] [ajax] [coldfusion] - 我认为这些更能代表你的问题。
-
频繁 - 您的问题并不表示目标流量或受众或性能问题。根据我的经验,您正在解决的问题在很大程度上受到目标客户端环境的影响。例如,由于您使用的是 jquery mobile - 这是一个移动应用程序吗?如果是这样,那么上面的选项 2 可能是最有效的方式(这可能是您的主要关注点)。但如果它是纯桌面环境或 Intranet 选项 1 可能更可取。明白我的意思吗?
-
@MarkAKruger - 它将是一个移动应用程序
标签: javascript ajax jquery-mobile coldfusion templating-engine