Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

130
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda