1
respuesta

Duda, ¿La funcion setInterval consume más memoria RAM o más recursos en la computadora o navegador?

Hola!! Realicé el ejercicio utilizando setInterval para actualizar la pantalla de los cuadros de la paleta de colores, me gustaría saber si, ¿es una implementación optima o si gasta demasiados recursos a la computadora? que si se usarán condicionales, esto para limitar al usuario a no diseñar sobre la paleta de colores. Comparto mi código y pueden probarlo si gustan.

<canvas width="600" height="400"></canvas>

<script>
    var pantalla = document.querySelector('canvas');
    var pincel = pantalla.getContext('2d');
    var colorSelect = "blue";

    pincel.fillStyle = 'grey';
    pincel.fillRect(0, 0, 600, 400);

    function dibujarRectangulo(x, y, base, altura, color) {

        pincel.fillStyle=color;
        pincel.fillRect(x,y, base, altura);
        // pincel.strokeStyle="black";
        // pincel.strokeRect(x,y, base, altura);
    }

    dibujarRectangulo(0, 0, 50, 50, "red"); 
    dibujarRectangulo(50, 0, 50, 50, "green");
    dibujarRectangulo(100, 0, 50, 50, "blue");

    var puedoDibujar = false;

    function dibujarCirculo(evento) {

        if (puedoDibujar){
            var x = evento.pageX - pantalla.offsetLeft;
            var y = evento.pageY - pantalla.offsetTop;

            pincel.fillStyle = colorSelect;
            pincel.beginPath();
            pincel.arc(x, y, 5, 0, 2 * 3.14);
            pincel.fill();
        }

    }

    pantalla.onmousemove = dibujarCirculo;

    function elergirColor(evento){

        var x = evento.pageX - pantalla.offsetLeft;
        var y = evento.pageY - pantalla.offsetTop;
        if ((x < 50) &&
            (x > 0) &&
            (y < 50) &&
            (y > 0)) {
            //alert("Color rojo");
            colorSelect = "red";
            }

        else if ((x < 100) &&
            (x > 50) &&
            (y < 50) &&
            (y > 0)) {
            //alert("Color verde");
            colorSelect = "green";
            } 
        else if ((x < 150) &&
            (x > 100) &&
            (y < 50) &&
            (y > 0)) {
            //alert("Color azul");
            colorSelect = "blue";
            } 
        return colorSelect;
    }

    function habilitarDibujar() {

        puedoDibujar = true;

    }

    function deshabilitarDibujar() {

        puedoDibujar = false;
    }

    function actualizarPantalla() {

    dibujarRectangulo(0, 0, 50, 50, "red"); 
    dibujarRectangulo(50, 0, 50, 50, "green");
    dibujarRectangulo(100, 0, 50, 50, "blue");

    }

    setInterval(actualizarPantalla);
    pantalla.onmousedown = habilitarDibujar;
    pantalla.onclick = elergirColor;
    pantalla.onmouseup = deshabilitarDibujar;


</script>
1 respuesta

¡Hola Daniel!

La función setInterval es una función útil para actualizar la pantalla de forma constante. En cuanto a tu pregunta, la función setInterval puede consumir más memoria RAM y más recursos en la computadora o navegador si se utiliza de forma inadecuada. En tu caso, estás actualizando la pantalla de los cuadros de la paleta de colores cada cierto tiempo, lo que no debería representar un problema.

Sin embargo, es importante tener en cuenta que el uso excesivo de setInterval puede afectar el rendimiento del navegador o la computadora, especialmente si se utilizan intervalos muy cortos. Por lo tanto, es importante utilizar esta función de manera responsable y limitar su uso en la medida de lo posible.

En cuanto a tu implementación, parece ser una buena solución para actualizar los cuadros de la paleta de colores. Si decides utilizar condicionales en lugar de setInterval para limitar al usuario a no diseñar sobre la paleta de colores, es posible que esto reduzca el consumo de recursos en la computadora o el navegador.

Espero haber ayudado y buenos estudios!