Visualizzazione risultati 1 fino 9 di 9

Discussione: Problema con la cache!

  1. #1
    Guest

    Predefinito

    Ciao raga,
    ho un problemino con il sito e non essendo molto esperto di html devo rivolgermi a voi. Ho bisogno di inserire in una pagina un javascript che risiede su un server ftp ma il browser, dopo averlo caricato la prima volta dal server, lo va a riprendere nella cache. A me serve che ogni volta che si apre la pagina quello script sia scaricato di nuovo. Ho provato ad inserire il tag <meta http-equiv="pragma" content="no-cache"> e altri che ho trovato in rete, ma mi sono accorto che tutti gli oggetti nella pagina vengono in ogni caso salvati in cache. Qualcuno mi sa dire come mai questi tag non funzionano e soprattutto come posso fare x aggiornare lo script ogni volta che apro la pagina senza schiacciare F5?

  2. #2
    L'avatar di maurizio
    maurizio non è connesso Altervistiano Junior
    Data registrazione
    26-10-2002
    Messaggi
    617

    Predefinito

    Hai provato con

    <meta http-equiv="expires" content="0">

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da maurizio
    Hai provato con

    <meta http-equiv="expires" content="0">
    Ci ho appena riprovato. Lo script torna sempre in cache con scadenza "nessuno". Le immagini hanno scadenza un mese. Il file htm è scaduto!
    :(

  4. #4
    Guest

    Predefinito

    Allora:
    Tutto ciò che viene visualizzato dal browser viene SEMPRE prima scaricato nella cache locale.
    I meta tag che utilizzate voi, servono solo per dire al browser, di riscaricare dal server il file in questione. Ma non che non venga mai scaricato.
    Se il tuo problema era di evitare di farlo scaricare all'utente per ragioni tue, sappi che non è possibile.
    Su internet non puoi nascondere nulla, l'unica cosa che puoi fare, è generare la pagina tramite uno script, ma sia la pagina in html, che tutti i file allegati e ad essa associati, come javascript, css e quant'altro, devono essere necessariamente scaricati in locale per essere visualizzati.
    Questo naturalmente per i browser in uso oggi.

  5. #5
    Guest

    Predefinito

    Allora provo a spiegarmi in maniera più dettagliata perchè credo che il problema non sia qui. All'apertura della pagina devo verificare se un server ftp è attivo. Faccio in modo quindi che sia scaricato da esso uno script nel quale viene impostata una variabile a true. Naturalmente se si riesce a scaricare lo script, la variabile è true e il server risulta attivo, altrimenti la variabile rimane false e il server risulta disattivo.
    Ma se in seguito il browser esegue dalla cache lo script precedentemente scaricato , il server risulterà sempre attivo.
    Quindi, anche con gli header non riesco ad impedire che il browser esegua lo script dalla cache. Sarà dovuto al fatto che essi non valgono per oggetti scaricati tramite ftp? Oppure perchè lo script risiede su un server diverso a quello della pagina? Vi riporto il mio codice:

    <script language="JavaScript">
    active = false;
    </script>

    <script language="JavaScript" src="ftp://indirizzoserver/active.js" >
    <-- in active.js c'è il codice: active=true -->
    </script>

    <script language="JavaScript">
    if (active) document.write('<a href="ftp://indirizzoserver">
    <img src="ftp://indirizzoserver/online.gif" border="0"></a>');
    else document.write('<img src="../immagini/offline.gif">');
    </script>

  6. #6
    Guest

    Predefinito

    Non ho mai provato a scaricare tramite ftp come fai tu, prova a inserire il js da te menzionato in uno spazio http risiedente sullo stesso server se possibile e riprova.

    P.S. che browser e che S.O stai usando per la prova?

  7. #7
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    Citazione Originalmente inviato da Lux
    Allora provo a spiegarmi in maniera più dettagliata perchè credo che il problema non sia qui. All'apertura della pagina devo verificare se un server ftp è attivo. Faccio in modo quindi che sia scaricato da esso uno script nel quale viene impostata una variabile a true. Naturalmente se si riesce a scaricare lo script, la variabile è true e il server risulta attivo, altrimenti la variabile rimane false e il server risulta disattivo.
    Ma se in seguito il browser esegue dalla cache lo script precedentemente scaricato , il server risulterà sempre attivo.
    Quindi, anche con gli header non riesco ad impedire che il browser esegua lo script dalla cache. Sarà dovuto al fatto che essi non valgono per oggetti scaricati tramite ftp? Oppure perchè lo script risiede su un server diverso a quello della pagina? Vi riporto il mio codice:

    <script language="JavaScript">
    active = false;
    </script>

    <script language="JavaScript" src="ftp://indirizzoserver/active.js" >
    <-- in active.js c'è il codice: active=true -->
    </script>

    <script language="JavaScript">
    if (active) document.write('<a href="ftp://indirizzoserver">
    <img src="ftp://indirizzoserver/online.gif" border="0"></a>');
    else document.write('<img src="../immagini/offline.gif">');
    </script>
    forse ti sembrerà una soluzione "estrema" ma nel tuo caso potresti caricare la pagina così com'è adesso e dopo averla caricata tutta imporle un bel refresh forzato tramite javascript... dovrebbe così riscaricarsi tutti gli elementi...

    (nn sn sicuro ke funzioni, nn ho mai provato a fare qlcs del genere)

    byez
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  8. #8
    Guest

    Predefinito

    sugandbibi, se devo testare il server ftp, a che serve mettere lo script in un server http?
    Evcz, ci ho già pensato a questa soluzione ma poi sorgono altri problemi.
    Se faccio il refresh automatico appena si carica la pagina si crea un loop di refresh che manda in blocco il browser. Dovrei far eseguire lo script per il refresh solo la prima volta... e come si fa?
    Per ora ho creato due frame: il principale esegue lo script di refresh che aggiorna il secondario, ma in questo modo ho altri problemoni per quanto riguarda link, altri script ecc... E' una soluzione molto contorta!
    Cmq con uno script che fa il refresh automaticamente la pagina ricarica tutto e il problema principale si risolve.
    Ah, il mio browser è l'explorer5 e il SO è il Win2k.
    Grazie raga!

  9. #9
    Guest

    Predefinito

    Ok raga, ho risolto. Faccio fare alla pagina un refresh automatico all'apertura controllando, tramite un cookie, che sia fatto una sola volta.
    Ora è tutto ok... almeno spero. Devo solo testarla su altri pc, non si sa mai...
    Cmq grazie a tutti voi per i suggerimenti.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •