Newsgroup: it.comp.lang.visual-basic
Titolo: [ASP] Problema di ricarimento pagina

Salve a tutti, ho un problema.
Ho una pagina con 2 frame, nel frame in alto seleziono dei campi, e
poi faccio una ricerca in un database, con i risultati che mi
ritornano nel frame in basso.
Il problmea sorge quando, una volta fatta una ricerca, ne faccio
un'altra. Infatti i risultati nel frame in basso non mi si aggiornano
automaticamente, ma devo spingere il pulsante aggiorna dell'IE per
farli aggiornare. Potete aiutarmi?
Precisamente nel frame in basso appena si inizia la ricerca c'č una
pagina asp che non fa altro che ridirezionare il codice verso un'altra
pagina ASP, a seconda del tipo di ricerca che si vuole fare. Quindi č
quest'ultima pagina che effettivamente interroga il db e invia le
risposte.
ciao e grazie
Giacomo

> Salve a tutti, ho un problema.
1) Posta il codice
2) imposta la pagina in maniera tale che "scada" subito e che non resti in
cache
--
RedFoxy

 ha scritto nel messaggio
news:3c7257a...@news.tin.it...
CUT
Sto sviluppando un sito proprio in questi giorni.....
la soluzione del javascript tipo chat che ricarica ogni 5 secondi....per me
č inelegante ed anche poco pratica...rallenta il tutto..e genera un sacco di
traffico....e poi se i tuoi utenti non sono "spediti" selezionano quello che
non vogliono!
Un bel form...tipo(l'ho preso da quello che sta sviluppando ora eh!!!)
..........
<form  name="pippo" target=corpo  action=principale2.asp>
  <input type="hidden" name="img1" value="<%=Request.QueryString("imm")%>">
  <input type="hidden" name="pid"  value="<%=Request.QueryString("pid")%>" >
  <input type="text" name="azione" value="<%=Request.QueryString("imm")%>" >
  <INPUT  type="submit" value="Inserisci ->" >
.........
č la soluzione giusta!
come vedi alla pressione del tasto Inserisci si carica la pagina nel frame
corpo...che fa una ricerca con i valori passati dal form...
....
bye man!
.

RedFoxy
Giacomo

 ha scritto nel messaggio
news:3c729a8...@news.tin.it...

CIOe'??????????????????????????????????????????
--
RedFoxy

RedFoxy
Giacomo

 ha scritto nel messaggio
news:3c72cf4...@news.tin.it...
CUT

ciauz!
No, va benissimo, ma non si comporta esattamente così. Quando fa una
NUOVA ricerca ( dopo cioè che ne ha svolta già una ) il frame in basso
non si aggiorna, a meno che non si spinga il pulsante aggiorna
dell'internet explorer. Non capisco perchè non si aggiorni
automaticamente.
ciao

 ha scritto nel messaggio
news:3c73f154...@news.tin.it...
Cut
senza un po di codice è difficile dirlo......
posto che i vari target siano....giusti
posto che il recupero dati sia stato giusto
(request.querystring...request.form..etc etc)
posto che il codice che esegue la query sia
giusto....Response.buffer=true...e menate del genere
posto che la logica che esegue la query sia giusta...attenzione a che alcuni
parametri non vengono passati ... attenzione a n raggiungere il SELECT FROM
WHERE per una nuova query...o viene passato un id inesistente..archivi con
dati congrui...database aperto in maniera corretta...etc etc
controllato tutto questo...
prova a mettere
<%Response.Expires=0%>
che non fa caricare la pagina nella cache...come 3 riga
il codice è banale di per se....a tutti deve funzionare!
lo schema :
    A) prepari i dati in una form
    B) li invii ad una pagina(frame) diversi
    C) La pagina leggi i dati passati
    D) ...ed agisce di conseguenza...
è banale
...se non funziona...propendo per un errore logico(tuo...un bug da qualche
parte!)...
ti ripeto è una cosa banale...
ho finito un sito enel pomeriggio l'ho messo on line e presentato al cliente
dentro si usa una quantità di sta roba...lo ho sviluppato con test nel IE6
di XP...il cliente ha Me col 5.5...lo ho fatto testare ad amici con win98 e
iE 5.0...ed a tutti ste form fungono....senza configurare niente di IE...
il sistema è unico ...propendo per un tuo errore da qualche parte!
questo senza vedere nulla del tuo codice!
:-)  ciauz!

