Hello Mimi, I wrote my response inline, following OSAF convention.
Mimi Yin wrote:
Ah! This is very helpful Jeremy. So can we isolate the scenarios where auto-save needs to fetch a lot of data from the server?Well if you can change what fields you sort on in dashboard, then *all of them*.*Edits to the recurrence rule are one of them.* + Changing the rule + Changing the end-date *What are some others? Will any of these be especially slow?* + Stamping and Unstamping+ Editing text fields seems equivalent to Pieter's gmail scenario and probably won't take a long time?- Addressing fields - Title - Location - Notes + Editing date/time fields + Editing time zones + Editing event status
Also, we've talked about app-response times in general, but what's a reasonable amount of time for users to wait, when waiting for a *'Saving operation' *in particular?Now I am going to separate "overt saving operation" where a user is in control, from a "covert" save operation where a user does no know that is what is happening.
*For a "covert" operation, a "hidden save", a "background save", an "auto save":* According to the literature and hard research ( I hope your ACM SIG-CHI membership is current) *its tied to human perception*(evolution is pretty slow in responding to paradigm shifts). About 1/10 of a second if it requires redraw. And no, I am not talking about games or simulation where the number is 1/30-1/60 of a second with all (sonic, visual, haptic) responses fully coordianted and synchronized to avoid motion sickness. Otherwise, be prepared to explain what is happening or offer the user a way out. *ICal *(and other non-modal editing apps such as photoshop, illustrator, or lightroom, autocad, alias, flash) *generally responds within 1/10-2/10 of a second.Try it.*
If you want to break new ground with a non-modal editing style, go for it! But you need speed to make it work. If you have an old copy of the Apple Human Interface Guidlines, its a good introduction. I can probably lend you my copy.
Its not generally possible on the web if you need to listen to a response,and redraw the screen. Not even close. With most companies that do not have the resources of google (multiple oc3's to avoid mae west etc...) the latencies alone are bigger than that. Not to mention server processing time, client processing/rendering time....
*An "overt" save its a little different because the user feels they know why a delay exists.* This buys you a couple of seconds -- you can fake a spinner with an hourglass. Much longer than a few seconds and you owe the user an explaination as to why its taking so long, how long you think it will take, and allow the user to cancel too.
One of the important things to keep in mind with UI is that the user should always feel they are in control not the software. Random delays take the "perception of control" from the user. Ever see a Java IDE Garbage Collect? It sure would be nice if eclipse told you it was about to garbage collect and how long it would take. Then you wouldn't feel completely helpless, you might even know if you could go for a coffee.
The way browsers approach this is with the little spinner in the corner (you know the little globe or e or fox) and a progress bar. It works great with "old" web apps. Too bad asynchronous HTTP calls "break" the spinner. (sometimes it never stops spinning, sometimes it never starts)
Mimi On May 8, 2007, at 4:36 PM, Jeremy Epstein wrote:The activity you are talking about is sometimes called checkpointing. Its a little different than the auto-save Mimi and Priscilla are referring to, because their auto-save could dramatically affect the data presented in the calendar and dash views. GMail does not need to re-render very much to do its "auto save". But the OSAF Web UI does, especially if the user edits the time,changes the triage, or removes (un applies?) a stamp.GMails auto-save is intended to prevent data loss during a long editing session. GMail doesn't do anything with the data beyond sending it to the server in case of a disconnect. The confluence wiki I use at one of my client sites does the same thing, for the same reason.One reason for the delay in the Web UI case is to fetch new events which may now show because your edit changed where an item appears in a display.Pieter Hartsook wrote:One of the nice things that Google added to Gmail a while back was an autosave feature. You still have the Save Now and Discard buttons when creating a message, but about every minute, the message you are typing (like this one) is autosaved. There is a status message next to the Save Now/Discard buttons that updates to "Draft autosaved at 4:02 pm." or whenever the last save was. The autosave is almost instantaneous and doesn't seem to interfere with my typing. I can't really notice any lag in my typing for example during the save. If I try to navigate away from the message with unsaved changes I get an error popup asking if I want to abandon the changes. PieterOn 5/8/07, Matthew Eernisse <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:Mimi, Good questions, all. Responses below. Mimi Yin wrote:> Just to clarify, I'm suggesting we only 'auto-save' in cases where the > user would need to explicitly click 'Save' anyway, aka when they "click> away from the item and the DV changes what it displays". Ah, good. I'm glad we're not talking about some kind of background-save process. But in trying to imagine how the auto-save described above would work,it seems to me that we are trying to gloss over something in the processthat has huge significance -- the time it takes to save the data. Intrying to hide it, we're going to create an app that feels horribly pokey.The best way to make a Web UI feel snappy is to give the user immediate feedback when they take some kind of action. In the case of clicking on an event lozenge, the user's intent is to *select a new event.* They click on the lozenge, and boom, it's there. Right now all that is instantaneous, and the app feels nice and snappy. If we were to implement that kind of auto-save, then sometimes clicking on a new event would give you selection of the new event instantaneously, and sometimes (if there have been changes) there would be a really ponderous waiting process while the *previously selected event* goes into a processing state, and the app does it's chug-chug-chug talking to the server, before the new event is finallyselected. That's not going to feel snappy, it's going to feel really slow.> Well, I think the problem we're facing right now is that we fear users> won't remember to save at all. I can see that being a genuine concern. There is a very simple step we can take to avoid that -- prompting users about unsaved changes when needed. That's standard practice in Web UIs. Anyone who has worked with a Web app for any amount of time generally understands fairly quickly that they need to send their changes to theserver for them to be saved. It's a really relevant fact of the end-userexperience with a Web app, and I don't think it's something we really can, or should try, to hide from them. > Now, if someone were composing a long message or writing up meeting > notes in the Notes field, then yes I agree with your analysis. But I > don't think we're expecting that for Preview. That makes good sense. I understand there are different targeted use-cases for Preview. However, whether it's just for Preview, or for the longer-term when we anticipate there being people doing the majority of their work in the Web UI, I feel very strongly that we should let the Web app be a Webapp, and leverage existing Web conventions unless there's some big valuein throwing them out. Matthew _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Open Source Applications Foundation "Design" mailing list http://lists.osafoundation.org/mailman/listinfo/design_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Open Source Applications Foundation "Design" mailing list http://lists.osafoundation.org/mailman/listinfo/design_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Open Source Applications Foundation "Design" mailing list http://lists.osafoundation.org/mailman/listinfo/design
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Open Source Applications Foundation "Design" mailing list http://lists.osafoundation.org/mailman/listinfo/design
