diff --git a/deploy/datasets/index.js b/deploy/datasets/index.js
index 10eb068c5dcc673861439807d05a2697f49343db..40ca1dee52076d95a69c12ec808ad18acb964ed0 100644
--- a/deploy/datasets/index.js
+++ b/deploy/datasets/index.js
@@ -6,6 +6,11 @@ init().catch(e => {
   console.warn(`dataset init failed`, e)
 })
 
+datasetsRouter.use((req, res, next) => {
+  res.setHeader('Cache-Control', 'no-cache')
+  next()
+})
+
 datasetsRouter.get('/templateName/:templateName', (req, res, next) => {
   const { templateName } = req.params
   getDatasets({ templateName })
diff --git a/src/atlasViewer/atlasViewer.dataService.service.ts b/src/atlasViewer/atlasViewer.dataService.service.ts
index 5eb68ec144ff33bfeb7680d51d285b1724f2155f..ae8c41d418bf62f65250aa3629a7e2e8b68046b1 100644
--- a/src/atlasViewer/atlasViewer.dataService.service.ts
+++ b/src/atlasViewer/atlasViewer.dataService.service.ts
@@ -1,7 +1,7 @@
 import { Injectable, OnDestroy } from "@angular/core";
 import { Store, select } from "@ngrx/store";
 import { ViewerStateInterface, FETCHED_TEMPLATE, DataEntry, FETCHED_DATAENTRIES, safeFilter, FETCHED_SPATIAL_DATA, UPDATE_SPATIAL_DATA } from "../services/stateStore.service";
-import { map, distinctUntilChanged } from "rxjs/operators";
+import { map, distinctUntilChanged, debounceTime } from "rxjs/operators";
 import { Subscription, combineLatest } from "rxjs";
 import { AtlasViewerConstantsServices } from "./atlasViewer.constantService.service";
 import { PluginManifest } from "./atlasViewer.pluginService.service";
@@ -231,6 +231,8 @@ export class AtlasViewerDataService implements OnDestroy{
           map(({parcellationSelected})=>(parcellationSelected.name)),
           distinctUntilChanged()
         )
+      ).pipe(
+        debounceTime(16)
       ).subscribe((param : [string, string] ) => fetchData(param[0], param[1]))
     )
   }