Javascript 在同时调用期间仅执行最后一个Ajax调用
我正在使用Elasticsearch制作一个搜索引擎,当用户在文本输入中搜索某个内容时,它会自动完成 我的JS代码工作得很好,但是如果添加或删除的字符超过3个,它会发送一个新的Ajax调用 所以我试图拒绝所有以前的Ajax调用,只执行最后发送的调用 我的JS代码现在看起来像这样Javascript 在同时调用期间仅执行最后一个Ajax调用,javascript,jquery,ajax,coffeescript,Javascript,Jquery,Ajax,Coffeescript,我正在使用Elasticsearch制作一个搜索引擎,当用户在文本输入中搜索某个内容时,它会自动完成 我的JS代码工作得很好,但是如果添加或删除的字符超过3个,它会发送一个新的Ajax调用 所以我试图拒绝所有以前的Ajax调用,只执行最后发送的调用 我的JS代码现在看起来像这样 class @SearchEngine search: -> @searchInput = $('.search-input') @minChar = 3 @
class @SearchEngine
search: ->
@searchInput = $('.search-input')
@minChar = 3
@actionUrl = $('.search-form').attr('action')
@tbody = $('#tbody')
@searchInput.on 'keyup', =>
@query = @searchInput.val()
if (@minChar <= @query.length)
$.ajax
url: @actionUrl
type: 'GET'
data: {
search: @query
}
.done (data) =>
if data?
@tbody.html data
momentFromNow()
class@SearchEngine
搜索:->
@searchInput=$(“.search input”)
@minChar=3
@actionUrl=$('.search form').attr('action'))
@t正文=$(“#t正文”)
@searchInput.on'keyup',=>
@query=@searchInput.val()
如果(@minChar
如果是数据?
@tbody.html数据
momentFromNow()
有没有办法拒绝之前所有的Ajax调用,然后执行最后一个