我想知道是否可以在查询 LDAP 目录的搜索表单上实现自动完成。
我正在创建一个小部件,允许用户在 LDAP 目录中查找人员,然后显示电话号码等信息。
目录中有很多人,因此最好根据用户迄今为止所写的内容自动完成表单来帮助用户。
这实际上是 jQuery UI 对 Autocomplete 所做的
每次用户点击一个键时,我是否必须直接请求 LDAP 目录?或者也许我应该缓存(本地或服务器上)?
谢谢你的帮助
我想知道是否可以在查询 LDAP 目录的搜索表单上实现自动完成。
我正在创建一个小部件,允许用户在 LDAP 目录中查找人员,然后显示电话号码等信息。
目录中有很多人,因此最好根据用户迄今为止所写的内容自动完成表单来帮助用户。
这实际上是 jQuery UI 对 Autocomplete 所做的
每次用户点击一个键时,我是否必须直接请求 LDAP 目录?或者也许我应该缓存(本地或服务器上)?
谢谢你的帮助
当然可以,但是由于请求的往返,即使使用最快的 LDAP 服务器,您也需要在搜索字段上使用“延迟观察者”事件侦听器。这意味着搜索请求不会在每次按键时立即进行,而只会在用户键入一些字符并暂停一段时间后进行。
我相信 jquery UI 已经为它的自动完成功能实现了一个延迟的观察者,就像 scriptaculous 的自动完成小部件一样。
PS 在javascript中本地缓存目录中的所有用户和本地查找对于超过几百个用户来说实际上并不适用,恕我直言。
您绝对可以使用通配符过滤器(例如 (givenName=E*))执行 LDAP 搜索。LDAP 针对目录搜索进行了优化,通常如果您只使用副本,这可以很好地扩展。
如果您遇到容量问题,我建议您执行单个列表操作并缓存结果。我更喜欢的缓存策略是在服务器端,因为这会减少服务器的负载。