* Ajax Deleting
Posted on January 25th, 2007 by Dave Johnson. Filed under AJAX, DHTML, JavaScript, Web, Web2.0.
The topic of this post is about deletion using Ajax. Truth be told, it’s not really even about Ajax but about the deletion pattern and related user experience in general.
So often it is the case that when a person deletes some data - like a photo tag in Flickr for example - the application insists on confirming that the user really wants to delete the item. This kind of interaction is really annoying when you are deleting several items from a list or even just one when you are a “power user”. In fact, more often than not, the user wants the delete to occur immediately and requires no confirmation. The confirmation dialog is just an over-engineered catch all for those rare cases when the user presses the delete button in error. In the case of Flickr photo tags then who even cares if you accidentally delete one tag?

There are a few good options for Ajax delete that I think one consider when building data intensive web applications.
- Make the delete button smaller but communicate its meaning more clearly.
Using large and unfamiliar buttons for signifying a delete action makes it easier for a person to make a mistake - thus re-inforcing the need for a confirmation dialog. A smaller button means the user has to work a little harder to perform the delete operation, but not quite as hard as confirming the delete, and the more clear the button is for deleting (through a tooltip or whatever) then the fewer inadvertent deletes there will be. - Store all deleted data the client before executing the deletes.
Although it could be a good option, the previous suggestion still provided no way to undo a delete. To that end, rather than having a difficult confirm dialogue the developer can take a different approach to deletions such as batch deletions with a single confirm dialogue or even an easy way to roll back the deletes if they are in error. I imagine the reason for using a confirm dialogue is because it is easiest for the developer, but certainly not the user. - Use a timer on the delete action giving the user the opportunity to cancel the delete.
Finally, an approach that could encompass both of the previous suggestions would be a delete timer. This would be an animation to indicate that the item is pending a delete in say 5 seconds. The key here is that this is ample time for the user to cancel the delete if they want but otherwise the deletion will continue if the user does not take any action to prevent the delete from happening.
At any rate, this is one area where most web application fail miserably and there are great advances to be made with Ajax based applications.
6 Responses to “Ajax Deleting”
Leave a Reply
Recent Posts
- Mobile Geolocation Implementations
- PhoneGap Native Bridge
- PhoneGap and BlackBerry OS 6
- BlackBerry JavaScript Oddities
- JavaScript Event Merging
Archives
- August 2010
- July 2010
- June 2010
- April 2010
- March 2010
- February 2010
- January 2010
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- February 2009
- January 2009
- December 2008
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
- June 2006
- May 2006
- April 2006
- March 2006
- February 2006
- January 2006
- December 2005
- November 2005
- October 2005
- September 2005
- August 2005
- July 2005
- June 2005
- May 2005

January 25th, 2007 at 8:49 pm
Good thoughts Dave — totally agree w/ the timer approach.
January 26th, 2007 at 8:25 am
Undo is possibly the only true solution for users, the others mentioned sounds like stopgap measures.
Single-level undo might be “good enough” e.g. the feature in Gmail has saved me a couple of times. Multi-level undo will really be godsend - Adobe Photoshop has proven that for years!
I’ve not seen undo history implemented for a web app though.
January 26th, 2007 at 2:49 pm
I think you are probably right choonkeat - I guess that is something most web application developers just don’t have the time to do. very good point though.
January 31st, 2007 at 5:26 pm
Looks like you’ve been reading some of Jef Raskin’s words in “The Humane Interface” - it’s all about habituation and endless undo.
amazon - http://www.amazon.com/Humane-Interface-Directions-Designing-Interactive/dp/0201379376/sr=8-1/qid=1170276957/ref=pd_bbs_sr_1/102-8973219-9793712?ie=UTF8&s=books
web site - http://rchi.raskincenter.org/index.php?title=Home
http://jef.raskincenter.org/humane_interface/index.html
mxt
THINK
think different
Think Open Source
October 19th, 2007 at 1:46 pm
I know, I know, posting to an old article - but there’s a video of undo-delete done pretty well (although with a noticeable lack of animation…weak!).
http://simpable.com/software/ditch-confirmations/
October 19th, 2007 at 3:54 pm
thanks jake.
I need a new post on the subject I think.