eMenuTree has three tree menu scripts: w3c drop-down tree menu script, w3c click-to-open tree menu script, and a generic browser click-to-open tree menu script. The tree menu will detect a wide variety of browsers and use the proper script.
eMenuTree divides browsers into three types:
1. IE 4-6 and Netscape 6 and above (w3c browsers)
2. Generic browsers (NN4, Opera 5, etc.)
3. Non-standard browsers
eMenuTree runs quickly and efficiently in Internet Explorer 4, 5, 6 and Netscape 6. In these browsers eMenuTree hides and shows divisions (<div>...</div>) to create the tree menu effect. It also uses document.getElementByID or document.all to swap open and closed images.
If your tree menu is long (over about 400 links), your pages will slow down (see performance chart below). For this reason, eMenuTree gives you the option of treating IE 4-6 and Navigator 6 as generic browsers (see options tab of eMenuTree). Treated as generic browsers, they will load pages almost instantaneously even for trees with over 1000 links.
Browsers which are based on either Internet Explorer 4 or Netscape Navigator 6 will run on either eMenuTree's w3c code or its generic code. Opera is treated as a generic browser because it does not show and hide divisions.
On some platforms some w3c browsers, will not run the drop-down script (early versions of Netscape 6.0 and IE on the Mac). eMenuTree will detect these browsers and run the w3c click-to-open tree menu script.
Generic browsers are browsers which don't fall into the above categories, but do have basic JavaScript and cookie capability. Beginning with eMenuTree 3.0, NN4 is treated as a generic browser.
Generic browsers always run the tree menu script. They do not run the drop-down menu script even if the project is a drop-down menu project.
eMenuTree runs quickly and efficiently in these generic browsers. Pages will load instantaneously, even with 1000 links. It creates the tree menu effect by writing a cookie, and then reloading the file from the cache. The reloaded file reads the cookie and opens the tree to the proper point. The cookie is not written to the disk. If the user has scrolled the page, the reloaded page will scroll to the proper point.
If the user has turned off cookies, tree menu pages will ask that cookies be turned on. If the user has turned off the cache, eMenuTree will still work. It will return to the server to reload the page.
The generic browser code works well. In the major browsers it works very well, although Netscape 6 and Opera return to the server even if the cache is turned on. This is o.k. but it slows down the opening and closing of folders. In Netscape 4 most projects will work, but complex pages may overwhelm Netscape 4. My home page has three tree menus and the menus contain forms and other complex HTML -- this overwhelms Netscape 4. But my 1000 link page runs great in Netscape 4. To overcome this problem, you can request eMenuTree not to insert a section of a tree menu in Netscape 4. For information, see the help file "Scripts".
If you are concerned about non-standard browsers (those that don't support javascript), eMenuTree provides a site map file. This is a simple HTML file that will work in all browsers. It contains a completely open tree menu (exposing all the links.) You can either include a link to this file in your pages, or write server-side script that will send this page to non-standard browsers. Putting a link to your site map on your home page is also useful if you want search engines to index all your pages.
The script that runs the tree menu is only about 10KB. Every 100 links only add about 3KB. Of course this 3K will vary slightly depending on the length of the page names and the URL's you are linking to.
eMenuTree can greatly reduces the overall size of files with a large number of links. For example, the emenu.js file for my 1000+ link tree menu page example is only 59K. But if you were to enter these as 1000 anchor tags into a file, that file would be about 130K.
How fast a page loads depends on the structure of your tree, the speed and memory of the users computer and other factors. But the following chart gives some idea of the performance of eMenuTree in different browsers.
As explained above, NN 4,6 and IE 4,5,6 can run either in normal mode or be treated as a generic browser, so two figures are given for them
These figures are the approximate time it takes to process the tree menu javascript (or reload the page from the cache).
| Links | IE 5 | Netscape 6 | Generic browser | |||
| Normal | Generic | Normal | Generic | -- | Generic | |
| 50 | 1 sec | 1 sec | 2 sec | 1 sec | -- | 1 sec |
| 200 | 2 sec | 1 sec | 4-15 | 1 sec | -- | 1 sec |
| 500 | 7-12 sec | 1 sec | 12-40 | 1 sec | -- | 1 sec |
| 1000+ | 20-50 sec | 1 sec | 120+ | 1 sec | -- | 1 sec |
Basic summary: Internet Explorer handles up to 300 links quickly, and can handle 500 links in a reasonable amount of time. Netscape handles 200 links fairly quickly, but begins to bog down at 500 links. Generic browsers loads almost instantaneously. (Point: If your tree menu has a lot of links, begin to treat browsers as generic browsers.)
Note: these figures are estimates based on a few simple tests. You should test your own pages in both IE and Netscape.