Added search result cache feature.

This commit is contained in:
Martin Edenhofer 2015-01-21 13:11:18 +01:00
parent 8ee9002c33
commit 1fd691b9d9

View file

@ -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