预加载与数据库级联下拉列表

时间:2011-12-24 19:56:08

标签: php mysql ajax linux apache

我是网络开发的新手,对于我的第一个项目,我需要4个级联下拉菜单。我一直在尽可能多地阅读解决这个问题的最佳方法,并讨论是要预加载这些列表还是从我的数据库中获取它们。我是一个LAMP项目,我有大约5000个项目需要进入这些下拉菜单。我见过的讨论指出,如果你没有大量的下拉项目,你最好预先加载这些项目并使用javascript拉它们。我的问题是什么被认为是一个大数字?有了5000项,我最好走MySQL路线吗?在某种程度上我更喜欢,但所有的教程似乎都处理ASP或预装项目。所以我的问题是:

5000个项目是否太多而无法为下拉列表预加载?什么会截止?

而且,如果有MySQL的话,你知道有什么好的教程让我入门。我见过一对但是他们不是很详细,而且对于一个新手我会绕着轴缠绕。非常感谢!

2 个答案:

答案 0 :(得分:0)

首先,5K下拉,没办法!在JS中缓存它也是一样的。我的建议是,尝试调查PHP,AJAX和MySQL。然后创建一个自动完成系统,允许非思维方法访问信息。

如果您仍需要一个好的教程或PHP MySQL下拉菜单: http://www.yourwebskills.com/mysqldropdown.php

然后根据我的建议:

http://beski.wordpress.com/2009/11/20/jquery-php-mysql-ajax-autocomplete/ http://www.webinone.net/tutorials/php/auto-complete-text-box-with-php-jquery-and-mysql/

请阅读,如果你无法解决问题,请回来询问!

答案 1 :(得分:0)

我会更多地考虑kb的大小而不是多少项目。我猜测gzip之后即使是5k条目也将是1-2kb,与典型网页加载的其他外部对象相比通常很少(与图像大小+ css + js相比)。

从响应性的角度来看,不得不做多个单独的http请求是昂贵的,特别是对于像移动设备这样的高延迟连接(由于延迟,网络自动完成在我的手机上通常非常蹩脚)。

所以,无论如何,除非数据量巨大,或者数据使用的可能性非常低,否则我个人倾向于只是将其全部加载。