Implementé una aplicación para un proyecto escolar que básicamente toma el dígito escrito a mano de un usuario y luego muestra el dígito en una pantalla basado en algún algoritmo de aprendizaje automático.
El dígito escrito a mano del usuario se almacena como una matriz de JavaScript de 28x28 y se envía de vuelta a la aplicación del matraz a través de una solicitud posterior:
submit_button.onclick = () => { const xhr = new XMLHttpRequest(); xhr.onreadystatechange = () => { if (xhr.readyState == XMLHttpRequest.DONE) { window.location.replace("/"); } }; xhr.open("POST", "/submit"); xhr.setRequestHeader("Accept", "application/json"); xhr.setRequestHeader("Content-type", "application/json"); xhr.send(JSON.stringify(printGrid())); clearGrid(); }; Luego, la aplicación Flask procesa la matriz a través de una función y actualiza un digit de variable global en función de la salida de la función:
@app.route("/submit", methods=['POST']) def submit(): global digit digit = process_digit(request.get_json()) return "ok"La ruta "/" luego devuelve una plantilla html actualizada con el dígito.
En el servidor de desarrollo, la página web hace lo que espero que haga y solo se vuelve a cargar una vez que se ha procesado el dígito en función del cambio de xhr.onreadystatechange que configuré en el archivo JavaScript.
Sin embargo, cuando se implementa en heroku, la página web se vuelve a cargar poco tiempo después de presionar el botón Enviar, pero a veces el dígito que se muestra en la pantalla no se actualiza y tengo que hacer de 1 a 3 recargas para que muestre el valor correcto.
¿Hay algo que pueda hacer para resolver este problema? Soy nuevo en el desarrollo web, por lo que si alguien pudiera señalarme los recursos correctos o señalar los errores que he cometido, ¡se lo agradecería mucho!
EDITAR :
Tal vez, en resumen, lo que me gustaría preguntar es esto: ¿cuál es la mejor manera de recibir información del usuario usando javascript, es decir, la matriz 2D, enviarla a un programa de Python para su procesamiento y luego actualizar la página web correctamente en función de la salida de la programa pitón?