Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

218
Vistas
¿Hay alguna manera de obligar al navegador a extraer una URL del caché si está disponible? Alternativamente, ¿hay alguna forma de "reciclar" la URL de src para HTMLAudio?

Entonces... estoy desarrollando una aplicación web... básicamente necesito pedirle a mi backend un mp3 a través de una solicitud de obtención (no se puede almacenar en caché ya que se actualiza con frecuencia, de hecho, este código es parte de un componente de carga para cambiar eso) y luego necesito repetirlo indefinidamente.

Si intenta hacer un bucle con el elemento de audio HTML, no se repite sin problemas... así que encontré un código que básicamente crea dos componentes de audio HTML y se encarga de reproducirlo sin problemas al reproducirlos simultáneamente y hacer malabarismos entre el volumen de los dos. ..

Funciona perfectamente, PERO, quiero optimizar esto... Actualmente le estoy pidiendo al backend el mismo archivo tres veces... una vez para un componente de audio de búfer (solo necesito la duración de esto, ya que no puede se guardará en el backend actualmente) y dos veces para cada HTMLAudio dentro del código SeamlessLoop que encontré.

Este problema incluso se ve acentuado por el hecho de que tengo 5 de esos bucles que necesito cargar cada vez.

 //I removed part of the code to make it more digestable loadAudio() { for (let i = 1; i <= 5; i++) { let url = this.audio.tracks[i] let audio = new Audio() audio.src = url audio.load audio.addEventListener('loadedmetadata', () => { this.loops[`lvl${i}`] = new SeamlessLoop() //SeamlessLoop.addUri is basically how you inizialize this class //inside it creates two Audio elements and everything else it needs //addUri(src: string, duration: number, name: string) this.loops[`lvl${i}`].addUri(url, audio.duration*1000, 'loop') }) } }

Ahora, ya tengo un montón de soluciones ...

  • Podría almacenar la duración del archivo cada vez que se cambia en la base de datos, por lo que solo podría descargar el archivo una vez (configurando el caché en 5 segundos o algo así en el backend)
  • Alternativamente, podría almacenar en caché los archivos desde el backend a un horario regular y simplemente cambiar el nombre del archivo cada vez que se carga uno nuevo.

Preferiría evitar ambas soluciones, ya que ambas requerirían una reestructuración del backend que podría no valer la pena...

Por lo tanto, aquí está mi pregunta:

¿Hay alguna manera de forzar que el navegador cargue una URL desde la memoria caché? Algo así como agregar un # después de una URL para forzarlo a descargarlo de nuevo en lugar de extraerlo de la memoria caché, pero al contrario... Si eso es una cosa, resolvería mi problema al instante.

Segunda pregunta, en caso de que la respuesta a la primera sea no:

¿Hay alguna forma de inicializar un nuevo Audio() usando como src otro Audio que ya haya descargado el archivo?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

como lo sugiere @Terry,

No creo que haya una manera de hacer eso como sugerí.

Sin embargo, investigué la API de audio web y funcionó de maravilla (incluido un bucle continuo listo para usar)

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda