使用jQuery和PHP过滤DB结果

时间:2011-09-20 00:15:39

标签: php jquery mysql database json

我刚刚开始创建我的第一个网站,该网站由数据库支持(这也是我的第一个数据库)。由于我完全缺乏经验,我不知道我是否应该依赖jQuery或PHP来完成特定的任务,并希望有人能够提供一些见解。 (这是'最佳实践'问题。)

在“文件”表中,有6个字段,大约50行。向用户显示表中的所有信息,并且能够应用过滤器(通过复选框)来操纵数据的显示方式。例如,如果选中 category = DNA keyword = assay 框,则php脚本会在数据库中选择字段 category 中的那些行和关键字分别具有值 DNA assay,。然后将此信息作为JSON对象返回到jQuery脚本,以便格式化并插入DOM(我使用$ .getJSON)。

到目前为止,这很好用。但是,在读到对db的“太多”查询会导致性能损失时,我编写了一个新的jQuery脚本,它在文档加载后立即从“Files”表中获取所有信息。此信息分布在6个不同的阵列中(即 category [] keyword [] ,所有6个阵列中给定行的索引相同)。然后,如果应用上述相同的过滤器,我会搜索类别[] keyword [] 数组。如果在 category [i] 中找到字符串 DNA assay ,则会显示与索引 i 相关的信息和 keyword [i]

显然,第二种方法减少了对db的查询次数。然而,对我来说感觉“错误”是因为我使用的是jQuery而不是'行为'的东西,我怀疑jQuery在搜索数组时的速度和MySQL在表中查找行的速度一样快。测试两个版本的网站,它们似乎表现同样出色,但我只能在本地测试网站。我想如果表格变得非常大,jQuery版本将变得不那么可行,但它不可能超过100行。

如果您有任何建议,我将非常感谢您在决定我应该实施哪个选项方面的任何帮助。提前感谢您的意见,我希望您能为这样的菜鸟接受我的道歉!

2 个答案:

答案 0 :(得分:1)

使用jquery或PHP或PHP和jquery,您可以使用6个字段和大约50行执行任何操作。根本没有区别。

答案 1 :(得分:0)

您必须在AJAX版本中针对客户端操作来回调整服务器的来电。虽然你的内向外哈希方法(带有共享键的多个数组)没有任何问题,但你很可能可以根据类过滤行并使用jQuery来显示/隐藏它们。

<li class="dna assay">blah...</li>

和其他地方......

$('#dnacheckbox').click(function(){ $('.dna').toggle() });

就我个人而言,我没有看到你正在使用jQuery做什么而不是行为 - 排序和过滤是经典的用户交互。

如果您可以放心地说行数将保持在几百之下,我建议您选择客户端选项。对于最终用户来说肯定会感觉更加快捷。

我不确定你是如何呈现你的数据的,但是在你做了太多的R&amp; D之前看一下DataTables