Added search result cache feature.
This commit is contained in:
parent
8ee9002c33
commit
1fd691b9d9
1 changed files with 12 additions and 1 deletions
|
@ -115,6 +115,9 @@ class App.Navigation extends App.Controller
|
||||||
|
|
||||||
render: () ->
|
render: () ->
|
||||||
|
|
||||||
|
# reset result cache
|
||||||
|
@searchResultCache = {}
|
||||||
|
|
||||||
user = App.Session.get()
|
user = App.Session.get()
|
||||||
@html App.view('navigation')(
|
@html App.view('navigation')(
|
||||||
user: user
|
user: user
|
||||||
|
@ -127,6 +130,11 @@ class App.Navigation extends App.Controller
|
||||||
@renderPersonal()
|
@renderPersonal()
|
||||||
|
|
||||||
searchFunction = =>
|
searchFunction = =>
|
||||||
|
|
||||||
|
# use cache for search result
|
||||||
|
if @searchResultCache[@term]
|
||||||
|
@renderResult( @searchResultCache[@term] )
|
||||||
|
|
||||||
App.Ajax.request(
|
App.Ajax.request(
|
||||||
id: 'search'
|
id: 'search'
|
||||||
type: 'GET'
|
type: 'GET'
|
||||||
|
@ -139,6 +147,9 @@ class App.Navigation extends App.Controller
|
||||||
# load assets
|
# load assets
|
||||||
App.Collection.loadAssets( data.assets )
|
App.Collection.loadAssets( data.assets )
|
||||||
|
|
||||||
|
# cache search result
|
||||||
|
@searchResultCache[@term] = data.result
|
||||||
|
|
||||||
result = data.result
|
result = data.result
|
||||||
for area in result
|
for area in result
|
||||||
if area.name is 'Ticket'
|
if area.name is 'Ticket'
|
||||||
|
@ -222,7 +233,7 @@ class App.Navigation extends App.Controller
|
||||||
return if term is @term
|
return if term is @term
|
||||||
@term = term
|
@term = term
|
||||||
@$('.search').toggleClass('filled', !!@term)
|
@$('.search').toggleClass('filled', !!@term)
|
||||||
@delay( searchFunction, 220, 'search' )
|
@delay( searchFunction, 200, 'search' )
|
||||||
)
|
)
|
||||||
|
|
||||||
# bind to empty search
|
# bind to empty search
|
||||||
|
|
Loading…
Reference in a new issue