Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript和JQuery数据表缓冲/延迟ajax请求/击键_Javascript_Jquery_Ajax_Httprequest_Datatables - Fatal编程技术网

使用JavaScript和JQuery数据表缓冲/延迟ajax请求/击键

使用JavaScript和JQuery数据表缓冲/延迟ajax请求/击键,javascript,jquery,ajax,httprequest,datatables,Javascript,Jquery,Ajax,Httprequest,Datatables,我目前正在制作一个企业web应用程序的原型,该应用程序将包括一个快速搜索屏幕。 此屏幕使用JQuery和Datatables提供搜索结果的表格视图。搜索是基于与文本字段中输入的字符串的匹配来执行的。每次按下一个键,一个新的AJAX请求被发送回一个servlet,搜索被执行(在一个大型数据库中),结果通过JSON返回并在表上更新 对数据库的搜索是一项代价高昂的操作。很多时候,当用户正在键入,比如说,一个名字时,他们会快速连续地键入许多字母。这将导致在后端触发多个搜索,有时是不必要的 我想知道是否有

我目前正在制作一个企业web应用程序的原型,该应用程序将包括一个快速搜索屏幕。 此屏幕使用JQuery和Datatables提供搜索结果的表格视图。搜索是基于与文本字段中输入的字符串的匹配来执行的。每次按下一个键,一个新的AJAX请求被发送回一个servlet,搜索被执行(在一个大型数据库中),结果通过JSON返回并在表上更新

对数据库的搜索是一项代价高昂的操作。很多时候,当用户正在键入,比如说,一个名字时,他们会快速连续地键入许多字母。这将导致在后端触发多个搜索,有时是不必要的

我想知道是否有办法巧妙地缓冲这些请求。例如,如果用户正在键入“Jonathan”,则不要发送对J、Jo、Jona、Jonath等的请求。。。如果它们都是在彼此的时间限制内键入的,并且只有在键入间隔足够大时,即在键入末尾的字母n时,才发送请求

我知道这将花费一点时间,但这可能是一个值得的妥协

你认为这有意义吗?是否存在用于此类操作的现有模式/库?它会导致我没有想到的可用性问题吗


非常感谢您的意见

您可以使用jqueryui框架的autocomplete函数,它有一个延迟选项,可以完全满足您的需求


以防万一有人看到类似的问题:在Spike的评论之后,我检查了datatables插件,有一个东西正是我上面想要的:见

谢谢。在看到这些之后,我意识到我还没有检查DataTables中是否有类似的内容,并且。。。是的,有!我现在要试一试。哦,对不起,我甚至没有注意到Datatables自己处理过滤。很高兴它为你指明了正确的方向!