Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Desarrollo Última actualización: 25 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

Si es usted un desarrollador front-end, ya comprenderá que conseguir las imágenes adecuadas y combinarlas con el diseño general puede ser todo un reto. Es posible que se haya encontrado con un logotipo mal escalado o con imágenes que parecen menos profesionales en una página web.

También vivimos en un mundo en el que necesitamos aplicaciones con capacidad de respuesta, ya que los usuarios finales pueden navegar por las aplicaciones utilizando aparatos con distintos tamaños de pantalla. Como desarrollador web, necesita asegurarse de que las imágenes que añade a su sitio web están optimizadas para diferentes tamaños de pantalla, independientemente de si los usuarios están en smartphones, tabletas u ordenadores personales.

Los formatos de archivo de gráficos vectoriales escalables (SVG) resuelven algunos de estos retos. En este artículo se definirán los archivos SVG, cómo utilizarlos con HTML y sus ventajas frente a otros formatos de archivo, así como las mejores prácticas.

¿Qué son las imágenes SVG?

Scalable Vector Graphics, SVG, es un formato de imagen que utiliza datos vectoriales. Los archivos SVG se adaptan a las imágenes no fotográficas de sus sitios web, como iconos y logotipos. A diferencia de otras imágenes definidas mediante píxeles, los SVG se basan en datos vectoriales.

Hoy en día existen diferentes formatos de archivo. Sin embargo, tenemos dos grandes categorizaciones: gráficos rasterizados y gráficos vectoriales.

Los archivos JPEG y PNG son ejemplos de gráficos rasterizados. Estos gráficos almacenan la información de la imagen en un mapa de bits (una cuadrícula de cuadrados de colores). Cuando los cuadrados del mapa de bits se combinan, forman una imagen que actúa de forma similar a los píxeles de una pantalla de ordenador.

SVG y PDF son ejemplos de gráficos vectoriales. Estos archivos están escritos en lenguaje de marcado XML. El código XML de un archivo de este tipo especificará todo el texto, los colores y las formas que componen la imagen.

Las imágenes SVG tienen casos de uso específicos, especialmente en el desarrollo web. Puede utilizarlas en los siguientes casos;

  • Logotipos: Un buen sitio web debe tener un logotipo con el que la gente pueda identificarse. Puede añadir logotipos a las cartas, a la mercancía de su empresa, a las cabeceras de los sitios web y mucho más. Los logotipos guardados en formato SVG pueden adaptarse a diferentes casos de uso sin perder su calidad.
  • Iconos: Los iconos de las páginas web son imágenes o símbolos que actúan como enlaces o botones. Un ejemplo perfecto son los iconos sociales que enlazan con páginas de redes sociales como Facebook e Instagram. Tienen bordes claramente definidos y también son sencillos. Estos iconos deben responder a diferentes tamaños de pantalla, por lo que es necesario guardarlos en formato SVG.
  • Animaciones: Los sitios web modernos tienen imágenes y vídeos que cambian de aspecto dinámicamente. Puede crear archivos SVG animados para atraer a los usuarios y añadir un toque visual.
  • Visualización de datos e infografías: Si tiene un sitio web informativo, puede guardar sus infografías y gráficos en formato SVG. Un ejemplo perfecto será una campaña dirigida a un determinado número de personas. Puede tener un gráfico en formato SVG con una barra de progreso que se actualice automáticamente con cada inscripción.
  • Ilustraciones: Si tiene dibujos decorativos que quiera añadir a sus páginas web, guardarlos en formato SVG garantiza que mantengan su calidad independientemente de si se escalan hacia arriba o hacia abajo.

Cómo utilizar SVG en HTML

Utilizamos el elemento svg como contenedor que define el sistema de coordenadas y el cuadro de visualización. La etiqueta svg contiene los elementos de la imagen y también define los marcos de esta imagen.

La propiedad viewBox define el tamaño interno de una imagen. Por otro lado, utilizamos las propiedades height y width para determinar cuánto espacio ocupará la imagen en el navegador.

Si quiere seguirnos, haga lo siguiente;

  • Descargue gratuitamente de Pixabay la imagen que vamos a utilizar. (Asegúrese de seleccionar el formato .svg).
  • Cree un nuevo proyecto, añada una carpeta de activos y guarde aquí la imagen descargada. Renombre la imagen como decorativo.svg.
  • Cree los archivos index.html y styles.css. Vincule los dos archivos;
<head>

 <link rel="stylesheet" type="text/css" href="styles.css">

</head&gt

Ahora podemos seguir adelante y demostrar las diferentes formas de utilizar SVG en HTML:

Método 1: Utilizar el svg como una imagen

Puede encerrar su imagen svg con la etiqueta <img>. Se trata de una etiqueta de cierre automático, por lo que no es necesario abrirla y cerrarla.

Una representación sencilla de svg como imagen será la siguiente.

<img src= "(su imagen)"  /&gt

Puede cambiar todo su HTML de la siguiente manera;

<!DOCTYPE html>

<html lang="en">

<head>

 <meta charset="UTF-8">

 <meta http-equiv="X-UA-Compatible" content="IE=edge">

 <meta name="viewport" content="width=device-width, initial-scale=1.0">

 <title>Documento</title>

 <link rel="stylesheet" type="text/css" href="styles.css">

</head>

<body>

 <h2>Utilizar SVG como imagen de demostración</h2>

 <img src= "assets/decorative.svg" alt= "svg como imagen" />

</body>

</html&gt>

Añada un estilo sencillo al archivo styles.css para definir las propiedades de anchura y altura de la imagen svg.

img {

 altura: 200px;

 anchura: 300px;

 }

El resultado final cuando ejecute el código en el navegador debería ser el que se muestra a continuación;

Método 2: Utilizar SVG como imagen de fondo

Puede utilizar un svg como fondo de una determinada sección de la página html o de todo el cuerpo. Utilizamos CSS para definir la propiedad background-image.

Borre todo en la sección del cuerpo de su documento html.

A continuación, puede añadir esto a la hoja styles.css;

body{

 background-image: url(/assets/decorative.svg);

 height: 10px;

 width: 5px;

 }

Cuando renderice el código en el navegador, tendrá algo como esto;

renderizar el código en el navegador

Método 3: Utilizar SVG como <embed&gt

Puede utilizar la etiqueta <embed> HTML para encerrar una imagen SVG.

Puede definirla en su archivo HTML de la siguiente manera;

<embed src= "(su imagen)" /&gt

Podemos utilizar este código en nuestro archivoíndice.html;

<!DOCTYPE html>

<html lang="en">

<head>

 <meta charset="UTF-8">

 <meta http-equiv="X-UA-Compatible" content="IE=edge">

 <meta name="viewport" content="width=device-width, initial-scale=1.0">

 <title>Documento</title>

 <link rel="stylesheet" type="text/css" href="styles.css">

</head>

<body>

 <h2>Cómo incrustar SVG en HTML</h2>

 <embed src="/assets/decorative.svg" />

</body>

</html&gt>

La imagen SVG renderizada tendrá el siguiente aspecto;

Se recomienda utilizar SVG como incrustación, ya que no es bueno para la optimización de los motores de búsqueda.

Método 4: Utilizar SVG como elemento inline

Este método le permite incluir elementos SVG utilizando la etiqueta <svg>...</svg>.

Haga lo siguiente;

  • Abra la imagen en su editor de código y copie todo el código (serán más de diez mil líneas).
  • Cree un div e incluya su código de la siguiente manera;
<div>

 // Ponga aquí su código SVG

</div&gt>

El elemento renderizado aparecerá como sigue;

Utilizar SVG como elemento en línea no es aconsejable, ya que añade mucho código a su documento HTML, lo que afecta a la velocidad de carga.

Método 5: Utilizar SVG como un <iframe&gt

El elemento se utiliza sobre todo para incrustar otra página web/documento HTML dentro de la página web/documento actual.

El esquema general para utilizar SVG como en iframe es

  <iframe src="(su imagen") </iframe&gt

Puede modificar su archivo HTML de la siguiente manera;

<!DOCTYPE html>

<html lang="en">

<head>

 <meta charset="UTF-8">

 <meta http-equiv="X-UA-Compatible" content="IE=edge">

 <meta name="viewport" content="width=device-width, initial-scale=1.0">

 <title>Documento</title>

 <link rel="stylesheet" type="text/css" href="styles.css">

</head>

<body>

 <h1>Utilizar SVG con iframe</h1>

 <iframe src="./assets/decorative.svg" width="400px" height="200px"></iframe>

</body>

</html&gt>

La página web renderizada tendrá el siguiente aspecto;

imagen-299

Método 6: Utilizar un SVG como <object&gt

La etiqueta <object> en HTML puede utilizarse para encerrar varios tipos de contenido como vídeo, audio e imágenes en diversos formatos como SVG.

El formato general para incrustar SVG como un objeto es el siguiente;

<object data="(su imagen SVG)" type="image/svg xml"></object&gt

Añada este código a su archivo HTML;

<!DOCTYPE html>

<html lang="en">

<head>

 <meta charset="UTF-8">

 <meta http-equiv="X-UA-Compatible" content="IE=edge">

 <meta name="viewport" content="width=device-width, initial-scale=1.0">

 <title>Documento</title>

 <link rel="stylesheet" type="text/css" href="styles.css">

</head>

<body>

 <h2>Utilizar SVG como objeto</h2>

 <object data="./assets/decorative.svg" width="300" height="300"> </object>

</body>

</html&gt>

La página web renderizada aparecerá como se muestra a continuación;

página web renderizada

Ventajas de utilizar SVG en HTML

  • Escalabilidad: Los archivos SVG son independientes de la resolución, lo que significa que pueden escalarse a cualquier tamaño sin perder su calidad. Cuando amplíe las dimensiones de un archivo SVG, el navegador recalculará automáticamente las matemáticas que hay detrás para garantizar que no se produzca ninguna distorsión de la calidad.
  • Editable: Es fácil rediseñar sus archivos SVG cambiando cosas como los colores. Por ejemplo, puede editar su logotipo para que aparezca en diferentes tonos en distintas partes de su página web.
  • SEO amigable : Los archivos SVG están escritos en XML, lo que facilita la inclusión de palabras clave y frases de búsqueda en títulos y descripciones.
  • Tamaño de archivo pequeño: Las imágenes SVG son más pequeñas que las PNG y las JPEG. Puede guardar los archivos SVG en tamaños compactos pero conservando su calidad.

