What is meta? ×
Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 127 Stack Exchange communities.

When I'm looking at a good question I can't answer I will often upvote it and immediately click on the SO logo to go back to the homepage. What then happens, in very quick succession, is:

  1. The upvote button turns orange, which indicates to me that the vote succeeded.
  2. An error message box appears: "An error has occurred - please try again"
  3. The homepage loads.

If I cared at all about that vote I then have to click back, click the vote button again, wait a little bit to be safe, then click the homepage link again. This happens to me at least twice a day and it's quite annoying.

Having implemented such AJAX requests myself I have a pretty good idea of what's happening: the AJAX request fails because the page is being unloaded and there is really no way to stop that. I can think of two options:

  1. Don't show the error if the page is unloading (detected by the window.onbeforeunload event firing). This is OK if you don't really care about the result of the operation, but I do in this case.
  2. Don't show a visual indication that the vote succeeded until you've received a successful response from the server. That's what I'd like to see implemented.

If you want to get cute about it, you could show some sort of a "vote in progress" indication, like a lighter shade of orange, which turns to the normal orange once a successful response is received.

There are also other times when this would come into play, like when a vote is too old to be changed and a change initially looks like it succeeded, but then you get an error from the server. I think this change would improve that user experience, too.

share|improve this question
1  
The last thing I do on a page before leaving is vote, so I think the lighter shade is a good idea. Switching to the full colour only when the vote has been confirmed by the server makes sense. –  Andy E Nov 3 '10 at 12:59
1  
@Jeff: Is there any reason for declining this, other than "we don't think it is important enough to invest development time in this"? –  Paŭlo Ebermann Aug 22 '11 at 12:26
add comment

2 Answers

I completely agree this should be the behavior. To me it's a matter of the intended lifecycle for voting. Aren't I supposed to vote after reading the question (or answer) completely? At this point I'm done with the content, I would like to submit my vote and move on. This means I'm very likely to leave the page immediately after voting...and often losing my vote currently.

As it stands now you get a false positive that I voted...I wouldn't navigate away from the page if I didn't have that, I would wait for the server to respond, see that my vote actually counted then move on. This is frustrating because I only vote after completely reading something, and that's what I'm supposed to do, but the UI is currently lying to me when doing that.

I recommend a simple spinner in page of the vote icon you clicked while it's in progress to make this tremendously clear. SO doesn't show my comment or flag in the page until the AJAX request is complete making sure they happened...why should votes be different?

share|improve this answer
    
you're absolutely right. Where will we find someone who can implement such a change? –  Pops Feb 8 '11 at 14:12
add comment

I don't understand how what you're proposing solves the problem.

Even if the vote isn't indicated until a server response is received, navigating away from the question too quickly will still force you to go back to cast the vote again.

Slow down. Unless you're on a high-latency connection, registering a vote doesn't require a long wait anyway.

share|improve this answer
4  
It will solve it by letting me know when I can safely navigate away. To simply "slow down" everything I do is not an effective solution - all users browse at the speed at which they're comfortable and it would take constant conscious effort to do it at a different speed. And what if I am on a high-latency connection? –  EMP Jul 2 '10 at 5:42
    
@Evgeny: I don't get it. You're clicking away so fast, yet still slow enough to be able to wait for the graphic to change? If you are on a high-latency connection, you should expect that your actions will take longer to take effect. In that case, it may make sense, but at the same time, you'll have to slow down anyway. –  Jon Seigel Jul 2 '10 at 16:10
    
@Evgeny: To be clear, I agree with what you're asking for (it would be a nice-to-have feature), but I just don't understand how the current system isn't meeting the needs. –  Jon Seigel Jul 2 '10 at 19:20
2  
@Jon Siegel, I wait to receive confirmation of my action, then click away. I do this without even thinking about it and I'm sure other users do as well. I'm clicking away so fast, because it looks like I don't need to wait any longer - the vote succeeded. In actual fact, it hasn't. –  EMP Jul 4 '10 at 22:42
3  
@Jon This happens to me as well, exactly as @Evgeny described the process - so he's not the only one. I don't think I'm being overly quick either - vote, arrow turns orange right away, click the logo, and just before the home page loads, I see the error message saying "An error occurred" –  Jared Harley Sep 30 '10 at 7:53
    
@Jon: Let's face it, SO's server hasn't been at its best recently. I haven't been in this situation lately, but I've been in it before where my vote has taken 5+ seconds to go through, and I'm on a low-latency 40mb/s connection. –  Andy E Nov 3 '10 at 12:57
add comment

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .