搜索&LazyLoad可以'打字速度跟不上
Search & LazyLoad can't keep up w/ typing speed?
所以,所有的代码都运行得很好。查询数据库时,节点/父ID会延迟传递给jsTree,如果在搜索栏中键入一个术语,类似的过程也会继续,但传递给jsTree的节点是另一个SQL查询(使用类似SELECT nodeID FROM table WHERE name LIKE %searchTerm%
的东西)返回的节点。
只有一个问题:
如果我在搜索栏中输入得太快,结果就会相互混淆。如果我打字速度慢(我估计每秒最多2个字母),一切都会很好。再快一点,一切都模糊了。(也就是说,如果我正在搜索包含"test"一词的名称,并快速键入,我会得到包含"t"、"te"、"tes"answers"test"的名称,而不仅仅是包含"test"的名称。)
以前有人有这个问题吗?我应该使用"等待准备就绪"功能吗?
我可以建议您执行"超时"解决方法。基本上,您创建了一个延迟为200-400毫秒的SetTimeout函数,并在那里启动您的lazyload ajax。每个inputbox.change事件都会重新启动时间。参见伪javascript中的示例:
$('#your-input').keydown(function(){
if(ajaxTimer != undefined) {
clearTimeout(ajaxTimer);
}
ajaxTimer = setTimeout(function(){
$.ajax({...}).done(function() {...}
},400);
})
在键入输入上使用一个节流阀,基本上可以保证函数的最大调用次数为每X秒一次。当然你可以自己写,但是已经有一个很棒的图书馆了。
如果你感兴趣,可以看看http://benalman.com/projects/jquery-throttle-debounce-plugin/
相关文章:
- PHP AJAX图片上传示例不上传
- 如何在不影响网站页面速度的情况下在我的网站上使用谷歌字体
- Gulp乙烯基ftp更新和不同大小的文件不上传
- 搜索&LazyLoad可以'打字速度跟不上
- 如何在不上传的情况下在本地处理图像(来自手机)
- 当 ajax 请求速度时不显示动画.js
- 用户在火狐浏览器上的输入速度很慢,但不是 chrome
- 打开特定的信息窗口,无需点击,也不上传或初始化在 Google 地图 V3 地点
- 列表类元素(索引).渐变(某些速度)不起作用
- 将图像转换为base64而不上传
- grunt/npm插件grunt- S3 + knox不上传到S3
- 在ajax中调用上传函数后不上传图像
- cloudary jQuery文件上传-图片选择后不上传
- 如何在相位器中改变物体的速度而不改变其方向
- 获取本地文件的内容而不上传
- 文件不上传帆js
- Uploadify错误.不上传图片
- 花式盒子关不上
- Javascript不上传二进制数据
- 垃圾收集跟不上缓冲区的创建和删除