Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

105
Views
cómo evitar (o manejar) http 429 programáticamente

Tengo una página con muchas etiquetas <img> (estoy ensamblando esta página mediante programación). Inevitablemente, algunas de las solicitudes de imágenes encuentran http 429. Afortunadamente, el servidor remoto envía un montón de encabezados de respuesta útiles de la siguiente manera

 HTTP/1.1 429 TOO MANY REQUESTS X-RateLimit-Limit: 20 X-RateLimit-Remaining: 20 X-RateLimit-Reset: 1646307858.32 Retry-After: 1

Me pregunto si de alguna manera podría envolver mis etiquetas <img> en un código que capte la response.status http.status y luego use los encabezados anteriores (por ejemplo, el encabezado Retry-After ) para solicitar la imagen fallida nuevamente después de un retraso establecido.

Lógicamente, me parece que lo anterior funcionaría, pero no puedo entender cómo codificar esto. Fwiw, esta es una página web completamente del lado del cliente.

Gracias de antemano por cualquier orientación.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

prueba algo como esto

 window.addEventListener("DOMContentLoaded", function() { const images = document.querySelectorAll("img[data-src]"); let cnt = 0; const loadImage = src => { let img = new Image(); let tgtImage = images[cnt]; img.addEventListener("load", function() { tgtImage.src = this.src }) img.addEventListener("error", function() { setTimeout(function() { loadImage(`${src}`) }, 1000) }) img.src = src; cnt++ if (cnt >= images.length) return; loadImage(images[cnt].dataset.src) } loadImage(images[cnt].dataset.src) })
 <img src="https://dummyimage.com/200x300&text=placeholder" data-src="https://dummyimage.com/200x300&text=image1" /> <img src="https://dummyimage.com/200x300&text=placeholder" data-src="https://dummyimage.com/200x300&text=image2" /> <img src="https://dummyimage.com/200x300&text=placeholder" data-src="https://ERROR.com/200x300&text=image3" /> <img src="https://dummyimage.com/200x300&text=placeholder" data-src="https://dummyimage.com/200x300&text=image4" />

about 4 years ago · Juan Pablo Isaza Report

0

lo siguiente funcionó para mí

 <img src="${uri}" onerror="this.onerror=null; setTimeout(() => { this.src='${uri}' },1000);">

gracias @spender por la pista. Gracias también a mplungjan por una solución alternativa que es útil saber aunque no lo sea para mí en este momento.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!