Re: [webkit-dev] XMLHttpRequest and readyState==3

2007-06-27 Thread Kalle Alm
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Maciej Stachowiak wrote:
 This is a networking layer issue - it buffers the data up to some limit
 depending on what MIME type you send it with. Two workarounds that I
 think will work:
 
 1) prime the connection with 256 bytes sent before any of the real data.
 2) Use a MIME type that won't be subject to sniffing (I think
 application/xml as opposed to text/xml may fit the bill).

Thanks for the ideas! We tried both of these fixes (separately and in
combination), but unless we're doing something wrong, neither is
actually working 100%:
- - In FF/linux, they all work.
- - In Safari/windows, neither works.
- - In Safari/Mac OS X, the 1+2 worked a little, but still missed some
input.

The URL for 1+2: http://www.synchroedit.com/pf1/
The URL for 2 only: http://www.synchroedit.com/pf2/
Sources 1+2: http://www.synchroedit.com/pf1/perl-fix-1.tar.gz
Sources 2: http://www.synchroedit.com/pf2/perl-fix-2.tar.gz

The first solution would most likely work if we increased the garbage
from 256 chars to something like 512, but the overhead at 256 is already
at something akin to 300% more data in transit, which sounds like a
major performance loss. If at all possible, getting things to work
without priming the connection would be ideal.

Any ideas?

- -Kalle.

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFGgnoGdNQyXs/kj34RAi8PAJ4rfal6Fh9M4sQa6KLa3E28GnDWCQCffcvJ
BSZD/iRbZnqioB3wEDBjGDA=
=yV9f
-END PGP SIGNATURE-
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] XMLHttpRequest and readyState==3

2007-06-27 Thread Kalle Alm
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Sorry for spamming the list, but thought I'd add that I've filed this as
a bug here: http://bugs.webkit.org/show_bug.cgi?id=14431

- -Kalle.


Kalle Alm wrote:
 Maciej Stachowiak wrote:
 This is a networking layer issue - it buffers the data up to some limit
 depending on what MIME type you send it with. Two workarounds that I
 think will work:

 1) prime the connection with 256 bytes sent before any of the real
data.
 2) Use a MIME type that won't be subject to sniffing (I think
 application/xml as opposed to text/xml may fit the bill).

 Thanks for the ideas! We tried both of these fixes (separately and in
 combination), but unless we're doing something wrong, neither is
 actually working 100%:
 - In FF/linux, they all work.
 - In Safari/windows, neither works.
 - In Safari/Mac OS X, the 1+2 worked a little, but still missed some
 input.

 The URL for 1+2: http://www.synchroedit.com/pf1/
 The URL for 2 only: http://www.synchroedit.com/pf2/
 Sources 1+2: http://www.synchroedit.com/pf1/perl-fix-1.tar.gz
 Sources 2: http://www.synchroedit.com/pf2/perl-fix-2.tar.gz

 The first solution would most likely work if we increased the garbage
 from 256 chars to something like 512, but the overhead at 256 is already
 at something akin to 300% more data in transit, which sounds like a
 major performance loss. If at all possible, getting things to work
 without priming the connection would be ideal.

 Any ideas?

 -Kalle.

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-dev

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFGgnwwdNQyXs/kj34RApajAJ46HjDExd9dkdU5IPYzIqiuebhlJACfcBe1
5FLFKAaFmqard8c2FngI96I=
=hR1E
-END PGP SIGNATURE-
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] XMLHttpRequest and readyState==3

2007-06-26 Thread Maciej Stachowiak


On Jun 26, 2007, at 10:29 AM, Christopher Allen wrote:


Geoffrey Garen wrote:

From code inspection, I see that XMLHttpRequest updates responseText
every time it receives data.

Perhaps you're seeing the results of slightly different networking
implementations. For example, you might need to send data in larger
chunks in order to convince the networking layer to flush its data  
up to

the application level.


We've written up a simple example using perl cgi and js/xhr to
demonstrate this problem. In Firefox, the expected behavior appears.
Every second, a new line appears counting up from 1 to 10. In Safari,
there's a 10 second delay with nothing, and then 10 lines appear
counting up from 1 to 10 all at once, just as the readyState goes from
3 to 4. We never see readyState going from 3 to 3 as we do with
Firefox.

URL demonstrating this behavior: http://www.synchroedit.com/pt/

URL with source code for this test:
http://www.synchroedit.com/pt/perl-test.tar.gz

The perl cgi script has autoflushing enabled, which means the buffer
is flushed for every newline. In Firefox, the responseText is updated
whenever the perl side sends and flushes data, while Safari's
responseText stays empty until the perl cgi closes the connection and
the request enters readyState 4.

So to return back to our original question -- this capability is
needed for synchronous applications that keep an ongoing connection to
the server to avoid polling and other performance issues. Is this
capability supposed to be to in Safari, thus our test above
demonstrates a bug? Are we missing something? Is there an alternative
approach that would make this behavior work right in WebKit/Safari 3
as well?


This is a networking layer issue - it buffers the data up to some  
limit depending on what MIME type you send it with. Two workarounds  
that I think will work:


1) prime the connection with 256 bytes sent before any of the real  
data.
2) Use a MIME type that won't be subject to sniffing (I think  
application/xml as opposed to text/xml may fit the bill).


Regards,
Maciej

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-dev