我正在用一个相当复杂的搜索更新一个Coldfusion8 8/MySql站点,从"spaghetti到object“(=单独的视图、控制器和进程--没有框架,所有都由Jquery处理)。
我需要通过Jquery运行搜索查询,现在将搜索表单发布到我的searchProcess.cfc中,后者负责数据库查询。
问题:
我不知道结果在哪里?
结果将相当复杂(数据库中有几百万个记录,40个字段的行),并且应该以单个结果布局或多结果布局文件结束。
我在考虑构建cfc内部的文件并通过cfsavecontent,将它们交回来,但我到处阅读--这是不-不.
那还有什么可供选择的呢?
我可以设置一个template_single.cfm和template_multi.cfm,,将纯搜索结果作为AJAX响应传回,然后从成功处理程序中触发另一个AJAX调用来调用模板,然后呈现第二个调用的输出。这看起来非常复杂,而且我看不出在哪里可以在不传递大型数据集的情况下将我的分页放进去。
所以我想找一些关于如何以面向对象的方式处理搜索结果的建议?
谢谢你的意见!
编辑:
在googling搜索了几个小时之后,我目前正在考虑以下选项:
1.)运行单个数据库查询以返回分页结果-与这里相同
2.)用JSON将带有0-25条记录的数据发送回AJAX
3.)尝试在循环中使用模板cf/js (长度1或长度25) -按照这里
这意味着仅对JSON中的1-25条原始记录进行数据传输。如果我试图在成功处理程序中呈现,我就不必请求另一个模板。
这种方法有意义吗?
发布于 2012-05-22 14:09:33
首先,我认为在专门用于显示逻辑的.cfc中放置显示逻辑没有什么问题。我知道它不是严格的MVC,但取决于您在做什么,它可以很好地工作。我不喜欢的是..cfc在函数中执行任何类型的输出。我总是把函数中的任何数据都交回来。
/end意见
对于这个特殊的问题,我第二个编辑的想法是将视图设置为几乎所有HTML/jQuery,并对分页记录集进行AJAX调用。至于单个/多个结果,我会根据您需要的结果使用不同的jQuery函数。这样做的好处是,您可以让多个记录集显示调用单个记录显示来查看单个记录(同时仍将完整记录集保留在Dom中)。
在这两种情况下,我强烈建议获得一个Javascript转储函数(在可视化DOM数据方面非常有帮助)。
PS。如果有人发现任何新的或更好的JS转储功能,像cfdump一样工作,请告诉我!
https://stackoverflow.com/questions/10698919
复制相似问题