[Design] Edits and saving in the Web UI
Jeremy Epstein
eggfree at eggfree.net
Tue May 8 17:22:22 PDT 2007
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?
>
> *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
Well if you can change what fields you sort on in dashboard, then *all
of them*.
> 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.
>>>
>>> Pieter
>>>
>>> On 5/8/07, Matthew Eernisse <mde at osafoundation.org
>>> <mailto:mde at osafoundation.org>> 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
>>>> process
>>>> that has huge significance -- the time it takes to save the data. In
>>>> trying 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 finally
>>>> selected. 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 the
>>>> server for them to be saved. It's a really relevant fact of the
>>>> end-user
>>>> experience 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 Web
>>>> app, and leverage existing Web conventions unless there's some big
>>>> value
>>>> in 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osafoundation.org/pipermail/design/attachments/20070508/0a8304d0/attachment.htm
More information about the Design
mailing list