嗨,我遵循這一指導我的項目 https://material.angularjs.org/latest/demo/autocomplete和 https://www.tutorialspoint.com/angular_material/angular_material_autocomplete.htm角料自動完成增強
的例子他們第一次加載狀態搜索的狀態。然後你可以搜索這個狀態這是一個很好的例子。
在我的情況怎麼樣,當你搜索一個名字,確實是6K名或更多,這是加載,使我的網站更慢
一個很大的問題,所以我給它一個嘗試創建自己的。搜索時獲得資源,這就是我出來的。
這裏是我的看法(超薄格式)
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 = []
,當我在我的搜索獲得超過2個字母我的資源將是觸發,並開始搜索。我的問題,如果我搜索長詞我的網絡會變慢。
附加的: 當我輸入每個字母時,我的服務器端會迴應如果我輸入uni(對於大學)單詞uni將到達我的服務器端並響應等等,然後當我完成單詞「大學」我有這麼多的資源,使我放慢
任何想法如何能INHANCE這個多快???
這個6k名字是來自服務器端嗎? (數據庫?) –
是的,這是過程類型>生成查詢如果爲真>查詢到api,然後將獲得給定名稱的ID – wiwit
那麼爲什麼你不嘗試通過使用ajax調用搜索? –