<br><br><div class="gmail_quote">On Mon, Jun 28, 2010 at 3:11 PM, P.J. Eby <span dir="ltr">&lt;<a href="mailto:pje@telecommunity.com">pje@telecommunity.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div><div></div><div class="h5">At 01:01 PM 6/28/2010 -0600, Aaron Fransen wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
One of the nice things about mod_python is the req.write() function.<br>
<br>
Although I realize it&#39;s somewhat of an abuse to the http protocol, it&#39;s handy being able to periodically update the client browser with a status message for a long-running job.<br>
<br>
So handy in fact that I have a number of applications that rely fairly heavily on it as a means of keeping the client (person) happy instead of just showing them the default &quot;browser busy&quot; notification.<br>
<br>
There are a couple of workarounds, neither of which are ideal:<br>
1. Take them immediately to a secondary page, then submit the actual job automatically on that second page.<br>
2. Instead of using HTTP POST, use an HTTP Request Object (ie. Ajax).<br>
<br>
Both of them involve significantly more development effort than an equivalent req.write().<br>
<br>
Is there a way to emulate the periodic-write functionality in WSGI?<br>
</blockquote>
<br></div></div>
Each string yielded (or passed to the write() callable returned by start_response) is supposed to be sent straight through to the client.<br>
<br>
As long as your WSGI stack is actually conformant to the protocol, that&#39;s all you need to do.<br>
<br>
</blockquote></div><br>Using mod_wsgi on Apache doesn&#39;t seem to exhibit that behavior.<br><br>Experimentation with the write() functionality variously produces *only* the helper text, or only the final result page, it doesn&#39;t incrementally update the user. This behaviour appears to be dependent on the inclusion of the Content-Length header field.<br>
<br>Yield command has not produced better results either, as it seems to produce the yield output then, as far as what&#39;s presented to the browser, exit the program completely (yet no errors in the log to speak of).<br>
<br>I&#39;ll experiment with yield some more to see if I can more sharply define what&#39;s going on.<br>