{"id":92395,"date":"2022-07-27T15:09:09","date_gmt":"2022-07-27T13:09:09","guid":{"rendered":"https:\/\/rmarketingdigital.com\/dev\/almacenamiento-para-la-web\/"},"modified":"2020-10-05T06:01:54","modified_gmt":"2020-10-05T09:01:54","slug":"almacenamiento-para-la-web","status":"publish","type":"post","link":"https:\/\/rmarketingdigital.com\/fr\/dev\/almacenamiento-para-la-web\/","title":{"rendered":"Stockage pour le Web"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_86 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contenidos<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/rmarketingdigital.com\/fr\/dev\/almacenamiento-para-la-web\/#%C2%BFQue-debo-usar\" >\u00bfQu\u00e9 debo usar?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/rmarketingdigital.com\/fr\/dev\/almacenamiento-para-la-web\/#%C2%BFQue-pasa-con-otros-mecanismos-de-almacenamiento\" >\u00bfQu\u00e9 pasa con otros mecanismos de almacenamiento?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/rmarketingdigital.com\/fr\/dev\/almacenamiento-para-la-web\/#%C2%BFCuanto-puedo-almacenar\" >\u00bfCu\u00e1nto puedo almacenar?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/rmarketingdigital.com\/fr\/dev\/almacenamiento-para-la-web\/#%C2%BFComo-puedo-comprobar-la-cantidad-de-almacenamiento-disponible\" >\u00bfC\u00f3mo puedo comprobar la cantidad de almacenamiento disponible?<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/rmarketingdigital.com\/fr\/dev\/almacenamiento-para-la-web\/#Inspeccionar\" >Inspeccionar<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/rmarketingdigital.com\/fr\/dev\/almacenamiento-para-la-web\/#%C2%BFComo-manejar-el-exceso-de-cuota\" >\u00bfC\u00f3mo manejar el exceso de cuota?<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/rmarketingdigital.com\/fr\/dev\/almacenamiento-para-la-web\/#IndexedDB\" >IndexedDB<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/rmarketingdigital.com\/fr\/dev\/almacenamiento-para-la-web\/#API-de-cache\" >API de cach\u00e9<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/rmarketingdigital.com\/fr\/dev\/almacenamiento-para-la-web\/#%C2%BFComo-funciona-el-desalojo\" >\u00bfC\u00f3mo funciona el desalojo?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/rmarketingdigital.com\/fr\/dev\/almacenamiento-para-la-web\/#Bono-%C2%BFPor-que-usar-un-contenedor-para-IndexedDB\" >Bono: \u00bfPor qu\u00e9 usar un contenedor para IndexedDB?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/rmarketingdigital.com\/fr\/dev\/almacenamiento-para-la-web\/#Conclusion\" >Conclusi\u00f3n<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/rmarketingdigital.com\/fr\/dev\/almacenamiento-para-la-web\/#Recursos-adicionales\" >Recursos adicionales<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/rmarketingdigital.com\/fr\/dev\/almacenamiento-para-la-web\/#Gracias\" >Gracias<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<p><\/p>\n<div>\n<header class=\"w-article-header\">\n<p class=\"w-article-header__subhead w-mb--non\">\n<p>          Hay muchas opciones diferentes para almacenar datos en el navegador.  \u00bfCu\u00e1l es mejor para tus necesidades?\n        <\/p>\n<p>\n          <time>27 de abril de 2020<\/time><br \/>\n            Actualizado <time>7 de mayo de 2020<\/time>\n        <\/p>\n<\/header>\n<p>Las conexiones a Internet pueden ser defectuosas o inexistentes mientras viaja, por lo que el soporte sin conexi\u00f3n y el rendimiento confiable son caracter\u00edsticas comunes en las aplicaciones web progresivas.  Incluso en entornos inal\u00e1mbricos perfectos, el uso prudente del almacenamiento en cach\u00e9 y otras t\u00e9cnicas de almacenamiento puede mejorar sustancialmente la experiencia del usuario.  Hay varias formas de almacenar en cach\u00e9 los recursos de la aplicaci\u00f3n est\u00e1tica (HTML, JavaScript, CSS, im\u00e1genes, etc.) y los datos (datos de usuario, art\u00edculos de noticias, etc.).  \u00bfPero cu\u00e1l es la mejor soluci\u00f3n?  \u00bfCu\u00e1nto puedes almacenar?  \u00bfC\u00f3mo evitas que sea desalojado?<\/p>\n<h2 id=\"recommendation\"><span class=\"ez-toc-section\" id=\"%C2%BFQue-debo-usar\"><\/span>\u00bfQu\u00e9 debo usar? <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Aqu\u00ed hay una recomendaci\u00f3n general para almacenar recursos:<\/p>\n<p>IndexedDB y la API de almacenamiento en cach\u00e9 son compatibles con todos los navegadores modernos.  Ambos son asincr\u00f3nicos y no bloquear\u00e1n el hilo principal.  Son accesibles desde el <code>window<\/code> Object, Web Workers y Service Workers, lo que facilita su uso en cualquier parte del c\u00f3digo.<\/p>\n<h2 id=\"other\"><span class=\"ez-toc-section\" id=\"%C2%BFQue-pasa-con-otros-mecanismos-de-almacenamiento\"><\/span>\u00bfQu\u00e9 pasa con otros mecanismos de almacenamiento? <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Hay varios otros mecanismos de almacenamiento disponibles en el navegador, pero tienen un uso limitado y pueden causar problemas de rendimiento importantes.<\/p>\n<p><a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/developer.mozilla.org\/en\/docs\/Web\/API\/Window\/sessionStorage\">Almacenamiento de sesi\u00f3n<\/a> es espec\u00edfico de la pesta\u00f1a y se ajusta a la vida \u00fatil de la pesta\u00f1a.  Puede ser \u00fatil para almacenar peque\u00f1as cantidades de informaci\u00f3n espec\u00edfica de la sesi\u00f3n, por ejemplo, una clave IndexedDB.  Debe usarse con precauci\u00f3n porque es sincr\u00f3nico y bloquear\u00e1 el hilo principal.  Est\u00e1 limitado a unos 5 MB y solo puede contener cadenas.  Debido a que es espec\u00edfico de una pesta\u00f1a, los trabajadores web o los trabajadores de servicios no pueden acceder a \u00e9l.<\/p>\n<p><a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/developer.mozilla.org\/en\/docs\/Web\/API\/Window\/localStorage\">Almacenamiento local<\/a> debe evitarse porque es sincr\u00f3nico y bloquear\u00e1 el hilo principal.  Est\u00e1 limitado a unos 5 MB y solo puede contener cadenas.  LocalStorage no es accesible para trabajadores web o trabajadores de servicios.<\/p>\n<p><a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Cookies\">Galletas<\/a> tienen sus usos, pero no deben usarse para almacenamiento.  Las cookies se env\u00edan con cada solicitud HTTP, por lo que almacenar algo m\u00e1s que una peque\u00f1a cantidad de datos aumentar\u00e1 significativamente el tama\u00f1o de cada solicitud web.  Son s\u00edncronos y los trabajadores web no pueden acceder a ellos.  Al igual que LocalStorage y SessionStorage, las cookies se limitan solo a cadenas.<\/p>\n<p>los <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/File_and_Directory_Entries_API\/Introduction\">API del sistema de archivos<\/a> y la API de FileWriter proporcionan m\u00e9todos para leer y escribir archivos en un sistema de archivos de espacio aislado.  Si bien es asincr\u00f3nico, no se recomienda porque es<br \/>\n<a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/caniuse.com\/#feat=filesystem\">solo disponible en navegadores basados \u200b\u200ben Chromium<\/a>.<\/p>\n<p>La API de acceso al sistema de archivos se dise\u00f1\u00f3 para facilitar a los usuarios la lectura y edici\u00f3n de archivos en su sistema de archivos local.  El usuario debe otorgar permiso antes de que una p\u00e1gina pueda leer o escribir en cualquier archivo local, y los permisos no se conservan entre sesiones.<\/p>\n<p>WebSQL deber\u00eda <strong>no<\/strong> ser utilizado, y el uso existente se debe migrar a IndexedDB.  El apoyo tiene <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/caniuse.com\/#feat=sql-storage\">ha sido eliminado<\/a> de casi todos los principales navegadores.  El W3C <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/www.w3.org\/TR\/webdatabase\/\">dej\u00f3 de mantener la especificaci\u00f3n Web SQL<\/a> en 2010, sin planes de actualizaciones adicionales previstas.<\/p>\n<p>La cach\u00e9 de la aplicaci\u00f3n debe <strong>no<\/strong> y el uso existente se debe migrar a los trabajadores del servicio y la API de cach\u00e9.  Ha sido<br \/>\n<a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Window\/applicationCache\">obsoleto<\/a> y la compatibilidad se eliminar\u00e1 de los navegadores en el futuro.<\/p>\n<h2 id=\"how-much\"><span class=\"ez-toc-section\" id=\"%C2%BFCuanto-puedo-almacenar\"><\/span>\u00bfCu\u00e1nto puedo almacenar? <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>En breve, <strong>mucho<\/strong>, al menos un par de cientos de megabytes y potencialmente cientos de gigabytes o m\u00e1s.  Las implementaciones del navegador var\u00edan, pero la cantidad de almacenamiento disponible generalmente se basa en la cantidad de almacenamiento disponible en el dispositivo.<\/p>\n<ul>\n<li>Chrome permite que el navegador utilice hasta el 80% del espacio total en disco.  Un origen puede utilizar hasta el 60% del espacio total en disco.  Puede utilizar la API de StorageManager para determinar la cuota m\u00e1xima disponible.  Otros navegadores basados \u200b\u200ben Chromium pueden permitir que el navegador utilice m\u00e1s almacenamiento.  Consulte PR # 3896 para obtener detalles sobre la implementaci\u00f3n de Chrome.<\/li>\n<li>Internet Explorer 10 y versiones posteriores pueden almacenar hasta 250 MB y le avisar\u00e1 al usuario cuando se hayan utilizado m\u00e1s de 10 MB.<\/li>\n<li>Firefox permite que el navegador utilice hasta el 50% del espacio libre en disco.  Un<br \/>\n<a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/godoc.org\/golang.org\/x\/net\/publicsuffix\">eTLD + 1<\/a><br \/>\ngrupo (por ejemplo, <code>example.com<\/code>, <code>www.example.com<\/code> y <code>foo.bar.example.com<\/code>)<br \/>\n<a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/IndexedDB_API\/Browser_storage_limits_and_eviction_criteria#Storage_limits\">puede usar hasta 2GB<\/a>.  Puede utilizar la API de StorageManager para determinar cu\u00e1nto espacio queda disponible.<\/li>\n<li>Safari (tanto de escritorio como m\u00f3vil) parece permitir hasta 1 GB.  Cuando se alcanza el l\u00edmite, Safari le pedir\u00e1 al usuario que aumente el l\u00edmite en incrementos de 200 MB.  No pude encontrar ninguna documentaci\u00f3n oficial sobre esto.<\/li>\n<\/ul>\n<p>En el pasado, si un sitio exced\u00eda un cierto umbral de datos almacenados, el navegador solicitaba al usuario que concediera permiso para utilizar m\u00e1s datos.  Por ejemplo, si el origen us\u00f3 m\u00e1s de 50 MB, el navegador le pedir\u00e1 al usuario que le permita almacenar hasta 100 MB y luego volver\u00e1 a preguntar en incrementos de 50 MB.<\/p>\n<p>Hoy en d\u00eda, la mayor\u00eda de los navegadores modernos no avisar\u00e1n al usuario y permitir\u00e1n que un sitio utilice hasta su cuota asignada.  La excepci\u00f3n parece ser Safari, que solicita 750 MB y solicita permiso para almacenar hasta 1,1 GB.  Si un origen intenta usar m\u00e1s de su cuota asignada, fallar\u00e1n los intentos posteriores de escribir datos.<\/p>\n<h2 id=\"check\"><span class=\"ez-toc-section\" id=\"%C2%BFComo-puedo-comprobar-la-cantidad-de-almacenamiento-disponible\"><\/span>\u00bfC\u00f3mo puedo comprobar la cantidad de almacenamiento disponible? <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>En <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/caniuse.com\/#feat=mdn-api_storagemanager\">muchos navegadores<\/a>, puedes usar el<br \/>\n<a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/StorageManager\/estimate\">API de StorageManager<\/a> para determinar la cantidad de almacenamiento disponible para el origen y cu\u00e1nto almacenamiento est\u00e1 usando.  Informa el n\u00famero total de bytes utilizados por IndexedDB y la API de cach\u00e9, y permite calcular el espacio de almacenamiento restante aproximado disponible.<\/p>\n<p><web-copy-code><\/p>\n<pre class=\"language-js\"><code class=\"language-js\"><span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>navigator<span class=\"token punctuation\">.<\/span>storage <span class=\"token operator\">&amp;&amp;<\/span> navigator<span class=\"token punctuation\">.<\/span>storage<span class=\"token punctuation\">.<\/span>estimate<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br><span class=\"token keyword\">const<\/span> quota <span class=\"token operator\">=<\/span> <span class=\"token keyword\">await<\/span> navigator<span class=\"token punctuation\">.<\/span>storage<span class=\"token punctuation\">.<\/span><span class=\"token function\">estimate<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br><span class=\"token keyword\">const<\/span> percentageUsed <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">(<\/span>quota<span class=\"token punctuation\">.<\/span>usage <span class=\"token operator\">\/<\/span> quota<span class=\"token punctuation\">.<\/span>quota<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">100<\/span><span class=\"token punctuation\">;<\/span><br>console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`<\/span><span class=\"token string\">You've used <\/span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${<\/span>percentageUsed<span class=\"token interpolation-punctuation punctuation\">}<\/span><\/span><span class=\"token string\">% of the available storage.<\/span><span class=\"token template-punctuation string\">`<\/span><\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br><span class=\"token keyword\">const<\/span> remaining <span class=\"token operator\">=<\/span> quota<span class=\"token punctuation\">.<\/span>quota <span class=\"token operator\">-<\/span> quota<span class=\"token punctuation\">.<\/span>usage<span class=\"token punctuation\">;<\/span><br>console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`<\/span><span class=\"token string\">You can write up to <\/span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${<\/span>remaining<span class=\"token interpolation-punctuation punctuation\">}<\/span><\/span><span class=\"token string\"> more bytes.<\/span><span class=\"token template-punctuation string\">`<\/span><\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br><span class=\"token punctuation\">}<\/span><\/code><\/pre>\n<p><\/web-copy-code><\/p>\n<p>StorageManager no es <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/caniuse.com\/#feat=mdn-api_storagemanager\">implementado<\/a> en todos los navegadores todav\u00eda, por lo que debe detectarlo antes de usarlo.  Incluso cuando est\u00e1 disponible, debe detectar errores por exceso de cuota (ver m\u00e1s abajo).  En algunos casos, es posible que la cuota disponible exceda la cantidad real de almacenamiento disponible.<\/p>\n<div class=\"w-aside w-aside--note\">\n<p>Otros navegadores basados \u200b\u200ben Chromium pueden tener en cuenta la cantidad de espacio libre al informar la cuota disponible.  Chrome no lo hace y siempre informar\u00e1 el 60% del tama\u00f1o real del disco.  Esto ayuda a reducir la capacidad de determinar el tama\u00f1o de los recursos de origen cruzado almacenados.<\/p>\n<\/div>\n<h3 id=\"inspect\"><span class=\"ez-toc-section\" id=\"Inspeccionar\"><\/span>Inspeccionar <span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Durante el desarrollo, puede usar DevTools de su navegador para inspeccionar los diferentes tipos de almacenamiento y borrar f\u00e1cilmente todos los datos almacenados.<\/p>\n<p><img alt='storage-test-tool-4845895' class=\"w-screenshot w-screenshot-filled\" alt=\"Herramienta de prueba de almacenamiento.\" src='https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/10\/storage-test-tool-4845895.png'><\/p>\n<p>Mientras trabajaba en este art\u00edculo, escrib\u00ed un <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/storage-quota.glitch.me\/\">herramienta simple<\/a> para intentar utilizar r\u00e1pidamente tanto almacenamiento como sea posible.  Es una forma r\u00e1pida y sencilla de experimentar con diferentes mecanismos de almacenamiento y ver qu\u00e9 sucede cuando usas toda tu cuota.<\/p>\n<h2 id=\"over-quota\"><span class=\"ez-toc-section\" id=\"%C2%BFComo-manejar-el-exceso-de-cuota\"><\/span>\u00bfC\u00f3mo manejar el exceso de cuota? <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u00bfQu\u00e9 debe hacer cuando supere la cuota?  Lo m\u00e1s importante es que siempre debe detectar y manejar los errores de escritura, ya sea <code>QuotaExceededError<\/code> o algo mas.  Luego, dependiendo del dise\u00f1o de su aplicaci\u00f3n, decida c\u00f3mo manejarlo.  Por ejemplo, elimine el contenido al que no se ha accedido en mucho tiempo, elimine datos seg\u00fan el tama\u00f1o o proporcione una forma para que los usuarios elijan lo que desean eliminar.<\/p>\n<p>Tanto IndexedDB como Cache API arrojan un <code>DOMError<\/code> llamado<br \/>\n<code>QuotaExceededError<\/code> cuando haya superado la cuota disponible.<\/p>\n<h3 id=\"indexeddb\"><span class=\"ez-toc-section\" id=\"IndexedDB\"><\/span>IndexedDB <span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Si el origen ha superado su cuota, los intentos de escribir en IndexedDB fallar\u00e1n.  La transacci\u00f3n <code>onabort()<\/code> handler ser\u00e1 llamado, pasando un evento.  El evento incluir\u00e1 un <code>DOMException<\/code> en la propiedad de error.  Comprobando el error <code>name<\/code> volver\u00e1 <code>QuotaExceededError<\/code>.<\/p>\n<p><web-copy-code><\/p>\n<pre class=\"language-js\"><code class=\"language-js\"><span class=\"token keyword\">const<\/span> transaction <span class=\"token operator\">=<\/span> idb<span class=\"token punctuation\">.<\/span><span class=\"token function\">transaction<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">[<\/span><span class=\"token string\">'entries'<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">'readwrite'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br>transaction<span class=\"token punctuation\">.<\/span><span class=\"token function-variable function\">onabort<\/span> <span class=\"token operator\">=<\/span> <span class=\"token keyword\">function<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">event<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br><span class=\"token keyword\">const<\/span> error <span class=\"token operator\">=<\/span> event<span class=\"token punctuation\">.<\/span>target<span class=\"token punctuation\">.<\/span>error<span class=\"token punctuation\">;<\/span> <br><span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>error<span class=\"token punctuation\">.<\/span>name <span class=\"token operator\">==<\/span> <span class=\"token string\">'QuotaExceededError'<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br><span class=\"token punctuation\">}<\/span><br><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span><\/code><\/pre>\n<p><\/web-copy-code><\/p>\n<h3 id=\"cache-api\"><span class=\"ez-toc-section\" id=\"API-de-cache\"><\/span>API de cach\u00e9 <span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Si el origen ha superado su cuota, los intentos de escribir en la API de cach\u00e9 se rechazar\u00e1n con un <code>QuotaExceededError<\/code> <code>DOMException<\/code>.<\/p>\n<p><web-copy-code><\/p>\n<pre class=\"language-js\"><code class=\"language-js\"><span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<\/span><br><span class=\"token keyword\">const<\/span> cache <span class=\"token operator\">=<\/span> <span class=\"token keyword\">await<\/span> caches<span class=\"token punctuation\">.<\/span><span class=\"token function\">open<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'my-cache'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br><span class=\"token keyword\">await<\/span> cache<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Request<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'\/sample1.jpg'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br><span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">catch<\/span> <span class=\"token punctuation\">(<\/span>err<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br><span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>error<span class=\"token punctuation\">.<\/span>name <span class=\"token operator\">===<\/span> <span class=\"token string\">'QuotaExceededError'<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br><span class=\"token punctuation\">}<\/span><br><span class=\"token punctuation\">}<\/span><\/code><\/pre>\n<p><\/web-copy-code><\/p>\n<h2 id=\"eviction\"><span class=\"ez-toc-section\" id=\"%C2%BFComo-funciona-el-desalojo\"><\/span>\u00bfC\u00f3mo funciona el desalojo? <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>El almacenamiento web se clasifica en dos categor\u00edas, \u00abMejor esfuerzo\u00bb y \u00abPersistente\u00bb.  El mejor esfuerzo significa que el navegador puede borrar el almacenamiento sin interrumpir al usuario, pero es menos duradero para datos cr\u00edticos o de largo plazo.  El almacenamiento persistente no se borra autom\u00e1ticamente cuando el almacenamiento es bajo.  El usuario debe borrar manualmente este almacenamiento (a trav\u00e9s de la configuraci\u00f3n del navegador).<\/p>\n<p>De forma predeterminada, los datos de un sitio (incluidos IndexedDB, Cache API, etc.) se encuentran en la categor\u00eda de mejor esfuerzo, lo que significa que a menos que un sitio tenga<br \/>\n<a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/developers.google.com\/web\/updates\/2016\/06\/persistent-storage\">almacenamiento persistente solicitado<\/a>, el navegador puede desalojar los datos del sitio a su discreci\u00f3n, por ejemplo, cuando el almacenamiento del dispositivo es bajo.<\/p>\n<p>La pol\u00edtica de desalojo por mejor esfuerzo es:<\/p>\n<ul>\n<li>Los navegadores basados \u200b\u200ben Chromium comenzar\u00e1n a desalojar los datos cuando el navegador se quede sin espacio, borrando todos los datos del sitio del origen menos recientemente utilizado primero, luego el siguiente, hasta que el navegador ya no supere el l\u00edmite.<\/li>\n<li>Internet Explorer 10+ no desalojar\u00e1 los datos, pero evitar\u00e1 que el origen escriba m\u00e1s.<\/li>\n<li>Firefox comenzar\u00e1 a desalojar los datos cuando se llene el espacio disponible en el disco, borrando todos los datos del sitio del origen que se utiliz\u00f3 menos recientemente, luego el siguiente, hasta que el navegador ya no supere el l\u00edmite.<\/li>\n<li>Safari anteriormente no desalojaba datos, pero recientemente implement\u00f3 un nuevo l\u00edmite de siete d\u00edas en todo el almacenamiento de escritura (ver a continuaci\u00f3n).<\/li>\n<\/ul>\n<p>A partir de iOS y iPadOS 13.4 y Safari 13.1 en macOS, existe un l\u00edmite de siete d\u00edas en todo el almacenamiento de escritura de scripts, incluido IndexedDB, el registro del trabajador del servicio y la API de cach\u00e9.  Esto significa que Safari desalojar\u00e1 todo el contenido de la cach\u00e9 despu\u00e9s de siete d\u00edas de uso de Safari si el usuario no interact\u00faa con el sitio.  Esta pol\u00edtica de desalojo <strong>no se aplica a las PWA instaladas<\/strong> que se han agregado a la pantalla de inicio.  Ver<br \/>\n<a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/webkit.org\/blog\/10218\/full-third-party-cookie-blocking-and-more\/\">Bloqueo completo de cookies de terceros y m\u00e1s<\/a> en el blog de WebKit para obtener detalles completos.<\/p>\n<div class=\"w-aside w-aside--note\">\n<p>Puede solicitar almacenamiento persistente para su sitio a fin de proteger datos cr\u00edticos de aplicaciones o usuarios.<\/p>\n<\/div>\n<h2 id=\"bonus:-why-use-a-wrapper-for-indexeddb\"><span class=\"ez-toc-section\" id=\"Bono-%C2%BFPor-que-usar-un-contenedor-para-IndexedDB\"><\/span>Bono: \u00bfPor qu\u00e9 usar un contenedor para IndexedDB? <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>IndexedDB es una API de bajo nivel que requiere una configuraci\u00f3n significativa antes de su uso, lo que puede ser particularmente doloroso para almacenar datos simples.  A diferencia de la mayor\u00eda de las API modernas basadas en promesas, se basa en eventos.  Envoltorios de promesas como<br \/>\n<a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/www.npmjs.com\/package\/idb\">idb<\/a> para IndexedDB esconde algunas de las funciones poderosas pero, lo que es m\u00e1s importante, oculta la maquinaria compleja (por ejemplo, transacciones, control de versiones de esquemas) que viene con la biblioteca IndexedDB.<\/p>\n<h2 id=\"conclusion\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusi\u00f3n <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Atr\u00e1s quedaron los d\u00edas de almacenamiento limitado y de incitar al usuario a almacenar m\u00e1s y m\u00e1s datos.  Los sitios pueden almacenar de forma eficaz todos los recursos y datos que necesitan para funcionar.  Utilizando el <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/StorageManager\/estimate\">API de StorageManager<\/a> puede determinar cu\u00e1nto est\u00e1 disponible para usted y cu\u00e1nto ha usado.  Y con<br \/>\n<a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/developers.google.com\/web\/updates\/2016\/06\/persistent-storage\">almacenamiento persistente<\/a>, a menos que el usuario lo elimine, puede protegerlo del desalojo.<\/p>\n<h3 id=\"additional-resources\"><span class=\"ez-toc-section\" id=\"Recursos-adicionales\"><\/span>Recursos adicionales <span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h3 id=\"thanks\"><span class=\"ez-toc-section\" id=\"Gracias\"><\/span>Gracias <span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Un agradecimiento especial a Jarryd Goodman, Phil Walton, Eiji Kitamura, Daniel Murphy, Darwin Huang, Josh Bell, Marijn Kruisselbrink y Victor Costan por revisar este art\u00edculo.  Gracias a Eiji Kitamura, Addy Osmani y Marc Cohen, quienes escribieron los art\u00edculos originales en los que se basa.  Eiji escribi\u00f3 una herramienta \u00fatil llamada <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"http:\/\/demo.agektmr.com\/storage\/\">Abusador de almacenamiento del navegador<\/a> que fue \u00fatil para validar el comportamiento actual.  Le permite almacenar tantos datos como sea posible y ver los l\u00edmites de almacenamiento en su navegador.  Gracias a Francois Beaufort, que investig\u00f3 Safari para averiguar sus l\u00edmites de almacenamiento.<\/p>\n<p>La imagen del h\u00e9roe es de Guillaume Bolduc en<br \/>\n<a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/unsplash.com\/photos\/uBe2mknURG4\">Unsplash<\/a>.<\/p>\n<p>    <web-feedback additional-questions=\"api\"><\/web-feedback>\n  <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Il existe de nombreuses options diff\u00e9rentes pour stocker des donn\u00e9es dans le navigateur. Quel est le meilleur pour vos besoins? 27 avril 2020 Mis \u00e0 jour le 7 mai 2020 Connexions \u00e0\u2026<\/p>","protected":false},"author":1,"featured_media":92396,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1356],"tags":[],"class_list":["post-92395","post","type-post","status-publish","format-standard","has-post-thumbnail","category-dev"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.0 (Yoast SEO v28.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Almacenamiento para la web - R Marketing Digital<\/title>\n<meta name=\"description\" content=\"Hay muchas opciones diferentes para almacenar datos en el navegador. \u00bfCu\u00e1l es mejor para tus necesidades? 27 de abril de 2020 Actualizado 7 de mayo de\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/rmarketingdigital.com\/fr\/dev\/almacenamiento-para-la-web\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Almacenamiento para la web\" \/>\n<meta property=\"og:description\" content=\"Hay muchas opciones diferentes para almacenar datos en el navegador. \u00bfCu\u00e1l es mejor para tus necesidades? 27 de abril de 2020 Actualizado 7 de mayo de\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rmarketingdigital.com\/fr\/dev\/almacenamiento-para-la-web\/\" \/>\n<meta property=\"og:site_name\" content=\"R Marketing Digital\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-27T13:09:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/10\/hero-1597479.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"360\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"R Marketing Digital\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/dev\\\/almacenamiento-para-la-web\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/dev\\\/almacenamiento-para-la-web\\\/\"},\"author\":{\"name\":\"R Marketing Digital\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#\\\/schema\\\/person\\\/7c0d9782b2977b840b3740f00c69a73e\"},\"headline\":\"Almacenamiento para la web\",\"datePublished\":\"2022-07-27T13:09:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/dev\\\/almacenamiento-para-la-web\\\/\"},\"wordCount\":1974,\"image\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/dev\\\/almacenamiento-para-la-web\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/rmarketingdigital.com\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/hero-1597479.jpg\",\"articleSection\":[\"Dev\"],\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/dev\\\/almacenamiento-para-la-web\\\/\",\"url\":\"https:\\\/\\\/rmarketingdigital.com\\\/dev\\\/almacenamiento-para-la-web\\\/\",\"name\":\"Almacenamiento para la web - R Marketing Digital\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/dev\\\/almacenamiento-para-la-web\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/dev\\\/almacenamiento-para-la-web\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/rmarketingdigital.com\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/hero-1597479.jpg\",\"datePublished\":\"2022-07-27T13:09:09+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#\\\/schema\\\/person\\\/7c0d9782b2977b840b3740f00c69a73e\"},\"description\":\"Hay muchas opciones diferentes para almacenar datos en el navegador. \u00bfCu\u00e1l es mejor para tus necesidades? 27 de abril de 2020 Actualizado 7 de mayo de\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rmarketingdigital.com\\\/dev\\\/almacenamiento-para-la-web\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/dev\\\/almacenamiento-para-la-web\\\/#primaryimage\",\"url\":\"https:\\\/\\\/rmarketingdigital.com\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/hero-1597479.jpg\",\"contentUrl\":\"https:\\\/\\\/rmarketingdigital.com\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/hero-1597479.jpg\",\"width\":1200,\"height\":360,\"caption\":\"hero-1597479-7281651-jpg\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#website\",\"url\":\"https:\\\/\\\/rmarketingdigital.com\\\/\",\"name\":\"R Marketing Digital\",\"description\":\"Agencia SEO | Publicidad redes sociales | Community Management\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/rmarketingdigital.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#\\\/schema\\\/person\\\/7c0d9782b2977b840b3740f00c69a73e\",\"name\":\"R Marketing Digital\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g\",\"caption\":\"R Marketing Digital\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Stockage pour le web - R Marketing Digital","description":"Il existe de nombreuses options diff\u00e9rentes pour stocker des donn\u00e9es dans le navigateur. Quel est le meilleur pour vos besoins? 27 avril 2020 Mis \u00e0 jour le 7 mai","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/rmarketingdigital.com\/fr\/dev\/almacenamiento-para-la-web\/","og_locale":"fr_FR","og_type":"article","og_title":"Almacenamiento para la web","og_description":"Hay muchas opciones diferentes para almacenar datos en el navegador. \u00bfCu\u00e1l es mejor para tus necesidades? 27 de abril de 2020 Actualizado 7 de mayo de","og_url":"https:\/\/rmarketingdigital.com\/fr\/dev\/almacenamiento-para-la-web\/","og_site_name":"R Marketing Digital","article_published_time":"2022-07-27T13:09:09+00:00","og_image":[{"width":1200,"height":360,"url":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/10\/hero-1597479.jpg","type":"image\/jpeg"}],"author":"R Marketing Digital","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rmarketingdigital.com\/dev\/almacenamiento-para-la-web\/#article","isPartOf":{"@id":"https:\/\/rmarketingdigital.com\/dev\/almacenamiento-para-la-web\/"},"author":{"name":"R Marketing Digital","@id":"https:\/\/rmarketingdigital.com\/#\/schema\/person\/7c0d9782b2977b840b3740f00c69a73e"},"headline":"Almacenamiento para la web","datePublished":"2022-07-27T13:09:09+00:00","mainEntityOfPage":{"@id":"https:\/\/rmarketingdigital.com\/dev\/almacenamiento-para-la-web\/"},"wordCount":1974,"image":{"@id":"https:\/\/rmarketingdigital.com\/dev\/almacenamiento-para-la-web\/#primaryimage"},"thumbnailUrl":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/10\/hero-1597479.jpg","articleSection":["Dev"],"inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/rmarketingdigital.com\/dev\/almacenamiento-para-la-web\/","url":"https:\/\/rmarketingdigital.com\/dev\/almacenamiento-para-la-web\/","name":"Stockage pour le web - R Marketing Digital","isPartOf":{"@id":"https:\/\/rmarketingdigital.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rmarketingdigital.com\/dev\/almacenamiento-para-la-web\/#primaryimage"},"image":{"@id":"https:\/\/rmarketingdigital.com\/dev\/almacenamiento-para-la-web\/#primaryimage"},"thumbnailUrl":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/10\/hero-1597479.jpg","datePublished":"2022-07-27T13:09:09+00:00","author":{"@id":"https:\/\/rmarketingdigital.com\/#\/schema\/person\/7c0d9782b2977b840b3740f00c69a73e"},"description":"Il existe de nombreuses options diff\u00e9rentes pour stocker des donn\u00e9es dans le navigateur. Quel est le meilleur pour vos besoins? 27 avril 2020 Mis \u00e0 jour le 7 mai","inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rmarketingdigital.com\/dev\/almacenamiento-para-la-web\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/rmarketingdigital.com\/dev\/almacenamiento-para-la-web\/#primaryimage","url":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/10\/hero-1597479.jpg","contentUrl":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/10\/hero-1597479.jpg","width":1200,"height":360,"caption":"hero-1597479-7281651-jpg"},{"@type":"WebSite","@id":"https:\/\/rmarketingdigital.com\/#website","url":"https:\/\/rmarketingdigital.com\/","name":"Marketing num\u00e9rique","description":"Agence de r\u00e9f\u00e9rencement | Publicit\u00e9 sur les r\u00e9seaux sociaux | Gestion de communaut\u00e9","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/rmarketingdigital.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/rmarketingdigital.com\/#\/schema\/person\/7c0d9782b2977b840b3740f00c69a73e","name":"Marketing num\u00e9rique","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g","caption":"R Marketing Digital"}}]}},"_links":{"self":[{"href":"https:\/\/rmarketingdigital.com\/fr\/wp-json\/wp\/v2\/posts\/92395","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rmarketingdigital.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rmarketingdigital.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rmarketingdigital.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rmarketingdigital.com\/fr\/wp-json\/wp\/v2\/comments?post=92395"}],"version-history":[{"count":0,"href":"https:\/\/rmarketingdigital.com\/fr\/wp-json\/wp\/v2\/posts\/92395\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rmarketingdigital.com\/fr\/wp-json\/wp\/v2\/media\/92396"}],"wp:attachment":[{"href":"https:\/\/rmarketingdigital.com\/fr\/wp-json\/wp\/v2\/media?parent=92395"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rmarketingdigital.com\/fr\/wp-json\/wp\/v2\/categories?post=92395"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rmarketingdigital.com\/fr\/wp-json\/wp\/v2\/tags?post=92395"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}