SVG en HTML: Mejores prácticas

  • Optimización del tamaño de los archivos SVG: Puede minimizar el tamaño de los archivos SVG eliminando los metadatos innecesarios. También puede utilizar la técnica de compresión GZIP para reducir el tamaño de estos archivos.
  • Compatibilidad entre navegadores: Pruebe sus archivos SVG en distintos tamaños de pantalla para asegurarse de que están optimizados.
  • Etiquete los archivos SVG por motivos de accesibilidad y SEO: Utilice etiquetas y dentro de los archivos SVG para que sus imágenes sean localizables en línea. </li> <li><strong>Utilice una hoja de estilos externa cuando proceda: </strong>Si tiene varios archivos SVG en su aplicación web, puede utilizar una hoja de estilo externa, ya que facilita el mantenimiento y la actualización del código. También puede utilizar el mismo estilo en diferentes archivos SVG, lo que reduce el tiempo dedicado a escribir código. </li> </ul> <h3 class="wp-block-heading" id="h-conclusion">Conclusión </h3> <p>Ahora tiene a su disposición diferentes enfoques para utilizar SVG en HTML. La elección del enfoque dependerá de lo que quiera conseguir y de sus preferencias. Por ejemplo, si desea utilizar SVG como imagen de fondo, deberá incluirlo en su archivo CSS. </p> <p>Sin embargo, puede elegir SVG como imagen o SVG como objeto si desea añadir iconos o logotipos a su aplicación web.</p> <p>También puede explorar algunas de las <a href="https://geekflare.com/es/top-css-animation-libraries/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">mejores bibliotecas de animación</a> CSS para realizar proyectos de diseño web asombrosos. </p> </div> <div class="x-article-contributors"> <ul class="x-contributor-list"> <li class="x-contributor-item"> <div class="x-contributor-item-header"> <div class="x-contributor-item-header-left"> <a class="x-contributor-link" href="https://geekflare.com/es/author/titus/" data-wpel-link="internal"> <span class="x-contributor-avatar"> <img alt src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='96'%20height='96'%20viewBox='0%200%2096%2096'%3E%3C/svg%3E" class="avatar avatar-96 photo perfmatters-lazy" height="96" width="96" decoding="async" data-src="https://geekflare.com/wp-content/uploads/2023/08/avatar_user_285_1692363140-96x96.png" data-srcset="https://geekflare.com/wp-content/uploads/2023/08/avatar_user_285_1692363140-192x192.png 2x" /><noscript><img alt='' src='https://geekflare.com/wp-content/uploads/2023/08/avatar_user_285_1692363140-96x96.png' srcset='https://geekflare.com/wp-content/uploads/2023/08/avatar_user_285_1692363140-192x192.png 2x' class='avatar avatar-96 photo' height='96' width='96' decoding='async'/></noscript> </span> </a> </div> <div class="x-contributor-item-header-right"> <div class="x-contributor-name"> Tito Kamunya </div> <div class="x-contributor-type"> Autor </div> </div> </div> <div class="x-contributor-item-body"> </div> </li> </ul> </div> </div> <aside class="x-article-body-bottom-right"> <div class="x-article-table-of-contents"> <div class="x-article-table-of-contents-wrapper"> <div class="x-article-table-of-contents-heading"> Contenido </div> <ol class="x-article-table-of-contents-list"> <li class="x-article-table-of-contents-item"> <a class="x-article-table-of-contents-anchor" href="#geekflare-toc-qu-son-las-im-genes-svg"> <span class="x-article-table-of-contents-text"> ¿Qué son las imágenes SVG? </span> </a> </li> <li class="x-article-table-of-contents-item"> <a class="x-article-table-of-contents-anchor" href="#geekflare-toc-c-mo-utilizar-svg-en-html"> <span class="x-article-table-of-contents-text"> Cómo utilizar SVG en HTML </span> </a> </li> <li class="x-article-table-of-contents-item"> <a class="x-article-table-of-contents-anchor" href="#geekflare-toc-ventajas-de-utilizar-svg-en-html"> <span class="x-article-table-of-contents-text"> Ventajas de utilizar SVG en HTML </span> </a> </li> <li class="x-article-table-of-contents-item"> <a class="x-article-table-of-contents-anchor" href="#geekflare-toc-svg-en-html-mejores-pr-cticas"> <span class="x-article-table-of-contents-text"> SVG en HTML: Mejores prácticas </span> </a> </li> </ol> </div> </div> <div class="x-article-related-articles x-position-aside"> <div class="x-article-related-articles-heading"> Más lecturas sobre desarrollo </div> <div class="x-article-related-articles-body"> <ul class="x-article-list"> <li class="x-article-item"> <a class="x-article-thumbnail" href="https://geekflare.com/es/software-engineering-courses/" data-wpel-link="internal"> <img width="680" height="218" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='680'%20height='218'%20viewBox='0%200%20680%20218'%3E%3C/svg%3E" class="attachment-medium size-medium wp-post-image perfmatters-lazy" alt="cursos de ingeniería de software" decoding="async" data-src="https://geekflare.com/wp-content/uploads/2022/02/software-engineering-courses-680x218.png" data-srcset="https://geekflare.com/wp-content/uploads/2022/02/software-engineering-courses-680x218.png 680w, https://geekflare.com/wp-content/uploads/2022/02/software-engineering-courses.png 1200w, https://geekflare.com/wp-content/uploads/2022/02/software-engineering-courses-400x128.png 400w" data-sizes="(max-width: 680px) 100vw, 680px" /><noscript><img width="680" height="218" src="https://geekflare.com/wp-content/uploads/2022/02/software-engineering-courses-680x218.png" class="attachment-medium size-medium wp-post-image" alt="cursos de ingeniería de software" decoding="async" srcset="https://geekflare.com/wp-content/uploads/2022/02/software-engineering-courses-680x218.png 680w, https://geekflare.com/wp-content/uploads/2022/02/software-engineering-courses.png 1200w, https://geekflare.com/wp-content/uploads/2022/02/software-engineering-courses-400x128.png 400w" sizes="(max-width: 680px) 100vw, 680px" /></noscript> </a> <a class="x-article-title" href="https://geekflare.com/es/software-engineering-courses/" data-wpel-link="internal"> 13 cursos y recursos para establecer una carrera en ingeniería de software </a> <div class="x-article-metadata"> Por <a class="x-article-author" href="https://geekflare.com/es/author/dhruv/" data-wpel-link="internal"> Dhruv Parmar </a> en <span class="x-article-date"> 25 de septiembre de 2023 </span> </div> </li> <li class="x-article-item"> <a class="x-article-thumbnail" href="https://geekflare.com/es/functional-programming/" data-wpel-link="internal"> <img width="680" height="218" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='680'%20height='218'%20viewBox='0%200%20680%20218'%3E%3C/svg%3E" class="attachment-medium size-medium wp-post-image perfmatters-lazy" alt="Explicación de la programación funcional" decoding="async" data-src="https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2023/06/Functional-Programming-Explained.png/w=680" data-srcset="https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2023/06/Functional-Programming-Explained.png/w=1200 1200w, https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2023/06/Functional-Programming-Explained.png/w=680,h=218 680w, https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2023/06/Functional-Programming-Explained.png/w=400,h=128 400w" data-sizes="(max-width: 680px) 100vw, 680px" /><noscript><img width="680" height="218" src="https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2023/06/Functional-Programming-Explained.png/w=680" class="attachment-medium size-medium wp-post-image" alt="Explicación de la programación funcional" decoding="async" srcset="https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2023/06/Functional-Programming-Explained.png/w=1200 1200w, https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2023/06/Functional-Programming-Explained.png/w=680,h=218 680w, https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2023/06/Functional-Programming-Explained.png/w=400,h=128 400w" sizes="(max-width: 680px) 100vw, 680px" /></noscript> </a> <a class="x-article-title" href="https://geekflare.com/es/functional-programming/" data-wpel-link="internal"> Programación funcional explicada en 5 minutos [con ejemplos] </a> <div class="x-article-metadata"> Por <a class="x-article-author" href="https://geekflare.com/es/author/collins/" data-wpel-link="internal"> Collins Kariuki </a> en <span class="x-article-date"> 25 de septiembre de 2023 </span> </div> </li> <li class="x-article-item"> <a class="x-article-thumbnail" href="https://geekflare.com/es/lamp-lemp-mean-xampp-stack-intro/" data-wpel-link="internal"> <img width="680" height="218" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='680'%20height='218'%20viewBox='0%200%20680%20218'%3E%3C/svg%3E" class="attachment-medium size-medium wp-post-image perfmatters-lazy" alt="base de conocimientos" decoding="async" data-src="https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/05/knowledge-base.jpg/w=680" data-srcset="https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/05/knowledge-base.jpg/w=1200 1200w, https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/05/knowledge-base.jpg/w=680,h=218 680w, https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/05/knowledge-base.jpg/w=400,h=128 400w" data-sizes="(max-width: 680px) 100vw, 680px" /><noscript><img width="680" height="218" src="https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/05/knowledge-base.jpg/w=680" class="attachment-medium size-medium wp-post-image" alt="base de conocimientos" decoding="async" srcset="https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/05/knowledge-base.jpg/w=1200 1200w, https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/05/knowledge-base.jpg/w=680,h=218 680w, https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/05/knowledge-base.jpg/w=400,h=128 400w" sizes="(max-width: 680px) 100vw, 680px" /></noscript> </a> <a class="x-article-title" href="https://geekflare.com/es/lamp-lemp-mean-xampp-stack-intro/" data-wpel-link="internal"> Una introducción a la pila LAMP, LEMP, MEAN, XAMPP, WAMP y AMPPS </a> <div class="x-article-metadata"> Por <a class="x-article-author" href="https://geekflare.com/es/author/avi/" data-wpel-link="internal"> Avi </a> en <span class="x-article-date"> 25 de septiembre de 2023 </span> </div> </li> <li class="x-article-item"> <a class="x-article-thumbnail" href="https://geekflare.com/es/flutter-app-development/" data-wpel-link="internal"> <img width="680" height="218" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='680'%20height='218'%20viewBox='0%200%20680%20218'%3E%3C/svg%3E" class="attachment-medium size-medium wp-post-image perfmatters-lazy" alt="Desarrollo de aplicaciones Flutter" decoding="async" data-src="https://geekflare.com/wp-content/uploads/2023/03/Flutter-App-Development-680x218.png" data-srcset="https://geekflare.com/wp-content/uploads/2023/03/Flutter-App-Development-680x218.png 680w, https://geekflare.com/wp-content/uploads/2023/03/Flutter-App-Development.png 1200w, https://geekflare.com/wp-content/uploads/2023/03/Flutter-App-Development-400x128.png 400w" data-sizes="(max-width: 680px) 100vw, 680px" /><noscript><img width="680" height="218" src="https://geekflare.com/wp-content/uploads/2023/03/Flutter-App-Development-680x218.png" class="attachment-medium size-medium wp-post-image" alt="Desarrollo de aplicaciones Flutter" decoding="async" srcset="https://geekflare.com/wp-content/uploads/2023/03/Flutter-App-Development-680x218.png 680w, https://geekflare.com/wp-content/uploads/2023/03/Flutter-App-Development.png 1200w, https://geekflare.com/wp-content/uploads/2023/03/Flutter-App-Development-400x128.png 400w" sizes="(max-width: 680px) 100vw, 680px" /></noscript> </a> <a class="x-article-title" href="https://geekflare.com/es/flutter-app-development/" data-wpel-link="internal"> Desarrollo de aplicaciones Flutter: Una guía completa </a> <div class="x-article-metadata"> Por <a class="x-article-author" href="https://geekflare.com/es/author/johnwalter/" data-wpel-link="internal"> John Walter </a> en <span class="x-article-date"> 25 de septiembre de 2023 </span> </div> </li> </ul> </div> </div> <div class="x-article-c95f6aee x-position-aside x-content-type-script"> <div id="adngin-sidebar-skyscraper-0"></div> </div> </aside> </div> </div> </div> <div class="x-article-newsletter"> <div class="x-container"> <div class="x-article-newsletter-heading"> </div> <div class="x-article-newsletter-body"> <div translate="no" class='mailmunch-forms-widget-1098249'></div> </div> </div> </div> <div class="x-article-818cc9d4"> <div class="x-container"> <div class="x-article-818cc9d4-heading"?> Gracias a nuestros patrocinadores </div> <div class="x-article-818cc9d4-body"> <ul class="x-article-818cc9d4-list"> <li class="x-article-818cc9d4-item"> <a class="x-article-818cc9d4-link" title="Atlassian" href="https://geekflare.com/recommends/atlassian/" target="_blank" data-wpel-link="external" rel="nofollow external noopener"> <img width="480" height="120" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='480'%20height='120'%20viewBox='0%200%20480%20120'%3E%3C/svg%3E" alt="Atlassian" class="perfmatters-lazy" data-src="https://geekflare.com/wp-content/uploads/2023/05/atlassian-logo.png" /><noscript><img width="480" height="120" decoding="async" src="https://geekflare.com/wp-content/uploads/2023/05/atlassian-logo.png" alt="Atlassian" /></noscript> </a> </li> <li class="x-article-818cc9d4-item"> <a class="x-article-818cc9d4-link" title="Probablemente" href="https://probely.com/?utm_campaign=Geekflare&utm_source=Geekflare&utm_medium=display&utm_content=Logo" target="_blank" data-wpel-link="external" rel="nofollow external noopener"> <img width="200" height="60" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='200'%20height='60'%20viewBox='0%200%20200%2060'%3E%3C/svg%3E" alt="Probablemente" class="perfmatters-lazy" data-src="https://geekflare.com/wp-content/uploads/2021/05/probely-scanner-logo.png" /><noscript><img width="200" height="60" decoding="async" src="https://geekflare.com/wp-content/uploads/2021/05/probely-scanner-logo.png" alt="Probablemente" /></noscript> </a> </li> <li class="x-article-818cc9d4-item"> <a class="x-article-818cc9d4-link" title="Avast" href="https://geekflare.com/recommends/avast-business/" target="_blank" data-wpel-link="external" rel="nofollow external noopener"> <img width="480" height="120" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='480'%20height='120'%20viewBox='0%200%20480%20120'%3E%3C/svg%3E" alt="Avast" class="perfmatters-lazy" data-src="https://geekflare.com/wp-content/uploads/2023/08/avast-logo.png" /><noscript><img width="480" height="120" decoding="async" src="https://geekflare.com/wp-content/uploads/2023/08/avast-logo.png" alt="Avast" /></noscript> </a> </li> <li class="x-article-818cc9d4-item"> <a class="x-article-818cc9d4-link" title="Lucidchart" href="https://geekflare.com/recommends/lucidchart/" target="_blank" data-wpel-link="external" rel="nofollow external noopener"> <img width="480" height="120" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='480'%20height='120'%20viewBox='0%200%20480%20120'%3E%3C/svg%3E" alt="Lucidchart" class="perfmatters-lazy" data-src="https://geekflare.com/wp-content/uploads/2023/07/lucidchart-logo.png" /><noscript><img width="480" height="120" decoding="async" src="https://geekflare.com/wp-content/uploads/2023/07/lucidchart-logo.png" alt="Lucidchart" /></noscript> </a> </li> <li class="x-article-818cc9d4-item"> <a class="x-article-818cc9d4-link" title="Grabador de pantalla" href="https://www.movavi.com/screen-recorder/" target="_blank" data-wpel-link="external" rel="nofollow external noopener"> <img width="480" height="120" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='480'%20height='120'%20viewBox='0%200%20480%20120'%3E%3C/svg%3E" alt="Grabador de pantalla" class="perfmatters-lazy" data-src="https://geekflare.com/wp-content/uploads/2023/01/Movavi-SR-logo.png" /><noscript><img width="480" height="120" decoding="async" src="https://geekflare.com/wp-content/uploads/2023/01/Movavi-SR-logo.png" alt="Grabador de pantalla" /></noscript> </a> </li> <li class="x-article-818cc9d4-item"> <a class="x-article-818cc9d4-link" title="Seguridad Keeper" href="https://geekflare.com/recommends/keeper-business/" target="_blank" data-wpel-link="external" rel="nofollow external noopener"> <img width="480" height="120" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='480'%20height='120'%20viewBox='0%200%20480%20120'%3E%3C/svg%3E" alt="Seguridad Keeper" class="perfmatters-lazy" data-src="https://geekflare.com/wp-content/uploads/2023/09/keeper-security.jpg" /><noscript><img width="480" height="120" decoding="async" src="https://geekflare.com/wp-content/uploads/2023/09/keeper-security.jpg" alt="Seguridad Keeper" /></noscript> </a> </li> </ul> </div> </div> </div> <div class="x-article-related-articles x-position-bellow"> <div class="x-container"> <div class="x-article-related-articles-heading"> Más lecturas sobre desarrollo </div> <div class="x-article-related-articles-body"> <ul class="x-article-list"> <li class="x-article-item"> <a class="x-article-thumbnail" href="https://geekflare.com/es/python-hosting-platform/" data-wpel-link="internal"> <img width="680" height="218" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='680'%20height='218'%20viewBox='0%200%20680%20218'%3E%3C/svg%3E" class="attachment-medium size-medium wp-post-image perfmatters-lazy" alt="alojamiento python" decoding="async" data-src="https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/06/python-hosting.jpg/w=680" data-srcset="https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/06/python-hosting.jpg/w=1200 1200w, https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/06/python-hosting.jpg/w=680,h=218 680w, https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/06/python-hosting.jpg/w=400,h=128 400w" data-sizes="(max-width: 680px) 100vw, 680px" /><noscript><img width="680" height="218" src="https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/06/python-hosting.jpg/w=680" class="attachment-medium size-medium wp-post-image" alt="alojamiento python" decoding="async" srcset="https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/06/python-hosting.jpg/w=1200 1200w, https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/06/python-hosting.jpg/w=680,h=218 680w, https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/06/python-hosting.jpg/w=400,h=128 400w" sizes="(max-width: 680px) 100vw, 680px" /></noscript> </a> <a class="x-article-title" href="https://geekflare.com/es/python-hosting-platform/" data-wpel-link="internal"> las 10 mejores plataformas de alojamiento para aplicaciones Python </a> <div class="x-article-metadata"> Por <a class="x-article-author" href="https://geekflare.com/es/author/durgadell95/" data-wpel-link="internal"> Durga Prasad Acharya </a> en <span class="x-article-date"> 25 de septiembre de 2023 </span> </div> <div class="x-article-excerpt"> Codificar es divertido con Python, y es estupendo para crear aplicaciones complejas de forma rápida y eficaz. </div> </li> <li class="x-article-item"> <a class="x-article-thumbnail" href="https://geekflare.com/es/email-verification-api/" data-wpel-link="internal"> <img width="680" height="218" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='680'%20height='218'%20viewBox='0%200%20680%20218'%3E%3C/svg%3E" class="attachment-medium size-medium wp-post-image perfmatters-lazy" alt="email-ID-verification-API" decoding="async" data-src="https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/07/email-ID-verification-API.png/w=680" data-srcset="https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/07/email-ID-verification-API.png/w=1116 1116w, https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/07/email-ID-verification-API.png/w=680,h=218 680w, https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/07/email-ID-verification-API.png/w=400,h=128 400w" data-sizes="(max-width: 680px) 100vw, 680px" /><noscript><img width="680" height="218" src="https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/07/email-ID-verification-API.png/w=680" class="attachment-medium size-medium wp-post-image" alt="email-ID-verification-API" decoding="async" srcset="https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/07/email-ID-verification-API.png/w=1116 1116w, https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/07/email-ID-verification-API.png/w=680,h=218 680w, https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/07/email-ID-verification-API.png/w=400,h=128 400w" sizes="(max-width: 680px) 100vw, 680px" /></noscript> </a> <a class="x-article-title" href="https://geekflare.com/es/email-verification-api/" data-wpel-link="internal"> las 12 mejores API de verificación y validación de correo electrónico para su producto </a> <div class="x-article-metadata"> Por <a class="x-article-author" href="https://geekflare.com/es/author/durgadell95/" data-wpel-link="internal"> Durga Prasad Acharya </a> en <span class="x-article-date"> 25 de septiembre de 2023 </span> </div> <div class="x-article-excerpt"> ¿Está creando un producto o un sitio web que utiliza identificadores de correo electrónico? Compruebe estas API de verificación de ID de correo electrónico para asegurarse de que no acaba con un montón de ID de correo electrónico falsos. </div> </li> <li class="x-article-item"> <a class="x-article-thumbnail" href="https://geekflare.com/es/wayback-machine-alternatives/" data-wpel-link="internal"> <img width="680" height="218" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='680'%20height='218'%20viewBox='0%200%20680%20218'%3E%3C/svg%3E" class="attachment-medium size-medium wp-post-image perfmatters-lazy" alt="archivo de internet" decoding="async" data-src="https://geekflare.com/wp-content/uploads/2022/06/internet-archive-680x218.png" data-srcset="https://geekflare.com/wp-content/uploads/2022/06/internet-archive-680x218.png 680w, https://geekflare.com/wp-content/uploads/2022/06/internet-archive.png 1200w, https://geekflare.com/wp-content/uploads/2022/06/internet-archive-400x128.png 400w" data-sizes="(max-width: 680px) 100vw, 680px" /><noscript><img width="680" height="218" src="https://geekflare.com/wp-content/uploads/2022/06/internet-archive-680x218.png" class="attachment-medium size-medium wp-post-image" alt="archivo de internet" decoding="async" srcset="https://geekflare.com/wp-content/uploads/2022/06/internet-archive-680x218.png 680w, https://geekflare.com/wp-content/uploads/2022/06/internet-archive.png 1200w, https://geekflare.com/wp-content/uploads/2022/06/internet-archive-400x128.png 400w" sizes="(max-width: 680px) 100vw, 680px" /></noscript> </a> <a class="x-article-title" href="https://geekflare.com/es/wayback-machine-alternatives/" data-wpel-link="internal"> las 10 mejores alternativas a Wayback Machine en 2023 </a> <div class="x-article-metadata"> Por <a class="x-article-author" href="https://geekflare.com/es/author/saptak/" data-wpel-link="internal"> Saptak Chaudhuri </a> en <span class="x-article-date"> 25 de septiembre de 2023 </span> </div> <div class="x-article-excerpt"> ¿Se ha preguntado alguna vez qué aspecto tenían determinadas páginas web en los primeros tiempos de Internet? He aquí un vistazo a las alternativas de la Wayback machine. </div> </li> <li class="x-article-item"> <a class="x-article-thumbnail" href="https://geekflare.com/es/website-monitoring/" data-wpel-link="internal"> <img width="680" height="234" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='680'%20height='234'%20viewBox='0%200%20680%20234'%3E%3C/svg%3E" class="attachment-medium size-medium wp-post-image perfmatters-lazy" alt="software de supervisión de sitios web" decoding="async" data-src="https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/06/website-monitoring-software.png/w=680" data-srcset="https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/06/website-monitoring-software.png/w=1120 1120w, https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/06/website-monitoring-software.png/w=680,h=234 680w, https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/06/website-monitoring-software.png/w=400,h=138 400w" data-sizes="(max-width: 680px) 100vw, 680px" /><noscript><img width="680" height="234" src="https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/06/website-monitoring-software.png/w=680" class="attachment-medium size-medium wp-post-image" alt="software de supervisión de sitios web" decoding="async" srcset="https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/06/website-monitoring-software.png/w=1120 1120w, https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/06/website-monitoring-software.png/w=680,h=234 680w, https://i.geekflare.com/cdn-cgi/imagedelivery/CWKmKRBT_UKEnKE7IlUMCg/geekflare.com/2020/06/website-monitoring-software.png/w=400,h=138 400w" sizes="(max-width: 680px) 100vw, 680px" /></noscript> </a> <a class="x-article-title" href="https://geekflare.com/es/website-monitoring/" data-wpel-link="internal"> 9 mejores soluciones de supervisión de sitios web para pequeñas y grandes empresas </a> <div class="x-article-metadata"> Por <a class="x-article-author" href="https://geekflare.com/es/author/durgadell95/" data-wpel-link="internal"> Durga Prasad Acharya </a> en <span class="x-article-date"> 25 de septiembre de 2023 </span> </div> <div class="x-article-excerpt"> Dirigir un negocio en línea exige un sitio web con un rendimiento excelente. </div> </li> <li class="x-article-item"> <a class="x-article-thumbnail" href="https://geekflare.com/es/python-numpy-linspace/" data-wpel-link="internal"> <img width="680" height="218" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='680'%20height='218'%20viewBox='0%200%20680%20218'%3E%3C/svg%3E" class="attachment-medium size-medium wp-post-image perfmatters-lazy" alt="python numpy linspace" decoding="async" data-src="https://geekflare.com/wp-content/uploads/2022/04/python-numpy-linspace-680x218.png" data-srcset="https://geekflare.com/wp-content/uploads/2022/04/python-numpy-linspace-680x218.png 680w, https://geekflare.com/wp-content/uploads/2022/04/python-numpy-linspace.png 1200w, https://geekflare.com/wp-content/uploads/2022/04/python-numpy-linspace-400x128.png 400w" data-sizes="(max-width: 680px) 100vw, 680px" /><noscript><img width="680" height="218" src="https://geekflare.com/wp-content/uploads/2022/04/python-numpy-linspace-680x218.png" class="attachment-medium size-medium wp-post-image" alt="python numpy linspace" decoding="async" srcset="https://geekflare.com/wp-content/uploads/2022/04/python-numpy-linspace-680x218.png 680w, https://geekflare.com/wp-content/uploads/2022/04/python-numpy-linspace.png 1200w, https://geekflare.com/wp-content/uploads/2022/04/python-numpy-linspace-400x128.png 400w" sizes="(max-width: 680px) 100vw, 680px" /></noscript> </a> <a class="x-article-title" href="https://geekflare.com/es/python-numpy-linspace/" data-wpel-link="internal"> NumPy linspace(): Cómo crear matrices de números espaciados uniformemente </a> <div class="x-article-metadata"> Por <a class="x-article-author" href="https://geekflare.com/es/author/balapriya/" data-wpel-link="internal"> Bala Priya C </a> en <span class="x-article-date"> 25 de septiembre de 2023 </span> </div> <div class="x-article-excerpt"> Este tutorial le enseñará a utilizar NumPy linspace( ) para crear una matriz de números espaciados uniformemente en Python. </div> </li> <li class="x-article-item"> <a class="x-article-thumbnail" href="https://geekflare.com/es/best-xml-editors/" data-wpel-link="internal"> <img width="680" height="218" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='680'%20height='218'%20viewBox='0%200%20680%20218'%3E%3C/svg%3E" class="attachment-medium size-medium wp-post-image perfmatters-lazy" alt decoding="async" data-src="https://geekflare.com/wp-content/uploads/2021/01/xml-editors-680x218.jpg" data-srcset="https://geekflare.com/wp-content/uploads/2021/01/xml-editors-680x218.jpg 680w, https://geekflare.com/wp-content/uploads/2021/01/xml-editors.jpg 1200w, https://geekflare.com/wp-content/uploads/2021/01/xml-editors-400x128.jpg 400w" data-sizes="(max-width: 680px) 100vw, 680px" /><noscript><img width="680" height="218" src="https://geekflare.com/wp-content/uploads/2021/01/xml-editors-680x218.jpg" class="attachment-medium size-medium wp-post-image" alt="" decoding="async" srcset="https://geekflare.com/wp-content/uploads/2021/01/xml-editors-680x218.jpg 680w, https://geekflare.com/wp-content/uploads/2021/01/xml-editors.jpg 1200w, https://geekflare.com/wp-content/uploads/2021/01/xml-editors-400x128.jpg 400w" sizes="(max-width: 680px) 100vw, 680px" /></noscript> </a> <a class="x-article-title" href="https://geekflare.com/es/best-xml-editors/" data-wpel-link="internal"> los 15 mejores editores XML para un desarrollo productivo </a> <div class="x-article-metadata"> Por <a class="x-article-author" href="https://geekflare.com/es/author/bigyan/" data-wpel-link="internal"> Bigyan Ghimire </a> en <span class="x-article-date"> 25 de septiembre de 2023 </span> </div> <div class="x-article-excerpt"> XML es un práctico conjunto de herramientas para aplicaciones web, de comercio electrónico y portátiles multiplataforma. </div> </li> </ul> </div> </div> </div> </section> <div class="wp-block-template-part"></div> <div class="wp-block-template-part"> <div class="geekflare-core-spacer x-color-dark x-size-regular"></div> <section class="geekflare-core-resources x-layout-alignment-left x-background-color-dark"> <div class="x-container"> <div class="x-heading x-type-main"> Potencia tu negocio </div> <div class="x-heading x-type-sub"> Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio. </div> <div class="x-resource"> <ul class="x-resource-list"> <li class="x-resource-item"> <div class="x-resource-item-left"> <a class="x-resource-image" title="Invicti" href="https://www.invicti.com/?utm_source=geekflare&utm_medium=cpc&utm_campaign=resource" target="_blank" data-wpel-link="external" rel="nofollow external noopener"> <img width="160" height="160" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='160'%20height='160'%20viewBox='0%200%20160%20160'%3E%3C/svg%3E" alt="Invicti" class="perfmatters-lazy" data-src="https://geekflare.com/wp-content/uploads/2022/04/invicti-logo.png" /><noscript><img width="160" height="160" decoding="async" src="https://geekflare.com/wp-content/uploads/2022/04/invicti-logo.png" alt="Invicti" /></noscript> </a> </div> <div class="x-resource-item-right"> <div class="x-resource-description"> Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas. </div> <a class="x-resource-link" title="Invicti" href="https://www.invicti.com/?utm_source=geekflare&utm_medium=cpc&utm_campaign=resource" target="_blank" data-wpel-link="external" rel="nofollow external noopener"> Pruebe Invicti </a> </div> </li> <li class="x-resource-item"> <div class="x-resource-item-left"> <a class="x-resource-image" title="Brightdata" href="https://geekflare.com/recommends/bright-data/" target="_blank" data-wpel-link="external" rel="nofollow external noopener"> <img width="160" height="160" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='160'%20height='160'%20viewBox='0%200%20160%20160'%3E%3C/svg%3E" alt="Brightdata" class="perfmatters-lazy" data-src="https://geekflare.com/wp-content/uploads/2022/04/brightdata-logo.png" /><noscript><img width="160" height="160" decoding="async" src="https://geekflare.com/wp-content/uploads/2022/04/brightdata-logo.png" alt="Brightdata" /></noscript> </a> </div> <div class="x-resource-item-right"> <div class="x-resource-description"> Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web. </div> <a class="x-resource-link" title="Brightdata" href="https://geekflare.com/recommends/bright-data/" target="_blank" data-wpel-link="external" rel="nofollow external noopener"> Pruebe Brightdata </a> </div> </li> <li class="x-resource-item"> <div class="x-resource-item-left"> <a class="x-resource-image" title="Monday.com" href="https://geekflare.com/recommends/monday-ps/" target="_blank" data-wpel-link="external" rel="nofollow external noopener"> <img width="160" height="160" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='160'%20height='160'%20viewBox='0%200%20160%20160'%3E%3C/svg%3E" alt="Monday.com" class="perfmatters-lazy" data-src="https://geekflare.com/wp-content/uploads/2023/07/monday-power-business.png" /><noscript><img width="160" height="160" decoding="async" src="https://geekflare.com/wp-content/uploads/2023/07/monday-power-business.png" alt="Monday.com" /></noscript> </a> </div> <div class="x-resource-item-right"> <div class="x-resource-description"> Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más. </div> <a class="x-resource-link" title="Monday.com" href="https://geekflare.com/recommends/monday-ps/" target="_blank" data-wpel-link="external" rel="nofollow external noopener"> Prueba Monday </a> </div> </li> <li class="x-resource-item"> <div class="x-resource-item-left"> <a class="x-resource-image" title="Intruder" href="https://www.intruder.io/?utm_source=referral&utm_campaign=geekflare-power-your-business" target="_blank" data-wpel-link="external" rel="nofollow external noopener"> <img width="160" height="160" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='160'%20height='160'%20viewBox='0%200%20160%20160'%3E%3C/svg%3E" alt="Intruder" class="perfmatters-lazy" data-src="https://geekflare.com/wp-content/uploads/2022/09/intruder-160.png" /><noscript><img width="160" height="160" decoding="async" src="https://geekflare.com/wp-content/uploads/2022/09/intruder-160.png" alt="Intruder" /></noscript> </a> </div> <div class="x-resource-item-right"> <div class="x-resource-description"> Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos. </div> <a class="x-resource-link" title="Intruder" href="https://www.intruder.io/?utm_source=referral&utm_campaign=geekflare-power-your-business" target="_blank" data-wpel-link="external" rel="nofollow external noopener"> Prueba Intruder </a> </div> </li> </ul> </div> </div> </section> <div class="geekflare-core-spacer x-color-dark x-size-regular"></div> </div> <footer class="wp-block-template-part"> <footer class="geekflare-core-footer x-background-color-gray"> <div class="x-container"> <div class="x-intro"> <div class="x-brand"> <a class="x-brand-image" title="Geekflare" href="https://geekflare.com/es/" data-wpel-link="external" target="_blank" rel="nofollow external noopener"> <img width="780" height="160" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='780'%20height='160'%20viewBox='0%200%20780%20160'%3E%3C/svg%3E" alt="Geekflare" class="perfmatters-lazy" data-src="https://geekflare.com/wp-content/uploads/2023/01/logo-geekflare.png" /><noscript><img width="780" height="160" decoding="async" src="https://geekflare.com/wp-content/uploads/2023/01/logo-geekflare.png" alt="Geekflare" /></noscript> </a> <div class="x-brand-description"> Su fuente de confianza para recursos tecnológicos </div> <div class="x-brand-copyright"> © Geekflare, 71-75 Shelton Street, Londres, WC2H 9JQ </div> </div> <nav class="x-social-menu"> <ul class="x-menu-list"> <li class="x-menu-item"> <a class="x-menu-item-link" href="https://twitter.com/geekflarehq" target="_blank" data-wpel-link="external" rel="nofollow external noopener"> <span class="x-menu-item-icon"> <i class="x-icon x-icon-twitter"></i> </span> </a> </li> <li class="x-menu-item"> <a class="x-menu-item-link" href="https://www.linkedin.com/company/geekflare/" target="_blank" data-wpel-link="external" rel="nofollow external noopener"> <span class="x-menu-item-icon"> <i class="x-icon x-icon-linkedin-in"></i> </span> </a> </li> <li class="x-menu-item"> <a class="x-menu-item-link" href="https://www.youtube.com/c/Geekflare/" target="_blank" data-wpel-link="external" rel="nofollow external noopener"> <span class="x-menu-item-icon"> <i class="x-icon x-icon-youtube"></i> </span> </a> </li> </ul> </nav> </div> <nav class="x-regular-menu"> <div class="x-menu-title"> Empresa </div> <ul class="x-menu-list"> <li class="x-menu-item"> <a class="x-menu-link" href="https://geekflare.com/de/about/" data-wpel-link="external" target="_blank" rel="nofollow external noopener"> <span class="x-menu-text"> Acerca de </span> </a> </li> <li class="x-menu-item"> <a class="x-menu-link" href="https://geekflare.com/de/advertise/" data-wpel-link="external" target="_blank" rel="nofollow external noopener"> <span class="x-menu-text"> Anúnciese en </span> </a> </li> <li class="x-menu-item"> <a class="x-menu-link" href="https://geekflare.com/sitemap_index.xml/" data-wpel-link="external" target="_blank" rel="nofollow external noopener"> <span class="x-menu-text"> Mapa del sitio </span> </a> </li> <li class="x-menu-item"> <a class="x-menu-link" href="https://geekflare.com/de/contact/" data-wpel-link="external" target="_blank" rel="nofollow external noopener"> <span class="x-menu-text"> Póngase en contacto con </span> </a> </li> </ul> </nav> <nav class="x-regular-menu"> <div class="x-menu-title"> Legal </div> <ul class="x-menu-list"> <li class="x-menu-item"> <a class="x-menu-link" href="https://geekflare.com/es/terms/" data-wpel-link="external" target="_blank" rel="nofollow external noopener"> <span class="x-menu-text"> Términos </span> </a> </li> <li class="x-menu-item"> <a class="x-menu-link" href="https://geekflare.com/es/privacy/" data-wpel-link="external" target="_blank" rel="nofollow external noopener"> <span class="x-menu-text"> Privacidad </span> </a> </li> <li class="x-menu-item"> <a class="x-menu-link" href="https://geekflare.com/es/disclosure/" data-wpel-link="external" target="_blank" rel="nofollow external noopener"> <span class="x-menu-text"> Divulgación </span> </a> </li> <li class="x-menu-item"> <a class="x-menu-link" href="https://geekflare.com/es/cookie-policy/" data-wpel-link="external" target="_blank" rel="nofollow external noopener"> <span class="x-menu-text"> Política de cookies </span> </a> </li> <li class="x-menu-item"> <a class="x-menu-link" href="https://geekflare.com/es/scam-public-notice/" data-wpel-link="external" target="_blank" rel="nofollow external noopener"> <span class="x-menu-text"> Concienciación sobre las estafas </span> </a> </li> </ul> </nav> <nav class="x-regular-menu"> <div class="x-menu-title"> Familia </div> <ul class="x-menu-list"> <li class="x-menu-item"> <a class="x-menu-link" href="https://siterelic.com" data-wpel-link="external" target="_blank" rel="nofollow external noopener"> <span class="x-menu-text"> Siterelic </span> </a> </li> <li class="x-menu-item"> <a class="x-menu-link" href="https://bytebrief.co" data-wpel-link="external" target="_blank" rel="nofollow external noopener"> <span class="x-menu-text"> ByteBrief </span> </a> </li> <li class="x-menu-item"> <a class="x-menu-link" href="https://sparkian.com" data-wpel-link="external" target="_blank" rel="nofollow external noopener"> <span class="x-menu-text"> Sparkian </span> </a> </li> <li class="x-menu-item"> <a class="x-menu-link" href="https://domsignal.com" data-wpel-link="exclude"> <span class="x-menu-text"> Domsignal </span> </a> </li> </ul> </nav> </div> </footer> </footer> <div class="geekflare-core-spacer x-color-gray x-size-medium"></div> </div> <template id="tp-language" data-tp-language="es_ES"></template> <style id="skip-link-styles"> .skip-link.screen-reader-text { border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; } .skip-link.screen-reader-text:focus { background-color: #eee; clip: auto !important; clip-path: none; color: #444; display: block; font-size: 1em; height: auto; left: 5px; line-height: normal; padding: 15px 23px 14px; text-decoration: none; top: 5px; width: auto; z-index: 100000; } </style> <script> ( function() { var skipLinkTarget = document.querySelector( 'main' ), sibling, skipLinkTargetID, skipLink; // Early exit if a skip-link target can't be located. if ( ! skipLinkTarget ) { return; } /* * Get the site wrapper. * The skip-link will be injected in the beginning of it. */ sibling = document.querySelector( '.wp-site-blocks' ); // Early exit if the root element was not found. if ( ! sibling ) { return; } // Get the skip-link target's ID, and generate one if it doesn't exist. skipLinkTargetID = skipLinkTarget.id; if ( ! skipLinkTargetID ) { skipLinkTargetID = 'wp--skip-link--target'; skipLinkTarget.id = skipLinkTargetID; } // Create the skip link. skipLink = document.createElement( 'a' ); skipLink.classList.add( 'skip-link', 'screen-reader-text' ); skipLink.href = '#' + skipLinkTargetID; skipLink.innerHTML = 'Saltar al contenido'; // Inject the skip link. sibling.parentElement.insertBefore( skipLink, sibling ); }() ); </script> <script async data-cfasync="false" src="https://btloader.com/tag?o=5658536637890560&upapi=true" ></script> <div id="adngin-video-0"></div> <script type="text/javascript" async src="https://embeds.beehiiv.com/attribution.js"></script> <script type="text/javascript">var algolia = {"debug":false,"application_id":"WTDH4XUUXG","search_api_key":"a411efbb98f4a0786373162d6d617634","powered_by_enabled":false,"query":"","autocomplete":{"sources":[{"index_id":"searchable_posts","index_name":"wp_searchable_posts","label":"All posts","admin_name":"All posts","position":10,"max_suggestions":10,"tmpl_suggestion":"autocomplete-post-suggestion","enabled":true}],"input_selector":"input[name='s']:not(.no-autocomplete):not(#adminbar-search)"},"indices":{"searchable_posts":{"name":"wp_searchable_posts","id":"searchable_posts","enabled":true,"replicas":[]}}};</script> <script type="text/html" id="tmpl-autocomplete-header"> <div class="autocomplete-header"> <div class="autocomplete-header-title">{{{ data.label }}}</div> <div class="clear"></div> </div> </script> <script type="text/html" id="tmpl-autocomplete-post-suggestion"> <a class="suggestion-link" href="{{ data.permalink }}" title="{{ data.post_title }}"> <# if ( data.images.thumbnail ) { #> <img class="suggestion-post-thumbnail" src="{{ data.images.thumbnail.url }}" alt="{{ data.post_title }}"> <# } #> <div class="suggestion-post-attributes"> <span class="suggestion-post-title">{{{ data._highlightResult.post_title.value }}}</span> <# if ( data._snippetResult['content'] ) { #> <span class="suggestion-post-content">{{{ data._snippetResult['content'].value }}}</span> <# } #> </div> </a> </script> <script type="text/html" id="tmpl-autocomplete-term-suggestion"> <a class="suggestion-link" href="{{ data.permalink }}" title="{{ data.name }}"> <svg viewBox="0 0 21 21" width="21" height="21"> <svg width="21" height="21" viewBox="0 0 21 21"> <path d="M4.662 8.72l-1.23 1.23c-.682.682-.68 1.792.004 2.477l5.135 5.135c.7.693 1.8.688 2.48.005l1.23-1.23 5.35-5.346c.31-.31.54-.92.51-1.36l-.32-4.29c-.09-1.09-1.05-2.06-2.15-2.14l-4.3-.33c-.43-.03-1.05.2-1.36.51l-.79.8-2.27 2.28-2.28 2.27zm9.826-.98c.69 0 1.25-.56 1.25-1.25s-.56-1.25-1.25-1.25-1.25.56-1.25 1.25.56 1.25 1.25 1.25z" fill-rule="evenodd"></path> </svg> </svg> <span class="suggestion-post-title">{{{ data._highlightResult.name.value }}}</span> </a> </script> <script type="text/html" id="tmpl-autocomplete-user-suggestion"> <a class="suggestion-link user-suggestion-link" href="{{ data.posts_url }}" title="{{ data.display_name }}"> <# if ( data.avatar_url ) { #> <img class="suggestion-user-thumbnail" src="{{ data.avatar_url }}" alt="{{ data.display_name }}"> <# } #> <span class="suggestion-post-title">{{{ data._highlightResult.display_name.value }}}</span> </a> </script> <script type="text/html" id="tmpl-autocomplete-footer"> <div class="autocomplete-footer"> <div class="autocomplete-footer-branding"> <a href="#" class="algolia-powered-by-link" title="Algolia"> <svg width="150px" height="25px" viewBox="0 0 572 64"><path fill="#36395A" d="M16 48.3c-3.4 0-6.3-.6-8.7-1.7A12.4 12.4 0 0 1 1.9 42C.6 40 0 38 0 35.4h6.5a6.7 6.7 0 0 0 3.9 6c1.4.7 3.3 1.1 5.6 1.1 2.2 0 4-.3 5.4-1a7 7 0 0 0 3-2.4 6 6 0 0 0 1-3.4c0-1.5-.6-2.8-1.9-3.7-1.3-1-3.3-1.6-5.9-1.8l-4-.4c-3.7-.3-6.6-1.4-8.8-3.4a10 10 0 0 1-3.3-7.9c0-2.4.6-4.6 1.8-6.4a12 12 0 0 1 5-4.3c2.2-1 4.7-1.6 7.5-1.6s5.5.5 7.6 1.6a12 12 0 0 1 5 4.4c1.2 1.8 1.8 4 1.8 6.7h-6.5a6.4 6.4 0 0 0-3.5-5.9c-1-.6-2.6-1-4.4-1s-3.2.3-4.4 1c-1.1.6-2 1.4-2.6 2.4-.5 1-.8 2-.8 3.1a5 5 0 0 0 1.5 3.6c1 1 2.6 1.7 4.7 1.9l4 .3c2.8.2 5.2.8 7.2 1.8 2.1 1 3.7 2.2 4.9 3.8a9.7 9.7 0 0 1 1.7 5.8c0 2.5-.7 4.7-2 6.6a13 13 0 0 1-5.6 4.4c-2.4 1-5.2 1.6-8.4 1.6Zm35.6 0c-2.6 0-4.8-.4-6.7-1.3a13 13 0 0 1-4.7-3.5 17.1 17.1 0 0 1-3.6-10.4v-1c0-2 .3-3.8 1-5.6a13 13 0 0 1 7.3-8.3 15 15 0 0 1 6.3-1.4A13.2 13.2 0 0 1 64 24.3c1 2.2 1.6 4.6 1.6 7.2V34H39.4v-4.3h21.8l-1.8 2.2c0-2-.3-3.7-.9-5.1a7.3 7.3 0 0 0-2.7-3.4c-1.2-.7-2.7-1.1-4.6-1.1s-3.4.4-4.7 1.3a8 8 0 0 0-2.9 3.6c-.6 1.5-.9 3.3-.9 5.4 0 2 .3 3.7 1 5.3a7.9 7.9 0 0 0 2.8 3.7c1.3.8 3 1.3 5 1.3s3.8-.5 5.1-1.3c1.3-1 2.1-2 2.4-3.2h6a11.8 11.8 0 0 1-7 8.7 16 16 0 0 1-6.4 1.2ZM80 48c-2.2 0-4-.3-5.7-1a8.4 8.4 0 0 1-3.7-3.3 9.7 9.7 0 0 1-1.3-5.2c0-2 .5-3.8 1.5-5.2a9 9 0 0 1 4.3-3.1c1.8-.7 4-1 6.7-1H89v4.1h-7.5c-2 0-3.4.5-4.4 1.4-1 1-1.6 2.1-1.6 3.6s.5 2.7 1.6 3.6c1 1 2.5 1.4 4.4 1.4 1.1 0 2.2-.2 3.2-.7 1-.4 1.9-1 2.6-2 .6-1 1-2.4 1-4.2l1.7 2.1c-.2 2-.7 3.8-1.5 5.2a9 9 0 0 1-3.4 3.3 12 12 0 0 1-5.3 1Zm9.5-.7v-8.8h-1v-10c0-1.8-.5-3.2-1.4-4.1-1-1-2.4-1.4-4.2-1.4a142.9 142.9 0 0 0-10.2.4v-5.6a74.8 74.8 0 0 1 8.6-.4c3 0 5.5.4 7.5 1.2s3.4 2 4.4 3.6c1 1.7 1.4 4 1.4 6.7v18.4h-5Zm12.9 0V17.8h5v12.3h-.2c0-4.2 1-7.4 2.8-9.5a11 11 0 0 1 8.3-3.1h1v5.6h-2a9 9 0 0 0-6.3 2.2c-1.5 1.5-2.2 3.6-2.2 6.4v15.6h-6.4Zm34.4 1a15 15 0 0 1-6.6-1.3c-1.9-.9-3.4-2-4.7-3.5a15.5 15.5 0 0 1-2.7-5c-.6-1.7-1-3.6-1-5.4v-1c0-2 .4-3.8 1-5.6a15 15 0 0 1 2.8-4.9c1.3-1.5 2.8-2.6 4.6-3.5a16.4 16.4 0 0 1 13.3.2c2 1 3.5 2.3 4.8 4a12 12 0 0 1 2 6H144c-.2-1.6-1-3-2.2-4.1a7.5 7.5 0 0 0-5.2-1.7 8 8 0 0 0-4.7 1.3 8 8 0 0 0-2.8 3.6 13.8 13.8 0 0 0 0 10.3c.6 1.5 1.5 2.7 2.8 3.6s2.8 1.3 4.8 1.3c1.5 0 2.7-.2 3.8-.8a7 7 0 0 0 2.6-2c.7-1 1-2 1.2-3.2h6.2a11 11 0 0 1-2 6.2 15.1 15.1 0 0 1-11.8 5.5Zm19.7-1v-40h6.4V31h-1.3c0-3 .4-5.5 1.1-7.6a9.7 9.7 0 0 1 3.5-4.8A9.9 9.9 0 0 1 172 17h.3c3.5 0 6 1.1 7.9 3.5 1.7 2.3 2.6 5.7 2.6 10v16.8h-6.4V29.6c0-2.1-.6-3.8-1.8-5a6.4 6.4 0 0 0-4.8-1.8c-2 0-3.7.7-5 2a7.8 7.8 0 0 0-1.9 5.5v17h-6.4Zm63.8 1a12.2 12.2 0 0 1-10.9-6.2 19 19 0 0 1-1.8-7.3h1.4v12.5h-5.1v-40h6.4v19.8l-2 3.5c.2-3.1.8-5.7 1.9-7.7a11 11 0 0 1 4.4-4.5c1.8-1 3.9-1.5 6.1-1.5a13.4 13.4 0 0 1 12.8 9.1c.7 1.9 1 3.8 1 6v1c0 2.2-.3 4.1-1 6a13.6 13.6 0 0 1-13.2 9.4Zm-1.2-5.5a8.4 8.4 0 0 0 7.9-5c.7-1.5 1.1-3.3 1.1-5.3s-.4-3.8-1.1-5.3a8.7 8.7 0 0 0-3.2-3.6 9.6 9.6 0 0 0-9.2-.2 8.5 8.5 0 0 0-3.3 3.2c-.8 1.4-1.3 3-1.3 5v2.3a9 9 0 0 0 1.3 4.8 9 9 0 0 0 3.4 3c1.4.7 2.8 1 4.4 1Zm27.3 3.9-10-28.9h6.5l9.5 28.9h-6Zm-7.5 12.2v-5.7h4.9c1 0 2-.1 2.9-.4a4 4 0 0 0 2-1.4c.4-.7.9-1.6 1.2-2.7l8.6-30.9h6.2l-9.3 32.4a14 14 0 0 1-2.5 5 8.9 8.9 0 0 1-4 2.8c-1.5.6-3.4.9-5.6.9h-4.4Zm9-12.2v-5.2h6.4v5.2H248Z"></path><path fill="#003DFF" d="M534.4 9.1H528a.8.8 0 0 1-.7-.7V1.8c0-.4.2-.7.6-.8l6.5-1c.4 0 .8.2.9.6v7.8c0 .4-.4.7-.8.7zM428 35.2V.8c0-.5-.3-.8-.7-.8h-.2l-6.4 1c-.4 0-.7.4-.7.8v35c0 1.6 0 11.8 12.3 12.2.5 0 .8-.4.8-.8V43c0-.4-.3-.7-.6-.8-4.5-.5-4.5-6-4.5-7zm106.5-21.8H528c-.4 0-.7.4-.7.8v34c0 .4.3.8.7.8h6.5c.4 0 .8-.4.8-.8v-34c0-.5-.4-.8-.8-.8zm-17.7 21.8V.8c0-.5-.3-.8-.8-.8l-6.5 1c-.4 0-.7.4-.7.8v35c0 1.6 0 11.8 12.3 12.2.4 0 .8-.4.8-.8V43c0-.4-.3-.7-.7-.8-4.4-.5-4.4-6-4.4-7zm-22.2-20.6a16.5 16.5 0 0 1 8.6 9.3c.8 2.2 1.3 4.8 1.3 7.5a19.4 19.4 0 0 1-4.6 12.6 14.8 14.8 0 0 1-5.2 3.6c-2 .9-5.2 1.4-6.8 1.4a21 21 0 0 1-6.7-1.4 15.4 15.4 0 0 1-8.6-9.3 21.3 21.3 0 0 1 0-14.4 15.2 15.2 0 0 1 8.6-9.3c2-.8 4.3-1.2 6.7-1.2s4.6.4 6.7 1.2zm-6.7 27.6c2.7 0 4.7-1 6.2-3s2.2-4.3 2.2-7.8-.7-6.3-2.2-8.3-3.5-3-6.2-3-4.7 1-6.1 3c-1.5 2-2.2 4.8-2.2 8.3s.7 5.8 2.2 7.8 3.5 3 6.2 3zm-88.8-28.8c-6.2 0-11.7 3.3-14.8 8.2a18.6 18.6 0 0 0 4.8 25.2c1.8 1.2 4 1.8 6.2 1.7s.1 0 .1 0h.9c4.2-.7 8-4 9.1-8.1v7.4c0 .4.3.7.8.7h6.4a.7.7 0 0 0 .7-.7V14.2c0-.5-.3-.8-.7-.8h-13.5zm6.3 26.5a9.8 9.8 0 0 1-5.7 2h-.5a10 10 0 0 1-9.2-14c1.4-3.7 5-6.3 9-6.3h6.4v18.3zm152.3-26.5h13.5c.5 0 .8.3.8.7v33.7c0 .4-.3.7-.8.7h-6.4a.7.7 0 0 1-.8-.7v-7.4c-1.2 4-4.8 7.4-9 8h-.1a4.2 4.2 0 0 1-.5.1h-.9a10.3 10.3 0 0 1-7-2.6c-4-3.3-6.5-8.4-6.5-14.2 0-3.7 1-7.2 3-10 3-5 8.5-8.3 14.7-8.3zm.6 28.4c2.2-.1 4.2-.6 5.7-2V21.7h-6.3a9.8 9.8 0 0 0-9 6.4 10.2 10.2 0 0 0 9.1 13.9h.5zM452.8 13.4c-6.2 0-11.7 3.3-14.8 8.2a18.5 18.5 0 0 0 3.6 24.3 10.4 10.4 0 0 0 13 .6c2.2-1.5 3.8-3.7 4.5-6.1v7.8c0 2.8-.8 5-2.2 6.3-1.5 1.5-4 2.2-7.5 2.2l-6-.3c-.3 0-.7.2-.8.5l-1.6 5.5c-.1.4.1.8.5 1h.1c2.8.4 5.5.6 7 .6 6.3 0 11-1.4 14-4.1 2.7-2.5 4.2-6.3 4.5-11.4V14.2c0-.5-.4-.8-.8-.8h-13.5zm6.3 8.2v18.3a9.6 9.6 0 0 1-5.6 2h-1a10.3 10.3 0 0 1-8.8-14c1.4-3.7 5-6.3 9-6.3h6.4zM291 31.5A32 32 0 0 1 322.8 0h30.8c.6 0 1.2.5 1.2 1.2v61.5c0 1.1-1.3 1.7-2.2 1l-19.2-17a18 18 0 0 1-11 3.4 18.1 18.1 0 1 1 18.2-14.8c-.1.4-.5.7-.9.6-.1 0-.3 0-.4-.2l-3.8-3.4c-.4-.3-.6-.8-.7-1.4a12 12 0 1 0-2.4 8.3c.4-.4 1-.5 1.6-.2l14.7 13.1v-46H323a26 26 0 1 0 10 49.7c.8-.4 1.6-.2 2.3.3l3 2.7c.3.2.3.7 0 1l-.2.2a32 32 0 0 1-47.2-28.6z"></path></svg> </a> </div> </div> </script> <script type="text/html" id="tmpl-autocomplete-empty"> <div class="autocomplete-empty"> No hay resultados que coincidan con su consulta <span class="empty-query">"{{ data.query }}"</span> </div> </script> <script type="text/javascript"> window.addEventListener('load', function () { /* Initialize Algolia client */ var client = algoliasearch( algolia.application_id, algolia.search_api_key ); /** * Algolia hits source method. * * This method defines a custom source to use with autocomplete.js. * * @param object $index Algolia index object. * @param object $params Options object to use in search. */ var algoliaHitsSource = function( index, params ) { return function( query, callback ) { index .search( query, params ) .then( function( response ) { callback( response.hits, response ); }) .catch( function( error ) { callback( [] ); }); } } /* Setup autocomplete.js sources */ var sources = []; algolia.autocomplete.sources.forEach( function( config, i ) { var suggestion_template = wp.template( config[ 'tmpl_suggestion' ] ); sources.push( { source: algoliaHitsSource( client.initIndex( config[ 'index_name' ] ), { hitsPerPage: config[ 'max_suggestions' ], attributesToSnippet: [ 'content:10' ], highlightPreTag: '__ais-highlight__', highlightPostTag: '__/ais-highlight__' } ), templates: { header: function () { return wp.template( 'autocomplete-header' )( { label: _.escape( config[ 'label' ] ) } ); }, suggestion: function ( hit ) { if ( hit.escaped === true ) { return suggestion_template( hit ); } hit.escaped = true; for ( var key in hit._highlightResult ) { /* We do not deal with arrays. */ if ( typeof hit._highlightResult[ key ].value !== 'string' ) { continue; } hit._highlightResult[ key ].value = _.escape( hit._highlightResult[ key ].value ); hit._highlightResult[ key ].value = hit._highlightResult[ key ].value.replace( /__ais-highlight__/g, '<em>' ).replace( /__\/ais-highlight__/g, '</em>' ); } for ( var key in hit._snippetResult ) { /* We do not deal with arrays. */ if ( typeof hit._snippetResult[ key ].value !== 'string' ) { continue; } hit._snippetResult[ key ].value = _.escape( hit._snippetResult[ key ].value ); hit._snippetResult[ key ].value = hit._snippetResult[ key ].value.replace( /__ais-highlight__/g, '<em>' ).replace( /__\/ais-highlight__/g, '</em>' ); } return suggestion_template( hit ); } } } ); } ); /* Setup dropdown menus */ document.querySelectorAll( algolia.autocomplete.input_selector ).forEach( function( element ) { var config = { debug: algolia.debug, hint: false, openOnFocus: true, appendTo: 'body', templates: { empty: wp.template( 'autocomplete-empty' ) } }; if ( algolia.powered_by_enabled ) { config.templates.footer = wp.template( 'autocomplete-footer' ); } /* Instantiate autocomplete.js */ var autocomplete = algoliaAutocomplete( element, config, sources ) .on( 'autocomplete:selected', function ( e, suggestion ) { /* Redirect the user when we detect a suggestion selection. */ window.location.href = suggestion.permalink ?? suggestion.posts_url; // Users use the `posts_url` property instead of `permalink`. } ); /* Force the dropdown to be re-drawn on scroll to handle fixed containers. */ window.addEventListener( 'scroll', function() { if ( autocomplete.autocomplete.getWrapper().style.display === "block" ) { autocomplete.autocomplete.close(); autocomplete.autocomplete.open(); } } ); } ); var algoliaPoweredLink = document.querySelector( '.algolia-powered-by-link' ); if ( algoliaPoweredLink ) { algoliaPoweredLink.addEventListener( 'click', function( e ) { e.preventDefault(); window.location = "https://www.algolia.com/?utm_source=WordPress&utm_medium=extension&utm_content=" + window.location.hostname + "&utm_campaign=poweredby"; } ); } }); </script> <script src='https://geekflare.com/wp-includes/js/dist/vendor/wp-polyfill-inert.min.js?ver=3.1.2' id='wp-polyfill-inert-js' defer></script> <script src='https://geekflare.com/wp-includes/js/dist/vendor/regenerator-runtime.min.js?ver=0.13.11' id='regenerator-runtime-js' defer></script> <script src='https://geekflare.com/wp-includes/js/dist/vendor/wp-polyfill.min.js?ver=3.15.0' id='wp-polyfill-js' defer></script> <script src='https://geekflare.com/wp-includes/js/dist/vendor/react.min.js?ver=18.2.0' id='react-js' defer></script> <script src='https://geekflare.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.2.0' id='react-dom-js' defer></script> <script src='https://geekflare.com/wp-includes/js/dist/escape-html.min.js?ver=03e27a7b6ae14f7afaa6' id='wp-escape-html-js' defer></script> <script src='https://geekflare.com/wp-includes/js/dist/element.min.js?ver=ed1c7604880e8b574b40' id='wp-element-js' defer></script> <script src='https://geekflare.com/wp-content/themes/geekflare/build/apps/core/block-header/site.js' id='geekflare_core_header_site_script-js' defer></script> <script src='https://geekflare.com/wp-content/themes/geekflare/build/apps/articles/block-article/site.js' id='geekflare_articles_article_site_script-js' defer></script> <script src='https://geekflare.com/wp-content/plugins/prismatic/lib/prism/js/prism-core.js?ver=3.4' id='prismatic-prism-js' defer></script> <script src='https://geekflare.com/wp-content/plugins/prismatic/lib/prism/js/plugin-toolbar.js?ver=3.4' id='prismatic-prism-toolbar-js' defer></script> <script src='https://geekflare.com/wp-content/plugins/prismatic/lib/prism/js/plugin-copy-clipboard.js?ver=3.4' id='prismatic-copy-clipboard-js' defer></script> <script src='https://geekflare.com/wp-content/plugins/prismatic/lib/prism/js/plugin-command-line.js?ver=3.4' id='prismatic-command-line-js' defer></script> <script src='https://geekflare.com/wp-content/plugins/prismatic/lib/prism/js/lang-c.js?ver=3.4' id='prismatic-prism-c-js' defer></script> <script src='https://geekflare.com/wp-content/plugins/prismatic/lib/prism/js/lang-css.js?ver=3.4' id='prismatic-prism-css-js' defer></script> <script src='https://geekflare.com/wp-content/plugins/prismatic/lib/prism/js/lang-markup.js?ver=3.4' id='prismatic-prism-markup-js' defer></script> <script id='wp-util-js-extra'> var _wpUtilSettings = {"ajax":{"url":"\/wp-admin\/admin-ajax.php"}}; </script> <script src='https://geekflare.com/wp-includes/js/wp-util.min.js?ver=6.3.1' id='wp-util-js' defer></script> <script src='https://geekflare.com/wp-content/plugins/wp-search-with-algolia/js/algoliasearch/dist/algoliasearch-lite.umd.js?ver=2.6.1' id='algolia-search-js' defer></script> <script src='https://geekflare.com/wp-content/plugins/wp-search-with-algolia/js/autocomplete.js/dist/autocomplete.min.js?ver=2.6.1' id='algolia-autocomplete-js' defer></script> <script src='https://geekflare.com/wp-content/plugins/wp-search-with-algolia/js/autocomplete-noconflict.js?ver=2.6.1' id='algolia-autocomplete-noconflict-js' defer></script> <script id="perfmatters-lazy-load-js-before"> window.lazyLoadOptions={elements_selector:"img[data-src],.perfmatters-lazy,.perfmatters-lazy-css-bg",thresholds:"0px 0px",class_loading:"pmloading",class_loaded:"pmloaded",callback_loaded:function(element){if(element.tagName==="IFRAME"){if(element.classList.contains("pmloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}};window.addEventListener("LazyLoad::Initialized",function(e){var lazyLoadInstance=e.detail.instance;});function perfmattersLazyLoadYouTube(e){var t=document.createElement("iframe"),r="ID?";r+=0===e.dataset.query.length?"":e.dataset.query+"&",r+="autoplay=1",t.setAttribute("src",r.replace("ID",e.dataset.src)),t.setAttribute("frameborder","0"),t.setAttribute("allowfullscreen","1"),t.setAttribute("allow","accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"),e.replaceChild(t,e.firstChild)} </script> <script async src='https://geekflare.com/wp-content/plugins/perfmatters/js/lazyload.min.js?ver=2.1.6' id='perfmatters-lazy-load-js'></script> <script src='https://geekflare.com/wp-content/plugins/aawp/assets/dist/js/main.js?ver=3.30.9' id='aawp-js' defer></script> <script async data-no-optimize="1" src='https://geekflare.com/wp-content/plugins/perfmatters/vendor/instant-page/instantpage.js?ver=2.1.6' id='perfmatters-instant-page-js'></script> <script type="text/javascript"> /* <![CDATA[ */ var aawp_geotargeting_settings = {"store":"com","mode":"title"}; var aawp_geotargeting_localized_stores = {"be":"com.be","es":"es","fr":"fr","nl":"nl","gb":"co.uk","ie":"co.uk"}; var aawp_geotargeting_tracking_ids = {"com.be":"geekflare08-21","fr":"geekflare07-21","nl":"geekflare0d-21","es":"geekflare0f-21","co.uk":"geekflare03-21"}; /* ]]> */ </script> <script type="text/javascript" id="perfmatters-delayed-scripts-js">const pmDelayClick=false;const pmUserInteractions=["keydown","mousedown","mousemove","wheel","touchmove","touchstart","touchend"],pmDelayedScripts={normal:[],defer:[],async:[]},jQueriesArray=[],pmInterceptedClicks=[];var pmDOMLoaded=!1,pmClickTarget="";function pmTriggerDOMListener(){"undefined"!=typeof pmDelayTimer&&clearTimeout(pmDelayTimer),pmUserInteractions.forEach(function(e){window.removeEventListener(e,pmTriggerDOMListener,{passive:!0})}),document.removeEventListener("visibilitychange",pmTriggerDOMListener),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",pmTriggerDelayedScripts):pmTriggerDelayedScripts()}async function pmTriggerDelayedScripts(){pmDelayEventListeners(),pmDelayJQueryReady(),pmProcessDocumentWrite(),pmSortDelayedScripts(),pmPreloadDelayedScripts(),await pmLoadDelayedScripts(pmDelayedScripts.normal),await pmLoadDelayedScripts(pmDelayedScripts.defer),await pmLoadDelayedScripts(pmDelayedScripts.async),await pmTriggerEventListeners(),document.querySelectorAll("link[data-pmdelayedstyle]").forEach(function(e){e.setAttribute("href",e.getAttribute("data-pmdelayedstyle"))}),window.dispatchEvent(new Event("perfmatters-allScriptsLoaded")),pmReplayClicks()}function pmDelayEventListeners(){let e={};function t(t,r){function n(r){return e[t].delayedEvents.indexOf(r)>=0?"perfmatters-"+r:r}e[t]||(e[t]={originalFunctions:{add:t.addEventListener,remove:t.removeEventListener},delayedEvents:[]},t.addEventListener=function(){arguments[0]=n(arguments[0]),e[t].originalFunctions.add.apply(t,arguments)},t.removeEventListener=function(){arguments[0]=n(arguments[0]),e[t].originalFunctions.remove.apply(t,arguments)}),e[t].delayedEvents.push(r)}function r(e,t){let r=e[t];Object.defineProperty(e,t,{get:r||function(){},set:function(r){e["perfmatters"+t]=r}})}t(document,"DOMContentLoaded"),t(window,"DOMContentLoaded"),t(window,"load"),t(window,"pageshow"),t(document,"readystatechange"),r(document,"onreadystatechange"),r(window,"onload"),r(window,"onpageshow")}function pmDelayJQueryReady(){let e=window.jQuery;Object.defineProperty(window,"jQuery",{get:()=>e,set(t){if(t&&t.fn&&!jQueriesArray.includes(t)){t.fn.ready=t.fn.init.prototype.ready=function(e){pmDOMLoaded?e.bind(document)(t):document.addEventListener("perfmatters-DOMContentLoaded",function(){e.bind(document)(t)})};let r=t.fn.on;t.fn.on=t.fn.init.prototype.on=function(){if(this[0]===window){function e(e){return e=(e=(e=e.split(" ")).map(function(e){return"load"===e||0===e.indexOf("load.")?"perfmatters-jquery-load":e})).join(" ")}"string"==typeof arguments[0]||arguments[0]instanceof String?arguments[0]=e(arguments[0]):"object"==typeof arguments[0]&&Object.keys(arguments[0]).forEach(function(t){delete Object.assign(arguments[0],{[e(t)]:arguments[0][t]})[t]})}return r.apply(this,arguments),this},jQueriesArray.push(t)}e=t}})}function pmProcessDocumentWrite(){let e=new Map;document.write=document.writeln=function(t){var r=document.currentScript,n=document.createRange();let a=e.get(r);void 0===a&&(a=r.nextSibling,e.set(r,a));var i=document.createDocumentFragment();n.setStart(i,0),i.appendChild(n.createContextualFragment(t)),r.parentElement.insertBefore(i,a)}}function pmSortDelayedScripts(){document.querySelectorAll("script[type=pmdelayedscript]").forEach(function(e){e.hasAttribute("src")?e.hasAttribute("defer")&&!1!==e.defer?pmDelayedScripts.defer.push(e):e.hasAttribute("async")&&!1!==e.async?pmDelayedScripts.async.push(e):pmDelayedScripts.normal.push(e):pmDelayedScripts.normal.push(e)})}function pmPreloadDelayedScripts(){var e=document.createDocumentFragment();[...pmDelayedScripts.normal,...pmDelayedScripts.defer,...pmDelayedScripts.async].forEach(function(t){var r=t.getAttribute("src");if(r){var n=document.createElement("link");n.href=r,n.rel="preload",n.as="script",e.appendChild(n)}}),document.head.appendChild(e)}async function pmLoadDelayedScripts(e){var t=e.shift();return t?(await pmReplaceScript(t),pmLoadDelayedScripts(e)):Promise.resolve()}async function pmReplaceScript(e){return await pmNextFrame(),new Promise(function(t){let r=document.createElement("script");[...e.attributes].forEach(function(e){let t=e.nodeName;"type"!==t&&("data-type"===t&&(t="type"),r.setAttribute(t,e.nodeValue))}),e.hasAttribute("src")?(r.addEventListener("load",t),r.addEventListener("error",t)):(r.text=e.text,t()),e.parentNode.replaceChild(r,e)})}async function pmTriggerEventListeners(){pmDOMLoaded=!0,await pmNextFrame(),document.dispatchEvent(new Event("perfmatters-DOMContentLoaded")),await pmNextFrame(),window.dispatchEvent(new Event("perfmatters-DOMContentLoaded")),await pmNextFrame(),document.dispatchEvent(new Event("perfmatters-readystatechange")),await pmNextFrame(),document.perfmattersonreadystatechange&&document.perfmattersonreadystatechange(),await pmNextFrame(),window.dispatchEvent(new Event("perfmatters-load")),await pmNextFrame(),window.perfmattersonload&&window.perfmattersonload(),await pmNextFrame(),jQueriesArray.forEach(function(e){e(window).trigger("perfmatters-jquery-load")});let e=new Event("perfmatters-pageshow");e.persisted=window.pmPersisted,window.dispatchEvent(e),await pmNextFrame(),window.perfmattersonpageshow&&window.perfmattersonpageshow({persisted:window.pmPersisted})}async function pmNextFrame(){return new Promise(function(e){requestAnimationFrame(e)})}function pmClickHandler(e){e.target.removeEventListener("click",pmClickHandler),pmRenameDOMAttribute(e.target,"pm-onclick","onclick"),pmInterceptedClicks.push(e),e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation()}function pmReplayClicks(){window.removeEventListener("touchstart",pmTouchStartHandler,{passive:!0}),window.removeEventListener("mousedown",pmTouchStartHandler),pmInterceptedClicks.forEach(e=>{e.target.outerHTML===pmClickTarget&&e.target.dispatchEvent(new MouseEvent("click",{view:e.view,bubbles:!0,cancelable:!0}))})}function pmTouchStartHandler(e){"HTML"!==e.target.tagName&&(pmClickTarget||(pmClickTarget=e.target.outerHTML),window.addEventListener("touchend",pmTouchEndHandler),window.addEventListener("mouseup",pmTouchEndHandler),window.addEventListener("touchmove",pmTouchMoveHandler,{passive:!0}),window.addEventListener("mousemove",pmTouchMoveHandler),e.target.addEventListener("click",pmClickHandler),pmRenameDOMAttribute(e.target,"onclick","pm-onclick"))}function pmTouchMoveHandler(e){window.removeEventListener("touchend",pmTouchEndHandler),window.removeEventListener("mouseup",pmTouchEndHandler),window.removeEventListener("touchmove",pmTouchMoveHandler,{passive:!0}),window.removeEventListener("mousemove",pmTouchMoveHandler),e.target.removeEventListener("click",pmClickHandler),pmRenameDOMAttribute(e.target,"pm-onclick","onclick")}function pmTouchEndHandler(e){window.removeEventListener("touchend",pmTouchEndHandler),window.removeEventListener("mouseup",pmTouchEndHandler),window.removeEventListener("touchmove",pmTouchMoveHandler,{passive:!0}),window.removeEventListener("mousemove",pmTouchMoveHandler)}function pmRenameDOMAttribute(e,t,r){e.hasAttribute&&e.hasAttribute(t)&&(event.target.setAttribute(r,event.target.getAttribute(t)),event.target.removeAttribute(t))}window.addEventListener("pageshow",e=>{window.pmPersisted=e.persisted}),pmUserInteractions.forEach(function(e){window.addEventListener(e,pmTriggerDOMListener,{passive:!0})}),pmDelayClick&&(window.addEventListener("touchstart",pmTouchStartHandler,{passive:!0}),window.addEventListener("mousedown",pmTouchStartHandler)),document.addEventListener("visibilitychange",pmTriggerDOMListener);</script></body> </html>