Ver Mensaje Individual
  #5 (permalink)  
Antiguo 06/06/2017, 14:06
josico
 
Fecha de Ingreso: julio-2009
Mensajes: 172
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: cambiar de urls sin que recargue el navegador y conservando información.

Las respuestas me llevaron hasta este código que encontré.

Código HTML:
<div class="container">
    <div class="row">
        <ul class="nav navbar-nav">
            <li><a href="index.html" class="historyAPI">Home</a></li>
            <li><a href="index2.html" class="historyAPI">About</a></li>
            <li><a href="index3.html" class="historyAPI">Contact</a></li>
        </ul>
    </div>
    <div class="row">
        <div class="col-md-6">
            <div class="well">
                Click on Links above to see history API usage using <code>pushState</code> method. asdfasdf
            </div>
        </div>
        <div class="row">    
            <div class="jumbotron" id="contentHolder">
                <h1>Home!</h1>
                <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p>
            </div>
        </div>
    </div>
</div>

<script type="text/javascript">
    jQuery('document').ready(function(){
         
        jQuery('.historyAPI').on('click', function(e){
            e.preventDefault();
            var href = $(this).attr('href');
             
            // Getting Content
            getContent(href, true);
             
            jQuery('.historyAPI').removeClass('active');
            $(this).addClass('active');
        });
         
    });
     
    // Adding popstate event listener to handle browser back button  
    window.addEventListener("popstate", function(e) {
         
        // Get State value using e.state
        getContent(location.pathname, false);
    });
     
    function getContent(url, addEntry) {
        $.get(url)
        .done(function( data ) {
             
            // Updating Content on Page
            $('#contentHolder').html(data);
             
            if(addEntry == true) {
                // Add History Entry using pushState
                history.pushState(null, null, url); 
            }
             
        });
    }
</script> 
Lo he investigado un poco y he leido sobre el tema y entiendo que aquí ( history.pushState(null, null, url); ) puedo jugar con el historial del navegador y que en teoría en la capa con id contentHolder será lo único que modificara al cargar la página y el resto quedará intacto. Pero vamos que no consigo ponerlo en marcha.

He creado tres index con contenido distintio dentro de esta capa y fuera confiando que recargase solo la capa contentHolder pero obviamente no tengo ni idea de que estoy haciendo.

Seguiré intentándolo y ya les comentaré.