Skip to content
Snippets Groups Projects
Commit 6c0d3b4c authored by Jacob Schatz's avatar Jacob Schatz
Browse files

Merge branch 'cache-autocomplete-results' into 'master'

Cache autocomplete results

## What does this MR do?

Caches the results of the autocomplete AJAX call to stop new GFM inputs on the page from requesting new data. The cache is then cleared on each new page so that it doesn't stay around per project.

See merge request !5043
parents c578fb06 cc154fc4
No related branches found
No related tags found
1 merge request!5043Cache autocomplete results
Pipeline #
Loading
@@ -4,7 +4,7 @@ window.GitLab ?= {}
Loading
@@ -4,7 +4,7 @@ window.GitLab ?= {}
GitLab.GfmAutoComplete = GitLab.GfmAutoComplete =
dataLoading: false dataLoading: false
dataLoaded: false dataLoaded: false
cachedData: {}
dataSource: '' dataSource: ''
   
# Emoji # Emoji
Loading
@@ -55,7 +55,7 @@ GitLab.GfmAutoComplete =
Loading
@@ -55,7 +55,7 @@ GitLab.GfmAutoComplete =
@setupAtWho() @setupAtWho()
   
if @dataSource if @dataSource
if !@dataLoading if not @dataLoading and not @cachedData
@dataLoading = true @dataLoading = true
   
# We should wait until initializations are done # We should wait until initializations are done
Loading
@@ -70,6 +70,8 @@ GitLab.GfmAutoComplete =
Loading
@@ -70,6 +70,8 @@ GitLab.GfmAutoComplete =
@loadData(data) @loadData(data)
, 1000) , 1000)
   
if @cachedData?
@loadData(@cachedData)
   
setupAtWho: -> setupAtWho: ->
# Emoji # Emoji
Loading
@@ -205,6 +207,7 @@ GitLab.GfmAutoComplete =
Loading
@@ -205,6 +207,7 @@ GitLab.GfmAutoComplete =
$.getJSON(dataSource) $.getJSON(dataSource)
   
loadData: (data) -> loadData: (data) ->
@cachedData = data
@dataLoaded = true @dataLoaded = true
   
# load members # load members
Loading
Loading
Loading
@@ -3,4 +3,5 @@
Loading
@@ -3,4 +3,5 @@
- if @noteable - if @noteable
:javascript :javascript
GitLab.GfmAutoComplete.dataSource = "#{autocomplete_sources_namespace_project_path(project.namespace, project, type: @noteable.class, type_id: params[:id])}" GitLab.GfmAutoComplete.dataSource = "#{autocomplete_sources_namespace_project_path(project.namespace, project, type: @noteable.class, type_id: params[:id])}"
GitLab.GfmAutoComplete.cachedData = undefined;
GitLab.GfmAutoComplete.setup(); GitLab.GfmAutoComplete.setup();
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment