Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1

    IE forzare un refresh forzato CTRL+F5

    Buondì a tutti,
    per una cosa che sto costruendo sono obbligato ad utilizzare >IE6.0
    IE ha però un buco sulla cache e per bypassare il problema devo refreshare la pagina premendo i tasti CTRL+F5
    Questo comando forza la rilettura della cache (F5 da solo non basta)

    Ho la necessità di applicare un refresh ogni 5 secondi in una pagina php, ma il refresh dovrà fare CTRL+F5 e non solo il consueto F5

    Qualcuno ha già affrontato il problema o sapete darmi qualche dritta?

    In alternativa pensavo che potrei applicare un refresh standard però impostare un qualcosa alla pagina che costringa IE a fare sempre un refresh completo.. (preferirei cmq la prima soluzione)

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Metti sulla pagina i vari tag che la fanno risultare subito scaduta

    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
    <META HTTP-EQUIV="Expires" CONTENT="-1">
    ecc...

  3. #3
    Grazie mille, dopo diverse ricerche ho trovato anche questa soluzione e funziona:
    codice:
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");    // Data passata 
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");  
                                                         // sempre modificato 
    header("Cache-Control: no-store, no-cache, must-revalidate");  // HTTP/1.1 
    header("Cache-Control: post-check=0, pre-check=0", false); 
    header("Pragma: no-cache");                          // HTTP/1.0

  4. #4
    Assurdo, non funziona come si deve:
    codice:
    header("Refresh: 3; url=" . $_SERVER["PHP_SELF"]); 
    header("Pragma: no-cache");
    la prima riga di codice si occupa di refreshare la pagina ogni 3 secondi
    la seconda non permette l'utilizzo della cache

    Se utilizzate singolarmente funzionano alla grande.
    Se utilizzate insieme funziona solo la riga che sta più in basso nel codice?

    Sapete indicarmi se c'è un motivo particolare per cui succede questo?
    Avete qualche suggerimento da darmi?

    Thks

    Il mio file php per intero è questo:
    codice:
    <?php
    header("Refresh: 3; url=" . $_SERVER["PHP_SELF"]); 
    header("Pragma: no-cache");                          // HTTP/1.0 
    
    require_once('.././SSI.php');
    $context['show_load_time'] = false;
    template_html_above();
    template_body_above();
    
    if(!$user_info['is_guest'])
    {
    ?>
    
    <iframe src="percorso/Status.htm" name="riquadro" id="riquadro" width="100%" height="1000" frameborder="0"> </iframe>
    
    <?php
    }
    else
    {
    ?>
    Spiacente, non sei loggato quindi non puoi visualizzare questa pagina
    <?php
    }
    ?>

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Prova a fare il refresh in html
    codice:
    <meta http-equiv="Refresh" content="3; url=http://www.tuosito.it">
    oppure in Javascript
    codice:
    <script type="text/javascript">
        setTimeout('location.href="http://www.tuosito.it"',3000);
    </script>

  6. #6
    Ottimo suggerimento ma purtroppo non funziona..
    Con i js refresha ma non forza la cache invece con html non refresha..

    Faccio qualche altra ricerca, se trovo una soluzione la notifico, intanto grazie

  7. #7
    Allora, dopo diversi test mi son reso conto che il problema sta qui:

    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Cache-Control: post-check=0, pre-check=0", false);

    Questa parte di codice non disattiva la cache come deve.

    la sequenza di tasti CTRL+F5 funziona sempre (non so effettivamente cosa fa al browser)
    La soluzione è forzare la stringa:
    header("Refresh: 3; url=" . $_SERVER["PHP_SELF"]);

    in modo che non faccia un refresh normale della pagina ma un refresh forzato con CTRL+F5.

    Qualche idea? in rete non riesco a trovare nulla
    C'è un modo per far premere i tasti al browser in automatico con un timer?

  8. #8
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Invece di fare un refresh, fagli ricaricare la stessa pagina ma con un parametro in query string uguale al timestamp del momento. Così l'indirizzo non è mai lo stesso

  9. #9
    Stavo cercando di risolvere via jquery che a quanto leggo sembra funzionare..
    Ho scritto questo:


    codice:
    <?php
    require_once('.././SSI.php');
    $context['show_load_time'] = false;
    template_html_above();
    template_body_above();
    ?>
    
    <!DOCTYPE html>
    <html>
    <head>
    <script type="text/javascript" src="/jquery-2.0.3.min.js"></script>
    
    <meta http-equiv="Expires" content="Fri, Jan 01 1900 00:00:00 GMT">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Cache-Control" content="no-cache">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta http-equiv="Lang" content="en">
    <meta name="author" content="">
    <meta http-equiv="Reply-to" content="@.com">
    <meta name="generator" content="PhpED 6.0">
    <meta name="description" content="">
    <meta name="keywords" content="">
    <meta name="creation-date" content="06/01/2011">
    <meta name="revisit-after" content="15 days">
    <title>Untitled</title>
    </head>
    <script type="text/javascript">
    
    $(document).ready(function() {
        $.ajaxSetup({ cache: "false", timeout: 20000, type: "POST" });
        setInterval('Ricarica()', 1000);
    });
    
    function Ricarica()
    {
        $.ajax({
            url: 'Report/Status.html',
            type: 'POST', // Default value 'GET' sends data via GET
            cache: true, // Alternate value false forces browser not to send cached page
            success: function(Data){
                $('#riquadro').html(Data); // Load data into a <div> as HTML
            },
            error: function (xhr, ajaxOptions, thrownError) {
                alert(xhr.status);
                alert(thrownError);
            }
        });
    }
    
    </script>
    <body>
    
    <div id="riquadro" style="width: 600px; height: 300px; background-color: aqua;">.... loading ....</div>
    
    </body>
    </html>
    quando accedo alla index.php parte il codice e al refresh mi dice che non trova la pagina "Report/Status.html"

    secondo voi cosa sto sbagliando?

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Ciao,

    giusto per scrupolo, ma hai controllato af esempio con chrome gli header passati (oppure anche con get_headers di php) quando premi f5 e ctrl+f5 ?

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.