

Why new Firefox 13 'load tabs on demand' is bad UX.  - illumen
http://renesd.blogspot.co.uk/2012/06/why-new-firefox-load-tabs-on-demand-is.html

======
naner
I don't care if it is bad UX, I prefer it. I also turn off all the different
types of preloading in Chrome, but that's another story.

The loading of a page hardly takes any time at all, and I generally have to
reload the page when I finally get to older tabs anyways. And, this is silly,
but it feels wasteful to have all tabs loaded all the time when I'm only using
one or a few at any given moment.

Also I wouldn't mind if someone invented the "next great thing" to get us away
from tabs. They are unwieldy, encourage tab-hoarding, and it is difficult to
quickly locate a specific tab within a nontrivial number of open tabs. My
overloaded tab bar causes more anguish than my email inbox.

------
bengoodger
We used to do this in Chrome in our pre-release days. It was annoying to use
so we turned it off. The downside is that our session restore startup time
could definitely be better for large numbers of tabs. We could do a better job
of prioritizing loads. The right balance is doing the right thing for the user
without exposing an implementation detail IMO.

~~~
malnourish
Why not something like:

    
    
      If *n* tabs >= x
    
          Load tabs on demand
    
      Else
    
          Load tabs in background
    

x can be set by default at some arbitrary number and also be changed.

~~~
r00fus
Problem is, X will change based on a bunch of factors - type of browsing,
screen real-estate, etc. If that isn't taken into account, it could result in
what the user perceives to be a jarring interface shift.

We could use much more subtle algorithms - what about loading visible page,
then queuing up X background tabs to concurrently load (based tab order)? What
about a logarithmic backoff (ie, load up visible and several background pages,
then slowly load others)?

Fact is, user-time is valuable, compute time (and for most users) bandwidth is
not. What's valuable should be prioritized.

------
ta12121
Except for users that have dozens of tabs loaded because they're digital
packrats, and don't care about most of them most of the time.

~~~
phaylon
I fully agree, I currently have 174 tabs open, and that's actually a low
number for me (I closed a couple hundred down on the weekend). Having all of
them reload when I restart my browser was a nightmare before this feature.
Everytime I'd have to hunt down a couple tabs that contain auto-playing
videos. All while getting Basic Auth password popups for work related
resources.

Plus, it is much better for over-all performance since some websites switched
to an interface that polls for updates in the background.

Of course I know I'm not a typical user, so I wouldn't really argue against
this being an option that is off by default. But it would very much hurt my
user experience if it weren't available at all.

~~~
kbutler
Sounds like the ideal would be: preload the most recent N (configurable?)
tabs.

~~~
phaylon
That wouldn't hurt me :) I could even imagine it being useful to be able to
automatically load the surrounding context (say N pages left and right). Or
load all adjacent pages on the same domain as the active tab, which would be
quite useful if one often browses manuals.

------
agumonkey
What about throttled loading ? processing wise, what is in the background will
have 5% cpu allocated.

~~~
daeken
One thing that comes to mind is to do all the actual loading of assets (HTML,
CSS, images, JS, etc) but don't decompress/run anything. That way it can be
done 100% in the background and then spin up quickly without having to hit the
network once a tab is clicked.

Might have to look into trying something like that out; I work on Gecko, but
in totally different parts of the code, so it'd be a fun little experiment if
nothing else.

~~~
agumonkey
Resource prefetch would be good. I don't even know if it's possible for
applications to throttle cpu/thread usage.

~~~
illumen
Threads and processes can be given a lower priority.

Edit for @barrkel: you can also do more advanced resource shaping on some
OSen. Like limiting the number of network connections per second, and limiting
the bandwidth. There are also cpu throttling possibilities where you can make
sure a process only runs max 10% of cpu. Or as you say, putting scheduling
into the app is another possibility.

~~~
barrkel
Lower priority does nothing to throttle activity unless there is a higher
priority thread available to run; if the machine is otherwise idle, lowest
priority threads will use 100% of CPU resources. If you want to avoid high CPU
graphs, whirring fans from increased heat, etc., you need to make the thread
or process sleep occasionally.

For a thread, that's best done with explicit coding; for a process that isn't
sharing resources with other processes, you can get away with more invasive
freezing from the outside.

~~~
agumonkey
I guess it's possible to code a tiny arbiter that will wake 'background'
thread every few ms.

------
Yarnage
This seems like an issue only power users will have for the most part. Firefox
even has an option to disable this for power users.

However, with that being said, I'm not a big fan. I think agumonkey's
throttled loading is a nice idea though.

~~~
illumen
There's definitely different groups of users here. Without being able to spy
on firefox users, I'd guess the 5-8 tabs people are a decently sized group.
The one tab people, and the 50-400 tab people are probably other sizable
groups.

The new change helps out the 50-400 tab people a lot. Each group could all do
with a good UX though.

------
Toshio
Off-topic: has anyone on HN spent time cataloguing either good UX choices or
bad UX choices in today's web? I'm slowly beginning to take interest in user
experience design (I'm a backend developer).

