views:

210

answers:

2

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.

A: 

Ivan,

There are many cheap "ping" solutions that can keep your site alive by making periodic requests to the web server. I would consider this option first, as it won't require any special coding on your behalf.

Just google dnn keep-alive; http://www.google.com/search?q=best+dotnetnuke+keep+alive+solutions&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla%3Aen-US%3Aofficial&client=firefox-a

Rafe
sorry, I forgot to mention earlier that these services like http://host-tracker.com really can mess up my visit statistics.
Ivan
A: 

I think you might be overthinking this.

Sign up for a free web site monitoring service (there are tons out there) that will check your site every 10 or 15 minutes. This will keep the application in memory and give you a bonus of having your uptime monitored.

routeNpingme
sorry, I forgot to mention earlier that these services like http://host-tracker.com really can mess up my visit statistics.
Ivan
So create another site in the same application that host tracker uses, and let that one be the one that gets monitored.
routeNpingme
Brilliant, yet so simple. Thank you. I guess sometimes you have to use cannon to hit a fly in order to learn.. :)
Ivan
You can also hit a page called keepalive on your site and just no track any stats on that page if you want - just returns the date time each time its opened
codemypantsoff