Does Safari support pipelining?

Sunnz

Who wants a stylus?
Like starts rendering and displays parts of a web page before one is completely downloaded?
 
Yes, like macworks said, it does. Does it quite frequently to me.

There are some caveats, though, which are intrinsic to the type of layout the web page author used: for example, cells in a table will begin to render as soon as the information is downloaded, whereas layers in a CSS layout will only appear once all information in that layer is downloaded (or vice-versa, something like that). Of course, this is a function of the layout and not the browser, so it would be similar under Firefox, IE or any other browser that's halfway standards-compliant.
 
For the record, "pipelining" is a feature of HTTP 1.1, and refers to the method a browser can use to retrieve data from a server. How/when a browser displays that data is another matter entirely.

So...to answer your question, yes it does, but that's not what's generally called pipelining.

You can change Safari's initial rendering delay with tools like SafariSpeed, or directly from Terminal by typing:

defaults write com.apple.safari WebKitInitialTimedLayoutDelay 0.4

Where "0.4" is the number of seconds Safari should wait before displaying an incomplete web page. The default is 1.0, which many users find excessive. SafariSpeed and other utilities set it to something like 0.001, which I think is too low. 0.2-0.5 seems about right to me.

You'll need to quit Safari before making any changes to this setting.
 
For the record, "pipelining" is a feature of HTTP 1.1, and refers to the method a browser can use to retrieve data from a server. How/when a browser displays that data is another matter entirely.
Damn, I just knew I would mix up the terms from my design course!!

Thank you!

BTW, where do you get that command from? (defaults write com.apple.safari WebKitInitialTimedLayoutDelay 0.4)

Is there any documentation anywhere so that I can tweak Safari's settings myself? (Something like about:config on Firefox.) I don't want to install funky plug-ins...

Thanks.
 
The "defaults" command manipulates plist files, which are used by applications to store preferences in your Preferences folder (~/Library/Preferences). "com.apple.safari" is the name of the plist file, "WebKitInitialTimedLayoutDelay" is the name of the property key within that plist, and "0.4" is the name of the desired value of that property.

You can write any value of any plist using this method.

As for how to figure out what property names are valid and what they do...that's the tricky part. :) If you have a plist editor (Apple includes one with their free developer tools, which came with your copy of OS X, and there are third-party ones like OmniOutliner), you can open a program's plist and see all the key-value pairs in the plist and guess what they do based on their names.

Personally, I found out about this particular property on another web forum. :)
 
Cool thanks. I got Xcode installed btw... is that the thing that have plist editor?
 
There's a separate program for it, located at "/Developer/Applications/Utilities/Property List Editor.app"
 
Back
Top