Safari not fully multi-threaded?

Posted by Pierre Igot in: Macintosh
August 8th, 2003 • 1:20 am

I just noticed this today while holding down my mouse button on a pop-up menu in an online form on a web page form in Safari… I am often impatient about web pages loading (with my slow modem connection) and tend to start filling out forms even when the rest of the page content (typically unnecessary picture files that don’t add anything to the contents of the page and what I want to do with it) is not yet fully loaded. In that case, the form page (it was a page on Apple’s web site) contained several pictures that were still in the process of being downloaded while I was already busy filling out the form.

I noticed that, while I was holding the button down, the page ceased to be updated. It was as if the downloading process was frozen as long as I was holding the mouse button down. As soon as I released the mouse button, things started happening again.

I’m not sure whether Safari was still actually downloading stuff and saving them on disk and just waiting for me to release the mouse button to actually UPDATE the display — or whether the downloading process itself was interrupted while I was holding the mouse button down.

In any case, I am a bit surprised to find that Safari is not fully multi-threaded. It is, after all, a brand new application, developed specifically for Mac OS X — and I know that Mac OS X fully supports ongoing threads while the user holds the mouse button down. Heck, in Mac OS X I have even seen menu items actually changing in real time while I was holding the mouse button down to display the menu in question. It seems to me that Safari should be able to continue updating the page display even while the user is holding down the mouse button.

Then again, since Apple’s web pages, like so many other web pages, often don’t include the required width and height parameters in img tags, it often happens that Safari has to redraw existing elements in the page, including form elements, because the space it had allocated to images while they were being loaded was not the right size. This means that, if Safari were multi-threaded and actually updated the contents of the page while the user was holding down the mouse button on a form pop-up menu, the pop-up menu in question might end up being moved to a different location — which could have rather unsightly effects and be rather confusing for the user. So maybe that’s why the Safari engineers have decided to freeze the page updating as long as form elements are being used…

Comments are closed.

Leave a Reply

Comments are closed.