Как реализовать кэширование в веб-части SPFX клиента MS Teams

#caching #microsoft-teams #spfx #pnp-js

Вопрос:

Я пытаюсь реализовать кэширование для веб-части SPFX с помощью @pnp-хранилища. Кэширование работает нормально в браузере Temas, но в клиенте Teams оно не работает. Это очень медленно, так как мне приходится вызывать несколько функций azure. Может кто-нибудь, пожалуйста, помочь мне с кэшированием в приложении команды. Пожалуйста, ознакомьтесь с приведенным ниже кодом.

 // Getting data from session variable
This.isListsExists = this.storage.session.get(isListsExists);

// If it exists in the session variable then don't make the HTTP call. Otherwise, make the  
// call and save it in the session variable.

if (!this.isListsExists) {
  this.isListsExists = await this.mapDataProvider.checkIfAllListsExist(); //cache 
  // Setting Session variable.
  this.storage.session.put(isListsExists, this.isListsExists, end);
}
 

Ответ №1:

Я использовал хранилище сеансов, и оно не работало с командами, но когда я изменил его на локальное хранилище, оно сработало как заклинание.

  // Edit - Cache code
this.isListsExists = this.storage.local.get(isListsExistsCache);
// console.log("isListsExists - "   this.isListsExists);
if (!this.isListsExists) {
  this.isListsExists = await this.mapDataProvider.checkIfAllListsExist(); //cache 
  this.storage.local.put(isListsExistsCache, this.isListsExists, end);
}