Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a function in Django / Python similar to PHP flush() that lets me send part of the HTTP response to clients?

According to the performance tip from Yahoo:

When users request a page, it can take anywhere from 200 to 500ms for the backend server to stitch together the HTML page. During this time, the browser is idle as it waits for the data to arrive. In PHP you have the function flush(). It allows you to send your partially ready HTML response to the browser so that the browser can start fetching components while your backend is busy with the rest of the HTML page.

Example:

   ... <!-- css, js -->
    </head>
    <?php flush(); ?>
    <body>
      ... <!-- content -->

Is there a function in Django/Python that;s simialr to PHP's flush()?

Thanks

like image 617
Continuation Avatar asked Jun 10 '11 00:06

Continuation


2 Answers

No. Is the short answer.

The long answer depends what you're using between the webserver and python: You could implement it with WSGI but it wouldn't be a whimsical task.

Maybe start here? http://www.python.org/dev/peps/pep-0333/#the-start-response-callable

like image 142
John Mee Avatar answered Oct 19 '22 23:10

John Mee


http://www.evanfosmark.com/2008/06/simple-output-buffering-in-python/ - Good article on the topic. Should do exactly what you need using either option provided.

like image 42
David Fells Avatar answered Oct 20 '22 00:10

David Fells