:-)  ciauz!
ciao

redirect e non da problemi, ma mi serve fare il redirect ).
Perfetto, ho risolto mettendo il Response.Expires=0
Solo che non ho capito una cosa [ non sono un esperto di ASP se non te
ne sei accorto....:-) ]:
L'errore che mi segnalava in precedenza ( degli header HTTP ) quand'è
che effettivamente si verifica? Ho letto il post a cui mi hai mandato,
ma non spiega benissimo cosa sia. Inizialmente avevo provato ad
inserire Response.Expires=0 e mi dava l'errore, poi ho cambiato
qualcosa ( sinceramente non mi ricordo cosa ) e ora funziona.
Un'altra cosa:
Nella pagina che fa il redirect ( e fa solo quello ) ho inserito anche
i tag html alla fine ( dopo il redirect ), ma servono effettivamente?
La pagina non fa altro che ricevere i dati dal frame in alto e fare un
redirect.
scusa la lunghezza dell'e-mail ma ancora non ho capito la logica
dell'errore e di come/se/quando mettere il response.buffer=true senza
causarlo ( per es. se si include un file come ci si deve comportare? )
ciao e grazie per l'interessamento
Giacomo

 redirect e non da problemi, ma mi serve fare il redirect ).
Scusa... perche'? (scusa la latitanza... windows sputtanato...)
Qual'e' il problema che l tasto "cerca" del form si trova in un frame
diverso da quello della visualizzazione?
per quello ci sono metodi per correggere e far funzionare senza un redirect
;)
Se e' cosi0' dillo che ti dico cosa fare ;)
In ogni caso, e' buona norma postare una parte del codice spiegando cosa
credi sia che non va' o spiegando dettagliatamente come funziona il tuo
codice per i passaggi dati e per l'errore/non funzionalita' che ne
consegue...
--
RedFoxy
A fox around web

 ciao e grazie per l'interessamento
Hummm io gli include ai file esterni li faccio prima di OGNI altra cosa, sia
che essi siano tag html o no...
poi metto l'ordine in cui mi interessano nel file da includere (l'ordine con
cui saranno eseguiti)


 Solo che non ho capito una cosa
CUT
i miei file ASP cominciano così:
<%@LANGUAGE="VBSCRIPT"%>
<%Response.buffer=true %>
<%Response.Expires=0%>
<!--#include file="../Connections/Cn.asp" -->
dettagli:
la prima riga indica con che linguaggio scrivi la pagina
<%@LANGUAGE="JSCRIPT"%>
è altrettanto valido ....secondo alcuni scrivere le asp con javascript è
meglio perchè + aderente alla struttura ad oggetti del browser et
similia....
La seconda riga :response.buffer=true
questa riga  è importantissima...ed è responsabile se omessa di molti errori
"da principiante"
....in genere se omessa..e tenti di fare Response.redirect
"pippo.asp"...prrr
ti dovrebbe venir fuori l'errore (vado a memoria)
"Le intestazioni HTTP sono già state inviate al browser client..etc etc "
Infatti il web server risponde in 2 fasi ad una richiesta...nella prima
riceve le intestazioni del documento per capire quello che deve fare e poi
il contenuto vero e proprio del documento...
Quando arriva al response.redirect...il comando tenta di inserire una
intestazione....ma si è già nella fase in cui ci si aspetta il CONTENUTO del
documento....e da errore.
La soluzione è bufferizzare l'output.
In pratica con il response.buffer=true....non mandii nulla al webserver
finchè l'interpretazione della pagina non è completa. Ed eviti questo genere
di errori!
La terza riga
Response.Expires=0
questa è più facoltativa....in pratica con questo comando disattivi la cache
del documento...quindi ogni volta ...non lo peschi dalla cache ...ma lo
ricarica dal web server....
response.expires=15...fa semplicemente scadere il documento dopo 15 minuti
Response.ExpireAbsolute= "22/03/2002 08:30:00"
rimuove il documento dalla cache il 22 Marzo alle ore 8.30....
Sarebbe una finezza che potresti dare ai tuoi utenti....non intasarli la
cache del browser....rimuovili il documento del tuo sito dopo un tot di
tempo!
Dalla quarta in poi...metto i miei include......
spero di esser stato chiaro!
ciauz!

