From 1fd691b9d997d823b67fda1a1e20ed97f08ab94f Mon Sep 17 00:00:00 2001 From: Martin Edenhofer Date: Wed, 21 Jan 2015 13:11:18 +0100 Subject: [PATCH] Added search result cache feature. --- .../app/controllers/navigation.js.coffee | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/app/controllers/navigation.js.coffee b/app/assets/javascripts/app/controllers/navigation.js.coffee index 0d888dce8..53ede62f5 100644 --- a/app/assets/javascripts/app/controllers/navigation.js.coffee +++ b/app/assets/javascripts/app/controllers/navigation.js.coffee @@ -115,6 +115,9 @@ class App.Navigation extends App.Controller render: () -> + # reset result cache + @searchResultCache = {} + user = App.Session.get() @html App.view('navigation')( user: user @@ -127,6 +130,11 @@ class App.Navigation extends App.Controller @renderPersonal() searchFunction = => + + # use cache for search result + if @searchResultCache[@term] + @renderResult( @searchResultCache[@term] ) + App.Ajax.request( id: 'search' type: 'GET' @@ -139,6 +147,9 @@ class App.Navigation extends App.Controller # load assets App.Collection.loadAssets( data.assets ) + # cache search result + @searchResultCache[@term] = data.result + result = data.result for area in result if area.name is 'Ticket' @@ -222,7 +233,7 @@ class App.Navigation extends App.Controller return if term is @term @term = term @$('.search').toggleClass('filled', !!@term) - @delay( searchFunction, 220, 'search' ) + @delay( searchFunction, 200, 'search' ) ) # bind to empty search