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

123
Views
La llamada a la API de Javascript provoca la congelación en mi aplicación web

Durante una llamada de URL de API en mi aplicación web, mi página html se bloquea inesperadamente y arroja un error de "memoria insuficiente". Realmente no estoy seguro de cuál es el problema. Estoy usando el objeto xhr para obtener datos del servidor. Probé varias api de búsqueda de hoteles de api rápida , pero cada una de ellas causó el mismo problema. Mis códigos son:

JAVASCRIPT UNO

 const btn4 = document.querySelector('#hotelBtn') btn4.addEventListener('click', function showHotels(e) { var userQuery = $('#hotelQuery').val(); const data = null; const xhr = new XMLHttpRequest(); xhr.addEventListener("readystatechange", function () { if (this.readyState === this.DONE) { var hotelObj = JSON.parse(this.responseText) console.log(hotelObj) var myContainer = document.getElementById('query_results') for (let i = 0; hotelObj.length; i++) { var myCol = document.createElement('div') myCol.setAttribute('class', 'col') var myRow = document.createElement('div') myRow.setAttribute('class', 'row') myRow.append(myCol) myContainer.append(myRow) } } }); xhr.open("GET", "https://booking-com.p.rapidapi.com/v1/hotels/locations?locale=en-gb&name=" + userQuery); xhr.setRequestHeader("x-rapidapi-host", "booking-com.p.rapidapi.com"); xhr.setRequestHeader("x-rapidapi-key", "mykey"); xhr.send(data); e.preventDefault()

})

HTML UNO

 <div id="query_results"> <!-- Filled by Javascript --> </div>

Error de memoria insuficiente : ingrese la descripción de la imagen aquí

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

0

Parece que tienes un bucle infinito en tu código.

Querrá verificar que el bucle finalice según el tamaño de la longitud de la matriz ...

for (let i = 0; i < hotelObj.length; i++) {

about 4 years ago · Juan Pablo Isaza Report

0

En el código mencionado, la condición en el bucle for implementado será verdadera para todas las iteraciones y, por lo tanto, se produce el problema. La solución provista por @inki es la solución correcta ya que el bloque de condición verifica si i<length , que será falsa al final de la matriz y sale del bucle. Ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for

about 4 years ago · Juan Pablo Isaza Report

0

He reemplazado el bucle for tradicional con la estructura de bucle foreach. El problema parece resuelto ahora mismo. En la tradición del bucle, el bucle puede ejecutarse infinitas veces, lo que provoca una excepción de falta de memoria.

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!