因此,所有代码都运行良好。查询的数据库,节点/父ID被懒惰地传递给jsTree,如果在搜索栏中键入一个术语 - 类似的过程继续进行,但传递给jsTree的节点是由另一个SQL查询返回的节点(使用某些东西)比如SELECT nodeID FROM table WHERE name LIKE %searchTerm%
)。
只有一个问题:
如果我在搜索栏中输入的速度过快,结果就会相互混淆。如果我慢慢打字(我估计每秒最多2个字母),一切都很好。任何更快,一切都模糊在一起。 (也就是说,如果我正在搜索包含术语" test"的名称,并快速输入,我会得到包含" t",&的名称#34; te"," tes"和" test"而不仅仅是包含" test"的名称。)
以前有人有这个问题吗?是否有一些"等到准备好了#34;我应该使用的功能?
答案 0 :(得分:3)
我建议你做'超时'的解决方法。基本上,你创建一个延迟200-400毫秒的SetTimeout函数并在那里启动你的lazyload ajax。每个inputbox.change事件都会重新启动时间。请参阅伪javascript中的示例:
$('#your-input').keydown(function(){
if(ajaxTimer != undefined) {
clearTimeout(ajaxTimer);
}
ajaxTimer = setTimeout(function(){
$.ajax({...}).done(function() {...}
},400);
})
答案 1 :(得分:0)
在输入输入上使用限制,基本上保证一个函数将被称为每X秒一次的最大值。当然你可以写自己的,但那里已经有一个很棒的图书馆了。
如果您对http://benalman.com/projects/jquery-throttle-debounce-plugin/
感兴趣,请查看