Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Ajax e Cache - Come leggere dalla cache

    Salve,
    ho un problema che mi assilla da 2 giorni, dopo centinaia di tentativi non sono ancora riuscito ad ottenere ciò che desidero.
    Ho utilizzato varie funzioni, load(), ajax() etc ma non riesco a sfruttare la cache. Ho trovato su internet degli articoli dove viene preferita la funzione ajax() per il passaggio di valori GET e a quanto pare dovrebbe usare la cache senza ricaricare ogni volta il contenuto desiderato in un determinato DIV!
    Quest'ultimo codice non visualizza addirittura il contenuto ma solo l'immagine del loading all'infinito -.-"....

    codice:
    <script type="text/javascript"> 
    
        var league_id = "<?php echo $league->id; ?>";
        var season = "<?php echo $season ?>";
        var ajax_load = '[img]loading.gif[/img]';  
     
        $("#match_day").change(function(){  
            var match_day = $(this).val();
    
    $.ajax({
      url: "http://www.sitoweb.it/match/?league_id="+league_id+"&season="+season+"&match_day="+match_day,
      cache: true,
      success: function(html){
        $("#matches_container").html(ajax_load).load(html);  
      }
    });
    
        });  
    
    </script>

    Ciò che desidero è visualizzare il contenuto in un determinato div visualizzando prima l'immagine del caricamento solo quando il contenuto non è presente nella cache per alleggerire cosi le chiamate al server e ridurre le query al database.

    Avrei bisogno del vostro aiuto.

    Grazie anticipatamente.

  2. #2
    Allora... credo di aver risolto nel seguente modo anche se non sò se è la migliore soluzione.

    Codice ajax & Jquery:

    codice:
    <script type="text/javascript"> 
        var div_container = 'matches_container';
        var league_id = "<?php echo $league->id; ?>";
        var season = "<?php echo $season ?>";
        var ajax_load = '[img]loading.gif[/img]';  
    
        $(document).ajaxStart(function() {
           $('#loading').show();
    
        });
        $(document).ajaxStop(function() {
           $('#loading').hide();
        });
    
        $('tbody tr[data-href]').click( function() { 
                window.location = $(this).attr('data-href'); 
         });  
     
        $("#match_day").bind('change',function(){  
            var match_day = $(this).val();
                $.ajax({
                         url: "http://www.sitoweb.it/match/?league_id="+league_id+"&season="+season+"&match_day="+match_day,
                         cache: true,
                         type: 'GET',
                         success:  function(data) {
                         document.getElementById(div_container).innerHTML = data;
                         }
                });
        });
    
        $("#match_team").bind('change',function(){  
                var team_id = $(this).val();
                $.ajax({
                         url: "http://www.sitoweb.it/match/?league_id="+league_id+"&season="+season+"&team_id="+team_id,
                         cache: true,
                         type: 'GET',
                         success:  function(data) {
                         document.getElementById(div_container).innerHTML = data;
                         }
                });
        });
    
    
    
    </script>
    poi nella pagina "http://www.sitoweb.it/match/" all'inizio ho inserito quest'altro codice:

    codice:
     
    <?php
    header('Expires:'.date("D, d M Y H:i:s",time()+600).' GMT');
    header('Cache-Control:public,max-age=600');
    ?>
    Sembra funzionare perfettamente nel senso che l'immagine del loading compare solo la prima volta mentre le successive volte no... ovviamente si accorge in automatico che la pagina è presente nella cache..esatto?
    Vorrei sapere se è corretto questo metodo e se non disturbo avrei anche un'altra domanda da porgervi.
    In pratica questo codice:

    codice:
        $('tbody tr[data-href]').click( function() { 
                window.location = $(this).attr('data-href'); 
         });
    funziona SOLO appena viene caricata l'intera pagina mentre quando il contenuto all'interno del div cambia, non capisco il motivo, cessa di funzionare in pratica è come se non venisse più considerato. o.O

    Suggerimenti? Ve ne sarei enormemente grato!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.