If there were no visits to the dotnetnuke portal for some time, depending on the host, the dotnetnuke is unloaded from server's memory. The first visitor that comes next is then forced to wait about 15+ seconds (depending on server's speed) in order to see the page. Dotnetnuke is a big framework but sometimes ends up serving low traffic sites also and that causes this unpleasant situation.
My idea is to show the static index.html page which holds the html code from the default.aspx dotnetnuke page and execute XMLHttpRequest via javascript onLoad to "get" the default.aspx to start loading.
My first page is a long sales letter and I would like the dotnetnuke to load in background while people read the sales letter and hopefully the page will be loaded when they decide to click a link or a menu item that links to some dotnetnuke page. If they click the link before it loads and are the first to visit the site they will still have to wait, but the ones that are there for the very first time (and are reading the letter) are the ones I don't want to loose over waiting for the site to come up.
So every time when I modify the content on default.aspx I would need to create a new index.html page and overwrite the old one. I can do that with the same XMLHttpRequest in just a few lines of code.
So, what do you think?
Since I'm not all that in web development or dotnetnuke I want your opinion and/or your advice how people deal with this.
ps. since my host doesn't let me to install dotnetnuke into a root folder I had an index.html page that redirected to /dnn/Default.aspx This way I can actually have the index.html page with all the content in my root folder and let the search engines take that page instead /dnn/Default.aspx and would not have to preform any automatic redirects.
pps. I am aware of the services that check your site for free every 15 or 30min, but that's not the answer since it messes up my visit statistics.