Newsgroup: it.comp.www.asp
Titolo: Ricerca e cache

Ciao,
dopo i vostri preziosi aiuti, eccomi di nuovo per chiedere informazioni su
un problema riguardante la cache. Come alcuni di voi già sapranno :-) ho
aggiunto un motore di ricerca che mi visualizza 10 record per
pagina...faccio una ricerca e fin qui tutto bene. Il problema si pone quando
faccio un'altra ricerca. Infatti la prima pagina viene visualizzata
correttamente mentre quelle successive non sono altro che quelle che erano
state trovate dalla ricerca precedente (le prende della cache mi sembra di
capire).
Ho provato con response.expires..... all'inizio della pagina ma mi da un
errore.
Qualche consiglio?
Thanks in advance
Omar


Di solito questo errore è dovuto a un non corretto passaggio di parametri da
una pagina alla successiva (è capitato anche a me :-(( )
Ti do un consiglio per vedere se è questo: quando "costruisci" l'istruzione
SeQueL, all'inizio della pagina che visualizza i 10 record, inserisci un
semplice:
response.write strsql
Per vedere se i parametri sono passati correttamente, e correggi di
conseguenza...
Ciao!
Andrew

 response.write strsql
Ho provato a fare come mi hai detto...risultato, nella prima pagina la stringa
SQL mi viene visualizzata correttamente ma nelle pagine successive continua a
farmi vedere la stringa della pagina che c'č nella cache, chiaramente anche i
risultati della ricerca non sono esatti. A questo punto credo proprio che il
problema sia, come hai detto, nel passaggio dei parametri da una pagina
all'altra. Per essere piů chiaro posto una parte di codice :-(
    Do While Not rsSearch.EOF And Count < rsSearch.PageSize
        Count = Count + 1
  titolo = rsSearch("Titolo")
  lingua = rsSearch("Lingua")
  cat = rsSearch("Categoria")
  id1 = rsSearch("Doc_ID")
  Response.Write vbTab & "<tr>" & vbCrLf
  Response.Write vbTab & vbTab & "<td>"
  Response.Write FONT1
  Response.Write "<b>"
  Response.Write "<a href=testo_soluz.asp?cat="&cat&"&ID="&id1&">"
  Response.Write titolo
  Response.Write "</a></font></b>"
  Response.Write "</td>" & vbCrLf
  Response.Write vbTab & vbTab & "<td>"
  Response.Write FONT1
  Response.Write lingua
  Response.Write "</a></font></td>" & vbCrLf
  Response.Write vbTab & "</tr>" & vbCrLf
        rsSearch.MoveNext
    Loop
    'Visualizza i pulsanti precedente/successivo
 Response.Write vbTab & "<tr>" & vbCrLf
 Response.Write vbTab & vbTab & "<td colspan=""2"" align=""center"">"
 Response.Write "<br><form>"
    if CurPage > 1 then
        'Non siamo all'inizio quindi visualizza il tasto "Precedente"
        Response.Write("<INPUT TYPE=BUTTON VALUE=Precedente
ONCLICK=""document.location.href='search.asp?curpage=" & curpage - 1 & "';"">")
    End If
 Response.Write "&nbsp;&nbsp;&nbsp;"
 if CInt(CurPage) <> CInt(TotalPages) then
        'Non siamo alla fine quindi visualizza il tasto "Successivo"
        Response.Write("<INPUT TYPE=BUTTON VALUE=Successivo
ONCLICK=""document.location.href='search.asp?curpage=" & curpage + 1 & "';"">")
    End If
 Response.Write "</form>"
 Response.Write vbTab & vbTab & "</td>" & vbCrLf
 Response.Write vbTab & "</tr>" & vbCrLf
 Response.Write "</table>"

 Qualche consiglio?
Personalmente ho risolto il problema inserendo in ogni form un campo cleaner
il cui valore è un numero generato casualmente con Math.random() di
Javascript.
Ogni volta che la pagina viene ricaricata, il form contiene dati differenti,
quindi dopo il submit viene chiamata una pagina diversa dalla precedente,
quindi niente cache.
Spero possa servire, ma a me funziona.
Bye
Fibia FBI

Forse è un po' troppo arzigogolato.
Hai provato a inserire semplicemente il tag HTML
<META HTTP-EQUIV="Expires"
nel <HEAD> della pagina? Setta il CONTENT ad una data oramai scaduta
(1/1/1900?) e nessuna pagina finirà in cache.
Aggiungi
<%@ Language=VBScript%>
<%
Response.Expires=0
Response.Buffer=True
%>
all'inizio del file (proprio prima di tutto) per essere sicuro che il codice
ASP venga reinterpretato.
MArco