A fox around web
ciao
Giacomo

 <%Response.Expires=0%>
Questo funziona con IE4.x
Response.AddHeader "cache-control", "no-store"
Questo funziona con IE5.x (e credo 6)
Response.AddHeader "Pragma","no-cache"
Questo funziona con i proxy server
Ciao.
--
BSD is for UNIX-lovers -- linux is for Windows-haters.

 Questo funziona con i proxy server
da qualche parte, ovviamente non ritrovo il link, spiegava che con ie c'era
qualche prob per il nocaching, a causa della dimensione del buffer, mi
sembra, e suggeriva un codice tipo:
<html>
<head>
<title></title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="expires" content="-1">
</head>
<body>
...
</body>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="expires" content="-1">
</html>
cioe' col comando ripetuto quando ha caricato la pagina, seno' non la
capisce.
il sito sembrava alquanto affidabile.
forse, ma la rete ora e' piantata e non riesco a controllare:
http://www.htmlgoodies.com/
ciao, j.pragma

 e suggeriva un codice tipo:
[cut]
Con ASP era appunto necessaria questa riga:
Response.AddHeader "cache-control", "no-store"
che però non funzionava se utilizzata come direttiva html, ed il
codice che hai postato evidentemente risolveva il problema quando
non si utilizzava ASP.


 Questo funziona con IE4.x
cut
a parziale giustificazione cito:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iisref/html
/psdk/asp/vbob8o4z.asp
dove sembra ci voglian solo
Response.Expires=0....che poi vien trasformato in quello che dici...
anzi per la precisione dicono
Response.Expire=-1
io con  e prove con IE5.5 + IIS5 (win2kserv) e IE6 + IIS5.1 (xppro)...ho
sempre usato =0 ...mi funziona...nel senso che la pagina non viene
memorizzata nella cache!
mah..ci fosse un comportamento uguale in casa M$!
saluti!
:-)

 memorizzata nella cache!
Con IE5 non funzionava, probabilmente il bug era stato risolto con
IE5.5.


 NG che ad alcune riviste.
CUT
all'odioso ng di asp?quello che filtra i post e se ti rispondono ti "sembra
un giorno che piove merda e sei senza ombrello"???...ma lasciali stare!
:-D
Ciao!

 relativo pulsante dell'IE.
Hummmm
Sara' la stanchezza per il troppo lavoro (notturno), sara' che non metto a
fuoco il tuo prob... ma ancora non ho capito la faccenda dei frame...
avevi detto cvhe con l'expire funzionava... ma alora qual'e' il frame che
non va?
Se non ho capito male, hai 2 (o piu' frame, ma quelli importanti sono 2)
frame, quello di sopra dove c'e' il capo della ricerca con il relativo tasto
e quello di sotto che da i risultati della ricerca...
Ora non so' l'iterazione fra i due, io avrei fatto un semplice <base
target="frame_ris_ricerca"> cosi' una volta premuto il tasto "cerca"
venivano visualizzati i risultati nel frame giusto (senza redirect o
simili)...
Di base in testa a tutte le mie pagine (o quasi) metto:
' Settaggi per le pagine per evitare cache e residenza in memoria
session.lcid=1040
Response.Expires = 0
Response.Expiresabsolute = Now()-1
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache"
Con questi e' quasi sicuro che avrai le impostazioni italiani (il comendo
lcid) e disattivato l'inserimento nella cache della pagina...
Io lo uso e nei motori di ricerca funza egreggiamente...
Una cosa da notare, invece, e' che per un motore di ricerca ho usato il
redirect come hai fatto tu, ma solo per realizzare una pagina che diceva di
attendere che la ricerca stesse avendo luogo...
Se vuoi puoi contattarmi via mail privata (togli il .nospam) cosi' mi fai
vedere il tuo prob e/o scambiamo codice per vedere qual'e' il vero prob che
ti affligge (tutto questo se non vuoi farlo via NG...)
Ciao ;^)=
--


A fox around web
ciao

 verso gli altri file ASP specifici per ogni sezione.
Se non ricordo male con il flash puoi dirgli dove andare...
Ciao ;^)=
--
