Melhorar o desempenho nos suplementos hospedados pelo provedor do SharePoint
Você pode melhorar o desempenho do suplemento hospedado pelo provedor do SharePoint limitando o número e a frequência das chamadas remotas ao SharePoint. Muitas chamadas para o site de host degradam o desempenho. Para limitar o número de chamadas remotas, você pode implementar cookies HTTP ou armazenamento local HTML5.
O exemplo Performance.Caching mostra como usar cookies HTTP e armazenamento local HTML5 para armazenar em cache dados. O exemplo inclui dois suplementos hospedados pelo provedor que permitem exibir a seção About Me do seu perfil de usuário, adicionar dados e salvá-los para posteriormente. O suplemento não atualiza as informações do perfil do usuário; ele armazena em cache para que ele possa ser usado posteriormente.
Um exemplo usa cookies HTTP para armazenar em cache os dados e o outro usa o armazenamento local HTML5.
Usar cookies HTTP para cache
A página inicial do exemplo de cookie HTTP exibe informações da seção About Me do seu perfil de usuário em uma caixa de texto. Uma segunda caixa de texto informa se um novo cookie foi criado e quando o cookie existente expirará. As informações armazenadas em cookies não podem ser maiores que 4095 bytes.
Dados renderizados no modelo de armazenamento de cookie em cache HTTP
O arquivo app.js, que está localizado na pasta Scripts do projeto Web, define o comportamento do botão Salvar para posterior . O código primeiro verifica se os cookies estão habilitados no navegador definindo um cookie de teste. Se os cookies estiverem habilitados, o código determinará se as informações de perfil de usuário já estão armazenadas em um cookie. Se não for, ele usa json para pesquisar as informações sobre mim , armazená-la em um cookie e, em seguida, exibir as informações no navegador.
A função a seguir define o cookie e sua data de validade.
function setCookie(key, value, expiry, path, domain, secure) {
var todaysDate = new Date();
todaysDate.setTime(todaysDate.getTime());
if (expiry == "") { expiry = "1"; }
// The following line sets for n number of days. For hours, remove * 24. For minutes, remove * 60 * 24.
if (expiry) {
expiry = expiry * 1000 * 60 * 60 * 24;
}
var newExpiry = new Date(todaysDate.getTime() + (expiry));
document.cookie = key + "=" + escape(value) +
( ( expiry ) ? ";expires=" + newExpiry : "" ) +
( ( path ) ? ";path=" + path : "" ) +
( ( domain ) ? ";domain=" + domain : "" ) +
((secure) ? ";secure" : "");
cachingStatus += "\n" + "Creating http cookie for AboutMe data...";
cachingStatus += "\n" + "Cookie will expire " + newExpiry;
$('#status').text(cachingStatus);
}
Usar o armazenamento local HTML5 para cache
A página inicial do exemplo de armazenamento local HTML5 exibe informações da seção About Me de suas informações de perfil de usuário sobre os dados armazenados em cache. A caixa de texto exibe essas informações, bem como o tempo de validade (se houver) das informações armazenadas em cache.
O arquivo app.js, que está localizado na pasta Scripts do projeto Web, define o comportamento do botão Salvar para posterior . O suplemento primeiro verifica se o armazenamento local está habilitado usando a função a seguir.
isHtml5StorageSupported = function () {
try {
return 'localStorage' in window && window['localStorage'] !== null;
} catch (e) {
return false;
}
return false;
}
Se houver suporte para o armazenamento local, a função determinará se as informações de perfil de usuário já estão armazenadas lá. Se não for, ele usará o JSOM para pesquisar as informações sobre mim , armazená-la localmente e, em seguida, exibir as informações no navegador. O código a seguir armazena as informações sobre mim em uma chave chamada aboutMeValue
.
var aboutMeValue = personProperties.get_userProfileProperties()['AboutMe'];
$('#aboutMeText').val(aboutMeValue);
// Add to local storage.
localStorage.setItem("aboutMeValue", aboutMeValue);
setLocalStorageKeyExpiry("aboutMeValue");
cachingStatus += "\n" + "Populated local storage with profile properties...";
$('#status').val(cachingStatus);
O botão Limpar o cache remove essa chave, pesquisa as informações sobre mim em seu perfil de usuário e cria uma nova chave de armazenamento local para armazenar essas informações. O suplemento não define um tempo de expiração por padrão, mas o arquivo app.js contém a função a seguir, que define um tempo de expiração para os dados armazenados em cache.
function setLocalStorageKeyExpiry(key) {
// Check for expiration config values.
var expiryConfig = localStorage.getItem(expiryConfigKey);
// Check for existing expiration stamp.
var existingStamp = localStorage.getItem(key + expiryKeySuffix);
// Override cached setting if a user has entered a value that is different than what is stored.
if (expiryConfig != null) {
var currentTime = Math.floor((new Date().getTime()) / 1000);
expiryConfig = parseInt(expiryConfig);
var newStamp = Math.floor((currentTime + expiryConfig));
localStorage.setItem(key + expiryKeySuffix, newStamp);
// Log status to window.
cachingStatus += "\n" + "Setting expiration for the " + key + " key...";
$('#status').val(cachingStatus);
}
else {
}
}
Antes de procurar as informações armazenadas na chave de armazenamento local, o código usa a função isKeyExpired para determinar se a chave expirou. Para obter mais informações, consulte Personalizar o UX usando suplementos hospedados pelo provedor do SharePoint.