Difficulties faced on using Dojo

Dojo Version: 0.4.1

In the previous few months, I was using Dojo to develop one application. The reason that I chose at that time is due to the beautiful widgets provided by its framework. In fact, I don’t know dojo also provide many utilities which facilitates the development on the web interface. In my application, I made use of several widgets, like ComboBox, FilteringTable, TabContainer, ContentPane, LinkPane, Button, FloatingPane and Tooltip, etc. Besides the widgets, I also make use of its dojo.io.bind and dojo.event.connect service.

Widgets - Ease of Use

TabContainer

Dojo provides a lot of widgets. At least it satisfies what I want. The first widget that I want is the TabContainer. It provides nice layout in navigating between pages. However, this widget got a very important problem, it limits the height of the block. For webpages, we always set the height in percentage so that we expect the page can heighten when it is long. Nevertheless, by setting height: 100% to the style, it renders to be the height of the current browser view, the block does not heighten automatically.

TabContainer

ComboBox

Another widget that I always use is ComboBox. It enables end users to type part of the text and the web will provide a list of matching entries. Here are the problems I face. The first one is about support on IE. This widget is not in a good condition when using in IE. It easily lose focus when pressing backspace or after switching window. My user always complain why the whole page loses when pressing backspace. Then I will tell them the reason is the backspace triggers the “Back” function of the browser.

Besides, a suggestion on ComboBox should be eliminating the limitation on prefix search. I did see some ComboBox like implementation in a commercial framework like can do that. It should not be a big performance issue to Javascript either.

ComboBox

Performance

Besides the availability of widgets, performance is also a major issue for AJAX frameworks. In fact, I did not perform any specific testing using any tool on Dojo. So, my saying here may be somehow subjective. However, what I say is based on its framework design.

In Dojo, if you want to use Dojo widget, the browser will load a lot of js, css files. If your web application is not designed well, it will load the same set of files again and again, which consumes time and network bandwidth. In my application, the performance is still good for local network. Nevertheless, it is quite slow when connecting from home through the Internet. Sometimes, the browser is even hanged.

Also, the size of these files are quite large compared with other frameworks. I know Dojo community is always doing the compression to make file size smaller, but it is not enough yet. Hope this becomes better in the coming releases.

Other Problems

There is one problem on the support of different browsers. I focus on supporting Firefox and IE. For Firefox, all things are good because we have Firebug to help, and Dojo it tightly integrated with the debugging function of Firebug. However, IE support is really not enough. There are many strange debug messages when using IE. I can’t find where they come from.

Also, the most serious problem is that my IE will crash if I use my system for some time. This doesn’t happen in Firefox. Google Search gives me some hints about the issue, which says that if we open a lot of widgets in IE, the memory control will get into problem and the browser will crash. Really serious…

Summary

Even I have faced so many problems in my development, I still think Dojo is worth to use in development. The main reason is that Dojo is only in a beta version now. The more stable release 0.9 M1 is released when I am writinig and 1.0 will be released soon. The architecture is totally re-factored, I believe the Dojo community will work out a much better solution to the problems I faced.

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Live
  • Technorati
  • YahooMyWeb

 

May 2007
S M T W T F S
« Mar   Jun »
 12345
6789101112
13141516171819
20212223242526
2728293031  

Categories