How to provide a 'please wait' notice while JmolApplet is loading
Please, feel free to share here your tricks for showing a "please, wait" kind of notice so that users get some feedback that the JmolApplet is loading.
While Java and Jmol are loading
This is not easy, as you cannot put anything in the place of the applet; the browser draws the applet (even before it is loaded) on top of anything else in the page.
Trick nr. 1
Here I choose to put a small JmolApplet in the homepage (here flushed top left, but could go anywhere else), so while the user reads the introduction to the site, Java and Jmol can go on loading, and when the user jumps to the content pages, Jmol will be cached and load quickly with the contents.
I insert a small DIV with a "please wait" warning and the applet; this latter does not load any molecule, just displays a "done" message using the
I use matching colors for the DIV and applet backgrounds and texts, so the applet is not too apparent as such. The Java and Jmol logos will show up temporarily, but that is not a bad thing, as it proves that something is indeed going on.
While the model is loading (after Jmol has finished loading)
Trick nr. 1
jmolApplet("100%", "script pre.txt; load file.pdb; script post.txt")
zap; set echo middle center; font echo 18 sanserif bold; color echo navy; echo Molecule loading||It will take a few seconds,|depending on molecule complexity|and your connection speed||Please wait...; delay 0.1;
wireframe off; spacefill off; set hoverDelay 0.1; set echo middle center; font echo 14 sanserif bold; color echo background [xA6CAF0]; color echo navy; echo Molecule loaded||Click here to turn off this warning|and then use the available controls|to select parts of the molecule|and change its visualization; set echo middle script "set echo off";
set echo middle center; font echo 16 sanserif bold; color echo navy; echo Use the available controls|to select a molecule|and change its visualization;
Trick nr. 2
While Jmol is busy (e.g. loading a file or calculating an isosurface), the display is not updated. Therefore, it is important that if you put a "please wait" message using
echo, you follow it with a
refresh command; that way, the message will be shown and stay there until Jmol finishes its task (often, you will need to remove the message then).
echo "Molecule is loading"; refresh; load myMolecule.xyz; echo;
echo "Calculating surface..."; refresh; isosurface mySurface molecular; echo;