我目前正在构建一个企业Web应用程序,其中将包括一个快速搜索屏幕。 此屏幕使用JQuery和Datatables提供搜索结果的表格视图。根据与输入到文本字段中的字符串的匹配执行搜索。每次按下某个键时,都会将新的AJAX请求发送回servlet,执行搜索(跨越大型数据库),并通过JSON返回结果以在表中进行更新。使用JavaScript和JQuery Datatables缓冲/延迟ajax请求/击键
对数据库的搜索是一个代价高昂的操作。很多时候,当用户输入名称时,他们会连续输入大量字母。这会导致在后端触发多次搜索,有时会不必要地进行。
我想知道是否有巧妙缓冲这些请求的方法。例如,如果用户输入“Jonathan”,则不要向J,Jo,Jona,Jonath发送请求,如果他们都是在彼此的时间限制内键入的,并且只有在有请求时发送打字时有足够的空白,即当输入最后的字母n时。
我知道这会花费一点时间,但它可能是一个值得考虑的妥协。
您认为这有意义吗?是否有这种操作的现有模式/库?它是否会导致我没有想到的可用性问题?
非常感谢您的意见!
谢谢。看到后我意识到我没有检查DataTable中是否有类似的东西,并且...是的!我现在要去试试看。 –
哦,对不起,我甚至没有注意到Datatables处理过滤本身。很高兴它指出你在正确的方向! – spike