1. Con una cuenta podrás:

    • Publicar preguntas y pedir ayuda
    • Crear tutoriales
    • Acceder a contenido privado
    • Convertirte en un Héroe de la web
    Cerrar notificación
  2. Eres nuevo en la comunidad y necesitas ayuda?
    Sigue estos pasos y recomendaciones antes de publicar tu duda:
    Cerrar notificación

Ayuda como recargar solo una vez una pagina con setInterval y localStorage?

Tema en 'Jquery' comenzado por italo_pm, 27 de Agosto de 2017.

  1. italo_pm

    italo_pm Nuevo Miembro

    Se incorporó:
    19 de Septiembre de 2015
    Mensajes:
    24
    Me gusta recibidos:
    1
    Puntos de trofeos:
    3
    Género:
    Hombre
    Buenos dias a todos, no logro obtener una correcta logica para poder recargar una sola vez una pagina web,

    la pagina web deberia de recargarse solo una vez, es decir solo cuando el count(*) de una query es igual a 1 (lado php declaro localStorage.setItem) y luego, en el setInterval siguiente, si el count(*) es igual a 1 no entrar al ciclo de recarga de la web, por el momento la pagina de recarga solo cuando el count(*) es igual 1, oviamente se recarga en cada setInterval.


    file ctr_1_reporte.php
    PHP:

        require 'conndbcontotesi.php';

        $q_num_reportes_paraleer = ("SELECT count(*) as num_reportes_paraleer FROM reporte c;");

        $sql_q_num_reportes_paraleer = mysql_query($q_num_reportes_paraleer) or die(mysql_error());        
       
        while ($row_Q = mysql_fetch_array($sql_q_num_reportes_paraleer,MYSQL_BOTH)) {

            echo $row_Q['num_reportes_paraleer'];

        }    

        if ($row_Q['num_reportes_paraleer'] == 1) {
            echo ('
                <script>
                    localStorage.setItem("ctr1con", "SI");
                </script>
                '
    );
        }
     
    el codigo jquery en el head del file recargopagina.php

    Código (Javascript):

    $(document).ready(function() {

        setInterval(function(){
            $.ajax({
                url: "php/ctr_1_reporte.php",
                cache: false,
                success: function(html) {
                    if(localStorage["ctr1con"] != "SI") {
                        var unasola = html;
                        if (unasola == 1) { // entro solo cuando el la query del count(*) da 1
                            console.log("ctr1con = SI - recargo la pagina"); //debug
                            setTimeout(function() {
                                window.location.reload(); //recargo la pagina recargopagina.php
                            }, 1000);
                        }
                        else {
                            console.log("ctr1con = NO - 0 o mas de 1 - no recargo la pagina."); //debug
                            localStorage.setItem("ctr1con", "NO");
                        }
                    }
                }
            });
        }, 15000);
         
    });
     
    con esos codigos pues recarga siempre la pagina cuando el count es igual 1, pero me serviria solo recargar una vez hasta que ese count=1 cambie con otro valor distinto a 1.

    alguna sugerencia por favor?

    gracias anticipadamente.

    Salu2
     
    Última modificación: 27 de Agosto de 2017
  2. AngelKrak

    AngelKrak Héroe de la web

    Se incorporó:
    29 de Abril de 2015
    Mensajes:
    1.428
    Me gusta recibidos:
    652
    Puntos de trofeos:
    113
    Género:
    Hombre
    Ocupación:
    Freelancer
    Localización:
    Guadalajara
    Página web:
    A italo_pm le gusta esto.
  3. Maddenamy

    Maddenamy Miembro conocido

    Se incorporó:
    9 de Enero de 2015
    Mensajes:
    951
    Me gusta recibidos:
    585
    Puntos de trofeos:
    93
    Ocupación:
    Estudiante
    Localización:
    México
    Página web:
    O igualmente crear el intervalo como variable y cuando cumpla tu confirmación eliminarlo.

    Código (Javascript):

    var intervalo = setInterval(); // crea el intervalo
    clearInterval(intervalo); // detiene el intervalo
     
     
    A italo_pm, Dawud y AngelKrak les gusta esto.

Comparte esta página