---
title: Almacenamiento en caché de HTML
slug: develop/es/almacenamiento-en-cache-de-html
docTags: 
createdAt: 2025-03-11T07:03:32.131Z
---

Esta página explica cómo usar técnicas de almacenamiento en caché para mostrar contenido HTML. Los reproductores BrightSign ofrecen soluciones innovadoras mediante BrightSign Author, BrightAuthor Classic y BrightScript, así como compatibilidad con soluciones comunes de almacenamiento en caché de Node.js® y JavaScript.

## Almacenamiento y memoria

Antes de analizar las técnicas de almacenamiento en caché de HTML, es importante comprender las limitaciones de almacenamiento y memoria de los reproductores. Todos los reproductores BrightSign ejecutan contenido HTML en un motor Chromium. De forma predeterminada, Chromium reserva 1 GB más el 10 % del tamaño total del dispositivo de almacenamiento del reproductor para memoria. Los reproductores también tienen memoria limitada para ejecutar gráficos HTML y JavaScript. Esta cantidad varía según el modelo del reproductor; consulte [esta lista](docId\:ONUNa6dIK8p-oa9q_OkkY) para obtener más detalles.

Para cambiar los valores de almacenamiento mediante BrightSign Author:

1. Vaya a la pestaña **Administrador**
2. Abra **Preferencias > Almacenamiento**
3. Seleccione **Habilitar** **Almacenamiento** **Límite**
4. Ahora se puede asignar espacio tanto para gráficos HTML como para JavaScript. Asegúrese de que:
   - Al usar **Absoluto**, los segmentos especificados no deben ser mayores ni menores que el tamaño absoluto de su dispositivo de almacenamiento
   - Al usar **Porcentaje**, los porcentajes deben sumar 100 %.

Para cambiar los valores de almacenamiento mediante BrightAuthor Classic:

1. Vaya a **Editar > Preferencias > Almacenamiento**
2. Seleccione **Limitar el espacio de almacenamiento por función**
3. Ahora se puede asignar espacio tanto para gráficos HTML como para JavaScript. Asegúrese de que:
   - Al usar **Especificar el tamaño absoluto**, los segmentos especificados no deben ser mayores ni menores que el tamaño absoluto de su dispositivo de almacenamiento
   - Al usar **Especificar porcentajes**, los porcentajes deben sumar 100 %.

Estas limitaciones se comparten entre todas las instancias de roHtmlWidget, donde [roHtmlWidget](docId\:g_TJkqqHLcfT4Fw5_Z6T0) es el objeto BrightScript que maneja todos los procesos HTML.

## Capacidades de almacenamiento en caché

Los reproductores BrightSign ofrecen un conjunto flexible de herramientas para almacenar en caché contenido HTML. Las siguientes secciones analizan las soluciones innovadoras de BrightSign y cómo habilitar y usar métodos más comunes mediante Node.js y JavaScript.

### Soluciones BrightSign

Los reproductores BrightSign ofrecen dos soluciones de almacenamiento en caché de HTML:

- **Almacenamiento local**: La tarjeta SD de cada reproductor puede almacenar contenido HTML para su reproducción. Este método elimina cualquier problema de conectividad o latencia que pueda surgir de las soluciones en red, pero debe hacerse reproductor por reproductor. Esto puede hacer que el almacenamiento local sea poco atractivo cuando se trabaja con una gran flota de dispositivos.
- **El objeto BrightScript AssetPool:** AssetPool es un directorio hash fragmentado y se recomienda para aplicaciones con una gran cantidad de archivos. AssetPool se llena mediante objetos AssetFetcher que pueden adquirir contenido en línea y almacenarlo para su posterior reproducción en protocolos hash sha1, besha1 o MD5. Consulte [esta página](docId:-HdH4b5YEsVWQSF2MOr-V) para obtener más información sobre AssetPool.

### Soluciones de Node.js y JavaScript

Los reproductores BrightSign también admiten técnicas de almacenamiento en caché de Node.js y JavaScript. Para usar Node.js:

- Si está usando BrightSign Author, Node.js puede inicializarse mediante la interfaz de usuario [Propiedades de estado](docId:2eh0-u7XsTxqw_emIiign).
- Si está usando BrightAuthor Classic, Node.js debe habilitarse primero mediante el objeto BrightScript [roHtmlWidget](docId\:g_TJkqqHLcfT4Fw5_Z6T0).&#x20;

Una vez que Node.js se esté ejecutando en el reproductor, los usuarios pueden utilizar cualquier API o método de almacenamiento en caché de JavaScript para almacenar contenido en caché. Los métodos recomendados de adquisición de contenido son XmlHttpRequest y Fetch con Service Worker. Tenga en cuenta las limitaciones de memoria; por ejemplo, XmlHttpRequest hará que algunos modelos de reproductores fallen si se utiliza para descargar archivos de más de 100-200 MB. Si la reserva de almacenamiento de XmlHttpRequest excederá su límite de memoria, recomendamos usar la API Fetch.

No puede usar Service Workers para almacenar en caché contenido de video. Los reproductores BrightSign usan nuestra infraestructura de reproductor multimedia para la reproducción posterior de video, no la red de Chromium. BrightSign recomienda [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB) para el almacenamiento: úselo para almacenar en caché la reproducción de contenido según [estas instrucciones](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Client-side_storage#storing_complex_data_via_indexeddb).&#x20;

Vea un ejemplo de descarga de prueba de HTML/JavaScript en [esta página](docId\:NrV_T0oESrUQTX-BogKwp).

:::hint{type="info"}
Nuestro widget HTML no puede almacenar en caché videos listados en el manifiesto AppCache debido a las diferencias entre la arquitectura de reproducción de video de Chrome para escritorio y la del dispositivo BrightSign. Use Service Worker e IndexedDB para almacenar contenido en caché en lugar de AppCache, que ahora está obsoleto.
:::

### Uso de Blobs

Los reproductores de video BrightSign pueden reproducir URL de blob que hacen referencia a elementos en IndexedDB y Html5 FileSystem API. Sin embargo, no pueden reproducir URL de blob que hacen referencia a objetos JavaScript en memoria.

Vea este ejemplo video-browser-storage.html:

::File{src="https://api.archbee.com/api/presign/0prk6SO2dy9LdU77jB8D1/IytljRFUHH3ruHv-xuDDJ_indexdb-playback-example.zip" label="indexdb_playback_example.zip" isUploading="false"}

