一个JS数组或隐藏的div来存储问题/抽认卡?

时间:2011-11-24 19:57:37

标签: javascript jquery performance html5

我正在制作一个显示问题/抽认卡的网站。首先,我从服务器加载一组闪存卡(最初我考虑单独加载每个闪存卡,但这需要太多的MySQL查询)然后用户可以逐个查看它们。可能有例如30张甚至300张抽认卡。我将它们加载到一个单独的div中并使用css显示我只显示堆栈中的第一个,而其他的抽认卡是隐藏的。然后可以将flashcard移动到最后或使用jQuery从堆栈中删除。我想,将闪存卡存储在javascript数组中然后打印包含第一个闪存卡的数组的第一个元素会更好吗?您会发现哪种做法更好/更快?或者他们两个都同样好?

1 个答案:

答案 0 :(得分:0)

最终,您必须对不同的方法进行基准测试才能确定,因为有许多变量可能具有难以预测的效果。根据情况,可能不值得麻烦。以下是一些基本注意事项:

  • 如果您可能不得不支持的抽认卡数量没有上限,请考虑使用AJAX加载一次一个方法。在后端上有太多MySQL查询的问题可能是通过MySQL调优或在后端缓存查询结果来解决的问题。

  • 如果您要定位特定设备或操作系统或浏览器,请测试该设备或操作系统或浏览器的性能。移动电话可能无法很好地使用大型JavaScript阵列和许多DOM操作,或者非AJAX解决方案可能需要很长时间来加载慢速网络,或者如果有图像和涉及的内容,您可能会达到文档大小限制,例如。不过,我正在制作这些。你需要实际测试。

  • 如果闪存卡的数量有已知的上限并且相当小,那么您正在考虑的一次性加载技术可能更具吸引力。我曾经做了一个有10个问题的愚蠢测验申请,并且没有为AJAX打扰,因为测验的规模很小。 (我写了它,所以如果那里的要求发生变化,我可以很容易地采用AJAX-y方法,但是他们从未做过。)

  • 考虑到无关紧要的真实可能性 - 性能上的差异会非常小,以至于您应该只做适合自己的事情。如果站点需要扩展到一百万个并发用户,则情况并非如此。但是,如果它是针对15人或类别的单个班级,那么,您可能不想花费大量时间进行基准测试。 (我想这是你对你提出的具体问题的实际答案最接近的。)