Well, just in case this helps anyone, I managed to get it working on most of the current browsers.
My first problem was a missing import statement (definite "DOH!" moment there), but once that was resolved Firefox steadfastly refused to co-operate. The fix was to use a boundary indicator then specify the content type for every subsequent chunk of data, something along these lines: # during initial converstation status = '200 OK' response_headers = [('Content-type','multipart/x-mixed-replace')] if string.find(environ['HTTP_USER_AGENT'],'Firefox') != -1: response_headers = [('Content-type','multipart/x-mixed-replace;boundary=x0x0x0x')] writer = start_response(status, response_headers) # during subsequent conversations if string.find(environ['HTTP_USER_AGENT'],'Firefox') != -1: writer('Content-type: text/html\r\n\r\n'+text+'\r\n\r\n--x0x0x0x') else: writer(text) Now, in Firefox the behavior is that it completely replaces the previous chunk, while in IE8, Chrome, Safari it simply adds to the existing content. It doesn't work in Opera yet (with either method), I haven't been able to determine why but I'll continue to work on it. Sorry for the hassle everyone!
_______________________________________________ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com