TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Gmail’s fake loading indicator (2020)

194 pointsby pcr910303over 3 years ago

42 comments

alberthover 3 years ago
Progress bars are inherently difficult to create since you need to predict the future to provide an accurate status on progress.<p>Let&#x27;s just consider what would factor into an accurate status bar. Gmail would need to know <i>in advance</i>:<p>1. the total payload size (which is different for everyone since some might have locally cached assets and everyones inbox size is different)<p>2. would need to know # of assets to be downloaded by the user (since # of assets, not just file size, affects load time)<p>3. how fast your computer will render the webpage (different processors, browsers, versions, etc all affect load time)<p>4. how fast is your internet connection and pack loss (more pack loss on mobile networks, etc)<p>5. is there any blocking content on the page that will affect delaying &quot;first paint&quot;. (Why things like Lighthouse exists)<p>And many more factors.<p>This is unneeded complexity when instead, you can just display an animation to distract the user while the page loads.<p>This is 100% a K.I.S.S.
评论 #29189681 未加载
评论 #29188235 未加载
评论 #29189421 未加载
评论 #29191141 未加载
评论 #29189765 未加载
评论 #29188228 未加载
评论 #29189469 未加载
评论 #29192842 未加载
评论 #29192559 未加载
评论 #29188707 未加载
评论 #29189075 未加载
Ndymiumover 3 years ago
I remember Internet Explorer also doing this back in the day. When I was a kid I assumed it was showing correct progress, and I&#x27;d be patiently waiting for no payoff. Only much later I learned it meant nothing, it was just showing it wasn&#x27;t dead.<p>I&#x27;m not sure about GMail&#x27;s case, but I recall Mac OS X (back when it was called that) used to do something like this. Since showing a correct progress bar doesn&#x27;t make it look so nice (it might be stuck at 90% for longer than it took to get there) and might be difficult to estimate, they instead wrote the last boot time into a file and on the next boot would render a smooth progress bar that would follow the timer. In my experience it made for a reasonable estimation of the boot time and I thought it was a clever solution.
评论 #29185912 未加载
评论 #29185494 未加载
评论 #29185602 未加载
评论 #29188266 未加载
pohlover 3 years ago
<i>This defeats the point of a loading bar: it’s supposted to give an estimate of progress, not fill up at a rate entirely unrelated to actual loading!</i><p>I&#x27;d say it&#x27;s actually fulfilling the real point of a loading bar: to keep the user pacified through some period of waiting that you couldn&#x27;t engineer away.
评论 #29189050 未加载
评论 #29191107 未加载
评论 #29188411 未加载
评论 #29193150 未加载
marcodiegoover 3 years ago
The first time I&#x27;ve seen something similar was in IE5, I think. The loading indicator oscillates before connecting to the server. Once connected, it started progressing even without receiving any packet. It was easy to tell because win9x had a nice indicator when network packets were sent or received.<p>It seemed very strange since the beginning: &quot;It is not right... it is progressing but I see no packets incoming...&quot;. The progress indicator then progresses slower and slower until it reaches half the bar exactly when timeout is reached and a popup with an error message is shown.<p>It was very frustrating because I could no longer trust the browser. Now, if I want to know if there is progress or not, I have to look at the network indicator which could be disturbed by other network activity. At the time, connections failing were not all that rare and being able to quickly retry to load the page was an important time saver because you didn&#x27;t had to wait for the timeout.<p>I once saw my father, who was not well versed, waiting for a page that simply would not load, but instead of retrying he just kept waiting until the indicator slowly slowed down to reach half the bar and only then tell him that the timeout was reached. I approached and said: &quot;It is not loading, try again.&quot;, he said: &quot;It is progressing!&quot;, I said: &quot;I don&#x27;t think it is progressing... I think they are lying to us.&quot;. We then went back to Netscape Navigator.<p>This is bad UI. No matter what experts or even tests say. A lie is a lie and is not something a system should do to the user. The correct way to do this is to use an indicator that oscillates or runs around. I think they were invented for exactly that case.
评论 #29190677 未加载
评论 #29189689 未加载
评论 #29193432 未加载
dijitover 3 years ago
Honestly though: the idea of loading 20MiB of JS to read a 24KiB message is weird.<p>Like: I get it, traditional mail clients kinda suck, they feel bloated and janky. But the more I think of it, the more I think that webmail was a mistake, especially webmail as heavy as GMail has become.
评论 #29185869 未加载
评论 #29185413 未加载
评论 #29185462 未加载
评论 #29185557 未加载
评论 #29185499 未加载
评论 #29194614 未加载
评论 #29191453 未加载
评论 #29185477 未加载
pjeremover 3 years ago
All progress bars are like this nowadays. At least for fast jobs (seconds to minute) where estimating time is hard, unreliable, and probably useless.<p>Better fake a progress bar than add dozens of time estimation code for no real value, as long as errors are managed.<p>The only thing you should try to manage is to detect when things are stuck for real and stop the fake animation &#x2F; manage the situation. But even this is hard.<p>But all of this is just exploiting a psychological gimmick which make you feel than an animation with a predictable end feels to end faster than, say, some spinner.
makeitrainover 3 years ago
Progress bars are like project managers. They try to provide realistic perspectives on what&#x27;s going on, but at the end of the day they only have a vague understanding of what&#x27;s happening and how much work is left.
评论 #29187214 未加载
gambitingover 3 years ago
I had to code a loading bar indicator in a big online-only game few years ago and well, not really proud of the solution.<p>It was basically that 0-90% of the bar showed the actual loading process of the game&#x27;s assets, then the last 10% would load in only if the server was ready to let you in, which obviously we had no control over and no way to realistically estimate it.<p>So when servers weren&#x27;t under load, the load bar was realistic, you were waiting for the assets to load, then once you got to 90% it would just lerp over one second to 100% for smoothness and load you in, but if the servers were under load you&#x27;d get to 90% and nothing would happen whatosever.
评论 #29191051 未加载
AtlasBarfedover 3 years ago
I find this author&#x27;s semi-outrage amusing. Oh, what a world of deception your virgin senses have yet to comprehend.<p>The deceptive loading bar has a loooong history through a solid two decades of early MacOS and Windows.<p>I honestly think the early status bars are the subconscious inspriation for the software estimation joke about the first 90% of code takes the first 90% of budget, the last 10&amp; take the other 90%
editkidover 3 years ago
The psychology of these versus, for example, an infinite spinner strikes me as interesting. The loading bar, even though it&#x27;s fake, has an end and makes it feel like you&#x27;re getting closer to the wait being over.<p>Works for me.
brainlessdevover 3 years ago
So is the progress bar on GitHub and many webpages. I think in most sites, users aren&#x27;t interested in how much it&#x27;s loaded but rather in the fact that it&#x27;s loading at all (note that this doesn&#x27;t apply to all progress bars).<p>Implementing a fake progress bar can be done once and it works everywhere, but a controlled progress bar that&#x27;s accurate needs to be connected to some actual progress data, and this is engineering work for questionable results.
chrisMyzelover 3 years ago
Youtube &amp; Netflix do this the same way…actually a lot of JS&#x2F;TS frontend frameworks nowadays have this 1px loading bar at the top which behaves the same way (speedup, slow down never reach 100%)
评论 #29189496 未加载
rswskgover 3 years ago
I got a project stopped at work when I revealed something similar to the product director. Our competitor had a live incrementing number of currently available positions which the product directer thought was real, I had to show him the code and that it reset each time we loaded the browser.<p>Saved <i>alot</i> of annoying conversations from that.
jeffbeeover 3 years ago
They basically borrowed this from the MacOS X booting progress bar, which is also 1000% fake.<p>Still, this progress animation does serve a purpose. Normally it is prompt, but if you see it at all it means that Gmail is behind the scenes trying to make your account work correctly. So in that sense it serves as a kind of binary indicator.
throwawayseaover 3 years ago
One thing I haven’t figured out is why Gmail’s performance is so bad in Firefox. It feels like it takes noticeably longer to load and to perform actions compared to Chrome. For example, if you take some action and immediately try to close the tab, you’ll get a pop-up warning about an action that may not be saved if you leave the page. That doesn’t happen on Chrome. But I find it hard to believe that this is some shortcoming of Firefox versus a fault of Google’s. Anyone know what’s going on?
评论 #29190765 未加载
lifeisgood99over 3 years ago
Gmail still provides a simple HTML page: <a href="https:&#x2F;&#x2F;support.google.com&#x2F;mail&#x2F;answer&#x2F;15049" rel="nofollow">https:&#x2F;&#x2F;support.google.com&#x2F;mail&#x2F;answer&#x2F;15049</a>
评论 #29190761 未加载
评论 #29188676 未加载
kangaliooover 3 years ago
There&#x27;s a _ton_ of those pseudo loading bars<p>I wish so hard people would make real loading bars. Ones that _actually_ give you an indication of progress, that don&#x27;t stall forever on 5% and then jump to 100% instantaneously, or rest on 100% for half a minute before actually proceeding.<p>Idk, it can&#x27;t be that hard, right? You know what your software is doing; let each part of the process report how far along it is, and together with rough knowledge how much time each part takes proportionally, you can calculate a very useful progress bar.
评论 #29188503 未加载
alphakappaover 3 years ago
While not technically a precise loading indicator, this seems to be along the lines of giving a better user experience than anything else. Gmail has real dark patterns though. One of which is to load the emails first, and then after a short delay (even on a fast connection) load advertisement rows on top. So if you attempt to click one of the new emails on top, you&#x27;re just as likely to hit an ad that just loaded in that space.<p>Probably creates a ton of false clicks for whoever is paying for that advert.
评论 #29190730 未加载
g_schover 3 years ago
Anecdotally I&#x27;ve noticed that nearly all progress bars on major apps&#x2F;sites are fake these days. Instagram and Facebook also have &quot;progress indicators&quot; (usually used for uploads) that just show asymptotic progress regardless of whether anything is happening.<p>I know it&#x27;s a minor issue because rendering an accurate progress bar is a hard problem, but in my view this is just another example of how behavioralism leads to a generalized erosion of trust in the interfaces and technologies people use. It may be true that, in an A&#x2F;B test, users who see the fake progress bar are happier or more patient. But at some point, people are going to realize they&#x27;re being lied to, and they&#x27;re going to wonder what else you&#x27;re lying to them about.<p>This is why I think the stories of &quot;[$App] listens to your conversations&quot; &#x2F; &quot;[$App] charges you extra when your phone battery is low&quot; etc. remain so persistent, even when there&#x27;s sometimes little or no evidence to back them up. If designers have decided that a little psychological manipulation is okay, why wouldn&#x27;t they be manipulating us elsewhere too?
somehnacct3757over 3 years ago
Tricks like this are self-perpetuating because it teaches users that progress bars are UI meant to model a duration. This is of course impossible to calculate without a crystal ball, as other posters have pointed out. But since it&#x27;s what users expect, web developers must create an animation that meets user expectation.
planbover 3 years ago
Progress bars are hard. You could try to come up with something that guesses the user&#x27;s connection speed from the first few bytes, somehow checks what&#x27;s already in the cache and you will still have an inaccurate progress bar. Probably even one that isn&#x27;t fullly filled up before the page is ready.
rektideover 3 years ago
gmails application architecture has most decidedly not scaled to the bigger application it is today. once a rare gem of a just in time loading app, now it&#x27;s just so so so so so so slow. unloved &amp; destitute.
Mizzaover 3 years ago
They all are.
评论 #29185486 未加载
PikachuEXEover 3 years ago
After switching to Thunderbird I can never go back to Gmail.<p><a href="https:&#x2F;&#x2F;www.thunderbird.net&#x2F;en-US&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.thunderbird.net&#x2F;en-US&#x2F;</a><p>For really important mails I use ProtonMail.
评论 #29185517 未加载
评论 #29189388 未加载
drawqrtzover 3 years ago
I feel like this is the case for soo mamy loading bars. Especially with games. Loading bar zips to 99% and then you wait for a few minutes. Yea right. I guess it is really hard not to make it frustrating.
Causality1over 3 years ago
Deceiving the user into thinking it&#x27;s a tool for them while actually being a way to manipulate them. For Google that&#x27;s extraordinarily on-brand.
deanCommieover 3 years ago
It&#x27;s so weird the cycles of idealism that permeate through our industry with every new generation of tech nerds.<p>* Project management and software development methodologies are bullshit! Let&#x27;s all follow the &quot;Just get shit done&quot; process!<p>* Loading icons shouldn&#x27;t lie!<p>* Unlimited plans should be unlimited! If your business model can&#x27;t scale with everyone backing up 10Petabytes of manga, don&#x27;t offer it to me!
ok123456over 3 years ago
The big selling point of GMail originally was the amount of space you got. Earlier versions of the login page advertised this by having a bit of javascript that showed an increasing number showing you how the quota was increasing.<p>If you inspected source, it just had a little exp function with different constants depending on how far in the future it was.
BigBalliover 3 years ago
&quot;This defeats the point of a loading bar: it’s supposed to give an estimate of progress&quot;... A loading animation is supposed to placate an eager user and deliver a more pleasant UX (by not making us wonder if something is wrong).
globular-toastover 3 years ago
I&#x27;ve always assumed progress bars are either fake or meaningless, unless I know otherwise. Meaningless ones are like the file transfer ones which don&#x27;t take into account the overhead of small files vs large files.
评论 #29187982 未加载
marcinignacover 3 years ago
Often longing for the old days of Flash websites with byte per byte precise loading bars that as slow as they were back then they actually meant something.
arduinomancerover 3 years ago
It’s not worth the extra complexity for something that loads that fast.<p>As a user why would I even care about a real loading bar here?<p>I just care whether the page loads or not.
sk5tover 3 years ago
Of course there is an xkcd for the long history of terrible loading-progress bars: <a href="https:&#x2F;&#x2F;xkcd.com&#x2F;612&#x2F;" rel="nofollow">https:&#x2F;&#x2F;xkcd.com&#x2F;612&#x2F;</a>
rahimialiover 3 years ago
A loading spinner would convey the exact same information without being misleading.
cab404over 3 years ago
I knew that Google is evil, but that&#x27;s whole another level.
mdomsover 3 years ago
Wait until you hear about Every Progress Bar Ever.
martini333over 3 years ago
Welcome to the real world
ewagsjrover 3 years ago
more importantly, why does it take so long to load my email...
pabbasianover 3 years ago
not that easy, almost everybody does or used to do this.
louissanover 3 years ago
They should add a &quot;dislike&quot; button for this, me thinks 8o)
DonHopkinsover 3 years ago
Percent Done Progress Indicators 1985<p><a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=gnzaS18XuJ4" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=gnzaS18XuJ4</a><p>&gt;Brad Myers<p>&gt;This video reports on early research about progress bars. It was previously published as: Brad A. Myers. Percent-Done Progress Indicators in Practice and Experiments, Videotape shown at SIGCHI &#x27;85. San Francisco, CA. Apr. 14-18, 1985. SIGGRAPH Video Review, Issue 19, no. 6.<p>&gt;[...] This Buddha, used in some programs at the University of Toronto, shows that patience is in order.<p>&gt;[...] A further improvement improvement is to use something I have called a &quot;Percent Done Progress Indicator&quot;. This combines all the advantages that I have listed before. In addition to showing that works is being done and progress is being made, it also indicates approximately how long it will be before the job is finished.<p>&gt;The earliest reported use of progress indicators was apparently by Robert Spence in 1976, with something like this clock face.<p>&gt;I used progress indicators in a file transfer program in 1978, and integrated them into the PERQ POS operating system in 1980 as shows here. When the hand reaches the bottom of the screen here, the program will be compete.<p>&gt;[...] For those program that cannot calculate how long they will run, it is still a good idea to show that they are executing using a technique called &quot;Random Progress&quot;. In the PERQ POS operating system, as progress is made, the busy bee flies around the screen.<p>&gt;And in the Sapphire window manager, the pattern in the progress bar continuous changes. We have already seen this used in earlier example such as this one from Xerox.<p>&gt;IT IS GENERALLY A GOOD IDEA TO USE TECHNIQUES LIKE THIS THAT WILL NOT BE CONFUSED WITH PERCENT DONE PROGRESS.<p>(Brad didn&#x27;t actually shout that, but it&#x27;s an important point so I capitalized for the benefit of Google and their GMail users! ;) )<p>&gt;[...] The experiment suggests that percent done progress indicators can have a positive effect on user&#x27;s attitudes towards the computer system.<p>&gt;Intuitively, this is because they can decrease the user&#x27;s anxiety while waiting for jobs to finish, and therefore increase their satisfaction with the system.<p>&gt;Progress indicators also give the user enough information so that they can estimate when jobs will be finished, so that other activities can be scheduled appropriately.<p>&gt;Obviously, progress indicators are not a solution to slow execution times, but they do make the waiting more tolerable.<p>&gt;The benefits of progress indicators are therefore sufficient to warrant including them in many future computer systems.<p>Who Made That Progress Bar?<p><a href="https:&#x2F;&#x2F;www.nytimes.com&#x2F;2014&#x2F;03&#x2F;09&#x2F;magazine&#x2F;who-made-that-progress-bar.html" rel="nofollow">https:&#x2F;&#x2F;www.nytimes.com&#x2F;2014&#x2F;03&#x2F;09&#x2F;magazine&#x2F;who-made-that-pr...</a><p>&gt;“People wait for all sorts of things every day, sometimes more happily than others,” wrote the interface designer Bob Stahl in a 1986 article for Computerworld. “The problem is how the user feels about waiting.” At the time, machines were often slow and unreliable, and users didn’t always know when their programs crashed. A “progress bar” might mitigate frustration, Stahl suggested, by signaling that bits were flipping with a purpose somewhere deep inside the C.P.U.<p>&gt;The push to make computers more user-friendly gained momentum in the early 1980s. At a 1985 conference on the nascent field of computer-human interactions, a graduate student named Brad A. Myers presented a paper on the importance of what he called “percent-done progress indicators.” “I had the sense that they were useful and important, and not used as much as they should have been,” Myers says today. (He’s now on the faculty at Carnegie Mellon University.) He told his colleagues that progress bars made computer users less anxious and more efficient, and could even help them to “relax effectively” at work.<p>&gt;To prove his point, Myers asked 48 fellow students to run searches on a computer database, with and without a progress bar for guidance. (He used a capsule that filled from left to right — like a giant thermometer from a charity drive, tipped on its side.) Then he had them rate their experience. Eighty-six percent said they liked the bars. “People didn’t mind so much if it was inaccurate,” Myers says. “They still preferred the progress bar to not having anything at all.”<p>&gt;Since the ‘80s, other kinds of progress bars — audio, tactile — have been suggested, but the horizontal form prevails. There have been some refinements: Bars now strobe in color, or show an animated ribbing that slides back against the grain. These effects can fool the brain and make a bar appear to move more quickly, says Chris Harrison, another Carnegie Mellon scientist. Because people hate to see a progress bar reach a standstill, some inch forever forward even while a task is stalling out. For Harrison, these tricks raise a funny question: “Do users really want the truth, or do they want the more relaxed, more comfortable experience?”<p>&gt;There’s a deeper question still: Is a progress bar a tool to make us more efficient or a sop that helps us pass the time? Its ancestor, the pen-and-paper “progress chart,” showed up in the early 20th century and was hailed at the time as a major innovation. It “refers all facts to the irreducible and final element of human life — time,” wrote Walter Polakov, an early pioneer in project management (and dedicated Marxist), in 1923. “Because it is true to the human dimension, it is both human and humane; hence it obliterates conflicts between men and management, promotes the fullest exercise of man’s creative forces and places work in its proper relation to life.”
评论 #29188339 未加载
bsergeover 3 years ago
Yeah, their spam filter is also fake. You &quot;report as spam&quot;, at least on Android. So it&#x27;s up to Google to decide if it&#x27;s actually spam.