0

我需要在我的 HTML 页面中实现一个下拉菜单,它有 2000 多个公司名称。在 html 页面中嵌入如此庞大的列表会使其巨大且加载缓慢。所以想知道 OpenCPU 中是否有交互机制/RApache 以交互方式获取相同内容。就像用户键入 A 一样,它应该显示所有以字母“A”开头的公司名称......

4

3 回答 3

0

我在我开发的 R 支持的 Web 应用程序中遇到了类似的问题。我需要为用户提供一个基于 12,000 个基因符号的选择列表,我想让他们输入部分符号。我最终使用了基于 JQuery 的Select2 。您最终会使用从网页返回到 R 函数的 ajax 调用。就我而言,我在服务器端有一个函数,它在用户键入时接收字符并生成一个部分列表(在 JSON 中)以返回。我要求用户输入至少两个字符以使列表更小。它适用于我的应用程序。

于 2013-08-15T15:38:55.270 回答
0

在 HTML 页面中,在不重新加载页面的情况下以交互方式从服务器获取数据的唯一方法是使用AJAX。并且您可以创建一个包含所有已获取值的数组,这样您就不必重新获取已检索到的名称。

在服务器上,您需要创建一个页面,该页面根据某些条件(例如用户键入的字母)返回企业名称列表。

更新

另外,您是否实际测试过一个包含 2000 个下拉菜单项的页面?你知道它会很慢吗?如果每个项目有 40 个字符长,那将是 80K 的文本。浏览器可以在几毫秒内处理 80K。我认为这个问题不是加载时间的问题,而是迫使您的用户滚动浏览包含 2000 个条目的列表。

更新 2

我刚刚打开了谷歌搜索“如何使用 php 创建 ajax 下拉菜单”。这是一个与您的示例类似的示例。涵盖了主要概念。尽管您会根据onkeyup文本框上的事件触发 AJAX 调用。

于 2012-11-28T19:31:36.457 回答
0

你需要的是一个使用 jquery 的自动完成小部件:

http://jqueryui.com/autocomplete/

如果你想在没有任何 javascript 的情况下做到这一点,你当然可以使用 html5 来做到这一点,但有兼容性的限制。

http://css-tricks.com/relevant-dropdowns-polyfill-for-datalist/

于 2012-11-28T19:54:23.630 回答