Renderização de documento no lado do servidor
Definição
Conversão de um documento em imagens de página no servidor, de modo que o navegador exibe páginas renderizadas em vez de analisar o próprio arquivo original.
A alternativa — renderização no lado do cliente — envia um motor de análise para o navegador e entrega o arquivo a ele. Isso funciona de forma aceitável para PDF e mal para tudo o mais, porque escrever um renderizador baseado em navegador para DOCX, XLSX, DWG e MSG é uma década de trabalho que ninguém quer financiar duas vezes.
Renderizar no lado do servidor inverte as propriedades. A cobertura de formatos torna-se um problema de biblioteca no lado do servidor em vez de um problema de pacote JavaScript. O cliente permanece leve independentemente de quão complexo o documento seja. E os bytes originais nunca chegam ao navegador, o que significa que visualizar um documento e possuir o documento deixam de ser o mesmo ato.
O custo é real e vale a pena mencionar: a renderização consome CPU e memória nos seus servidores, e as páginas precisam viajar pela rede como imagens. Na prática, a carga é dominada pela complexidade da página em vez do tamanho do documento, já que as páginas são renderizadas sob demanda em vez de todas de uma vez.
No Doconut
Cada formato segue o mesmo caminho. Viewer.OpenDocumentAsync() rasteriza páginas no lado do servidor e retorna um token opaco; o widget JavaScript então solicita páginas pelo token. O navegador nunca recebe o documento fonte.
Termos relacionados
SDK de visualizador de documentos
Uma biblioteca que você incorpora em sua própria aplicação para que ela possa exibir documentos, ao contrário de um serviço hospedado ao qual você envia documentos. O SDK roda dentro do seu processo; o serviço roda dentro do processo de outra pessoa.
Camada de texto
O texto legível por máquina armazenado dentro de um documento junto com sua aparência visual. É o que torna a pesquisa e a seleção de texto possíveis, e é exatamente o que uma página digitalizada não tem.
Token de sessão opaco
Um identificador que não tem significado para quem o possui — ele referencia o estado no servidor em vez de descrevê-lo, portanto um cliente não pode lê-lo, modificá-lo ou adivinhar um valor vizinho.