Javascript 角材料自动完成增强

Javascript 角材料自动完成增强,javascript,angularjs,Javascript,Angularjs,嗨,我按照这个指南来做我的项目 及 在本例中,它们首先加载状态以搜索状态。然后你可以搜索这个州,这是一个很好的例子 在我的例子中,当你搜索一个名字时,有6k个或更多的名字,这是一个很大的问题,让我的网页更慢 所以我试着创造我自己的。在搜索时获取资源,这就是我得出的结论 这是我的视图(超薄格式) 我的控制器(咖啡格式) 当我在搜索中收到超过2封信时,我的资源将被触发并开始搜索。我的问题是,如果我搜索长单词,我的网页会变慢 其他: 当我输入每个字母时,我的服务器端会做出响应。例如,如果我输入uni

嗨,我按照这个指南来做我的项目 及

在本例中,它们首先加载状态以搜索状态。然后你可以搜索这个州,这是一个很好的例子

在我的例子中,当你搜索一个名字时,有6k个或更多的名字,这是一个很大的问题,让我的网页更慢

所以我试着创造我自己的。在搜索时获取资源,这就是我得出的结论

这是我的视图(超薄格式)

我的控制器(咖啡格式)

当我在搜索中收到超过2封信时,我的资源将被触发并开始搜索。我的问题是,如果我搜索长单词,我的网页会变慢

其他: 当我输入每个字母时,我的服务器端会做出响应。例如,如果我输入uni(大学),uni这个词会到达我的服务器端并做出响应,等等。当我完成“university”这个词时,我有太多的资源,这会导致我的速度变慢


您知道如何更快地实现这一点吗?

尝试使用服务器端的ajax调用,这里已经给出了答案

此链接帮助我
我使用debounce来增强我的自动完成功能,希望能对此有所帮助,谢谢各位:)请安静

这6k名称是否来自服务器端?(数据库?),只需从服务器端实时搜索。这就是我提出这种方法的原因。当你的客户端持有大量数据时,也可能会缓慢加载网站。好的,主要问题是当我键入每个字母时,我的服务器端会做出响应例如,如果我键入uni(大学),uni一词将到达我的服务器端并做出响应,等等,然后当我填写“大学”一词时我有太多的资源,这会使我的想法变慢???将该列表分配给服务器端的一个静态变量,然后在执行搜索时在该列表中搜索。这样就不会大量使用数据库。立即从数据库中填充静态变量,无论它是否为null。
div layout="row"
  md-autocomplete md-item-text="item.name" md-selected-item-change="ctrl.selectedItemChange(item)" md-items="item in ctrl.getMatches(searchText)" md-no-cache="true" md-search-text="searchText" md-selected-item="item" md-floating-label="Client Name" flex=""
    md-item-template
      span md-highlight-flags="^i" md-highlight-text="searchText" 
        | {{item.name}} 
 @getMatches = (searchText) =>
  deferred = $q.defer()
  if  searchText.length >= 2
    name = searchText
    test = Client::Search.query {name: name}, (data) =>
      states = data.clients
      if states.length == 0
        name = searchText + "*"
        test = Client::Search.query {name: name}, (data) =>
          states = data.clients
      $timeout (=>
        deferred.resolve states
        return
        ), 1000
    deferred.promise
  else
    test = []