Ever since I first saw AJAX and, for that matter, DHTML, I've wondered if there wasn't a way to improve the way Notes views work from
the web by combining those two technologies. Well, I've just finished the seventh installment of my Lotus Advisor series on AJAX and that was the Challenge of the Month.
Well, as they say in the South of France, voilą y'all. Click on the image to the right (or here) and try it for yourself.
Is it ready for prime time? Probably not, but it's pretty close. Works great in IE and Firefox. Was working great in Opera until my last tweak, so either I have a caching issue or I need to spend another half hour soon and figure out what dumb thing I introduced.
But there are some cool things going on here. When you first load the page, notice that it puts only part of the top-level categories on the page, then pauses, then finishes out. That's actually by design: Since it really has no way of knowing how many entries are in the view, it makes the initial AJAX call without an &count= parameter...in other words, it only gets back whatever the server's default number-of-lines-to-return settings specify (ours is set to the default 30 lines).
That's a relatively small number of nodes, so it's quick, and quick is good.
Once that first set comes back, it reads the XML to find out how many more lines are out there and, after getting something up on the screen, goes back out and gets all the others. While, technically, it would be faster to get them all in one fell-swoop (if the list is small enough to do so), it feels faster to the user this way because (s)he doesn't have to wait for everything to be back before seeing something happening on the screen.
When you click on a twistie, there's another AJAX call (or two) that goes out and retrieves the next-level items right then. It is, if you will, a Just-In-Time inventory of view rows. Again, you get 30 (or your default number) on the first call and any extras (if there are more) on a follow-up call. This gets you around the hack of just picking a big number to return (&count=1000) and taking the performance hit waiting for all that XML to be returned.
Now, obviously, this won't work on a view with thousands of top-level categories. I'll need to introduce a paging scheme at some point for that. And, it really needs some kind of function available so you can get back to it from a document with things still expanded the way you left them.
I haven't tried response documents yet. Might work with them...might need some tweaking. Jury's still out on that.
So, there's still some work to be done.
But on the whole, I'm really happy with what it's doing here. It solves most of the traditional problems with Notes web views: It's pretty fast; it doesn't require you to reload the entire page every time you click on something; it lets you have many different twisties open at the same time (as does the Notes client); etc.
It's also nice, if I may say so, because it is not hard-coded to a particular number of levels in the view hierarchy: It reads what's there and builds it out, which means it should be relatively easy to adapt to other views.
Look for full details in whatever issue they're giving out at Lotusphere 2007. February 2007, I imagine.
1. Joel M. Phelan12/04/2006 10:58:18 AM
Homepage: http://www.steinmart.com
Just wanted to pass along that in FF 2.0, I'm seeing an empty div if I click on the link. If I right-click and open in a new tab, I the div is populated at first, but none of the links are active. Reloading the page in this tab renders it blank also.
2. Chris Whisonant12/11/2006 08:42:27 AM
Homepage: http://cwhisonant.blogspot.com
Good post! Now to make it not look like a Notes view... 
I've been meaning to tell you that I'm working with your brother Brian on getting a Notes User Group going here in Charlotte. So does Notes just run in your blood?
3. Scott Good12/11/2006 10:01:18 AM
Homepage: http://www.scottgood.com
I guess it does run in our blood. Actually, as you probably already know, Brian ran our Cincinnati office for many years before heading your way. In fact, he's still an important resource for us.
Glad to hear you're starting a users' group down there. I can tell you the one here (CONDUG) and the one in Cincinnati (NUTS) have been pretty successful. FWIW we've found the meetings that draw the most interest have to do with application development. If you fill a meeting with content on Administration, our experience says you can work with a lot smaller room.
4. Chris Whisonant12/13/2006 03:08:50 PM
Homepage: http://cwhisonant.blogspot.com
Thanks for the tips Scott. Brian has offered to do some dev stuff if needed. I think that would be a good idea as well. We were hoping to go live in November, but that didn't quite pan out. I'm thinking maybe March now since Lotusphere is in January.
5. Sean Burgess12/19/2006 11:33:24 AM
Homepage: http://www.phigsaidwhat.com/
We have been implementing a DHTML view methodology at my company and it works much better than the standard Domino stuff. The largest problem we have is with the response document hierarchy. Does your method handle that nicely?
Sean---
6. Scott Good12/19/2006 01:11:49 PM
Homepage: http://www.scottgood.com
Hi Sean,
If it does, it's by accident. I've been hoping to get back to this before long and figure out what I need to do both to handle response hierarchies and paging of the views...maybe next week when things are quiet...
Scott

























