The manual Page
Version française
   
index | glossary | news | downloads | links ]
  introduction à ASP
écrire en ASP
le fichier global.asa
les variables
les objets ASP 3.0
l'objet Request
l'objet Response
   .AddHeader
   .AppendToLog
   .BinaryWrite
   .Buffer
   .CacheControl
   .Charset
   .Clear
   .ContentType
   .Cookies
   .End
   .Expires
   .ExpiresAbsolute
   .Flush
   .IsClientConnected
   .PICS
   .Redirect
   .Status
   .Write
l'objet ObjectContext
l'objet Application
l'objet Session
l'objet Server
l'objet ASPError
 
news
glossary
links
downloads
 
credits
contact
 
 
search
 
last update
19/02/2003
Valid HTML 4.0!
Valid CSS!
Hit-Parade
Mesurez votre audience


  Propriété Response.Buffer

Synopsis

Response.Buffer = True | False

Cette propriété permet d'activer ou de désactiver l'utilisation du tampon (buffer) de sortie : lorsque cette propriété vaut True (vrai), le tampon est activé et il est alors permis d'utiliser les méthodes de contrôle du buffer. A l'inverse, si elle vaut False, le tampon de sortie n'est pas utilisé et l'utilisation des méthodes Response.Flush, Response.Clear et Response.End génèrera une erreur d'exécution.

Le tampon de sortie

Qu'est-ce que c'est ?

Il est possible, en ASP, de stocker temporairement dans la mémoire du serveur la réponse que l'on est en train de construire avant de l'envoyer au client. Cette zone de la mémoire est appelé tampon de sortie (output buffer).

L'intérêt est de proposer une nouvelle méthode de gestion du contenu des pages ASP : on peut à tout moment, on peut décider de vider le tampon (et du coup tout son contenu est perdu) ou d'envoyer son contenu au client. Ce qui a été génèré n'est pas forcément ce que va recevoir le client.

Pourquoi et comment l'utiliser ?

Il y a 2 raisons principales pour lesquelles utiliser le tampon de sortie :

  1. gérer les échanges entre le serveur Web et le client,
  2. gérer le contenu des pages ASP.

La gestion des échanges entre le serveur Web est le client est importante. En effet, il est fort désagréable d'attendre longtemps l'affichage d'une page Web. Le tampon de sortie peut permettre de gérer cette attente en renvoyant progressivement du contenu au client : lorsque les pages à renvoyer sont grosses, il vaut mieux désactiver le tampon de sortie pour renvoyer les données au fur et à mesure, ou alors penser à purger ("flusher") régulièrement le tampon avec la méthode Response.Flush.

Pour ce qui est de la gestion du contenu des pages, le tampon de sortie peut intervenir pour gérer les en-têtes HTTP (pour les redirections ou les cookies par exemple), et gérer l'envoi de contenu à la présentation radicalement différents. L'idée est d'envoyer les données au client lorsque l'on en est sûr (les en-têtes HTTP en particulier), et utiliser le tampon pour construire les nouvelles au fur et à mesure, au risque de tout effacer pour tout recommencer l'instant d'après. C'est parfois plus simple à utiliser qu'un suite de If...Then. Un exemple est fourni dans le paragraphe suivant.

Il faut utiliser le tampon de sortie en ayant tout le temps à l'esprit que l'on construit une page ASP au fur et agrave; mesure, et qu'il est possible d'effacer ce que l'on a construit pour le remplacer par autre chose. De la même façon, il faut toujours savoir ce que contient le tampon, pour éviter de faire un Response.Clear qui efface trop de choses : ne pas oublier d'utiliser régulièrement Response.Flush.

Exemples

Dans l'exemple suivant, "Bonjour tous" sera envoyé au client :

<%
Response.Buffer = True
...
Response.Write("Bonjour")
' On envoie "Bonjour" et ce qui precede au client
Response.Flush
Response.Write(" a vous")
' Le tampon ne contient que " a vous", et on le vide
Response.Clear
Response.Write(" tous")
' " tous" sera automatiquement envoye au client
' a la fin de l'execution du script
%>

Voici comment effectuer une redirection conditionnelle et gérer du contenu en fonction de certains critères :

<%
' Tout debut de la page ASP : rien n'a encore ete ecrit
Response.Buffer = True

' Redirection par defaut : on va l'annuler apres
Response.Redirect("page2.asp")

' On redirige uniquement pour les visiteurs ordinaires,
' mais pas pour clients connus
If Session("est_client") Then
	Buffer.Clear
End If

' On finit de contruire la page normalement
%>

...

<%
' Seuls les clients importants peuvent voir ce qui precede
If Not Session("client_important") Then
	Response.Clear
Else
	Response.Flush
End If
%>
...

Warning: main(../include/imprimable.php) [function.main]: failed to open stream: No such file or directory in /homez.13/themanua/www2/asp/asp_response_buffer.php3 on line 136

Warning: main() [function.include]: Failed opening '../include/imprimable.php' for inclusion (include_path='.:/usr/local/lib/php') in /homez.13/themanua/www2/asp/asp_response_buffer.php3 on line 136


Copyright © 2000-2002 themanualpage.org - This site is submissive to the terms of the GNU GPL and FDL licences.