Laurence Neville
 Posts:73

| | 11/14/2006 8:03 AM |
| Site response time is a particular concern for e-commerce sites, so I am considering using PageBlaster on our CataLook based shopping sites. I would like to know any problems people have experienced or configuration tips. For example: is the retention of items in a visitor's shopping cart affected by PageBlaster? Should all of the checkout pages be excluded from PageBlaster? FYI, I have already seen John's post on CataLook in this thread: http://www.snapsis.com/SnapsisSupport/tabid/601/forumid/13/tpage/1/view/Topic/postid/4106/Default.aspx | | | |
|
|
|
John Mitchell Posts:3493


| | 11/14/2006 8:12 AM |
| Yes, just exclude your cart from caching if you have Catalook. In that thread I used my Tabid, but I believe now that I am using the word "Cart".
The cart page is used all through the checkout process, so it takes care of everything. | | | |
|
Laurence Neville
 Posts:73

| | 11/16/2006 3:41 AM |
| | So are there any known problems or other setup tips I should know? | | | |
|
John Mitchell Posts:3493


| | 11/16/2006 7:39 AM |
| No, there aren't any known problems using PageBlaster with Catalook, or anywhere for that matter. Feel free to post here in the forums if you run into anything or have other questions though. If you are looking for feedback from other users, you might want to post your question in the DotNetNuke Let's Chat About It! Forum | | | |
|
Laurence Neville
 Posts:73

| | 11/16/2006 8:28 AM |
| | Thanks. Good to know there aren't any problems anywhere! :) | | | |
|
Laurence Neville
 Posts:73

| | 11/17/2006 3:30 AM |
| | Another question - we feed product and category data into the CataLook tables from an external source. When we do this the cached pages will no longer be up to date. What ways are there to automatically force a cached page to be recached? Delete the folder for the page in the Cache folder? Any other ways? | | | |
|
John Mitchell Posts:3493


| | 11/17/2006 6:30 AM |
| Yes, you can delete the folder in the cache directory on the server. But an even easier way to refresh the PageBlaster cache for any page is by holding CTRL and refreshing your browser (CTRL+F5) just like refreshing the browser. | | | |
|
Laurence Neville
 Posts:73

| | 11/17/2006 8:02 AM |
| | I need a method that can be built into the product import code, so I'll go with the folder delete method. Thanks. | | | |
|
Laurence Neville
 Posts:73

| |
John Mitchell Posts:3493


| | 11/22/2006 1:59 PM |
| I checked out your site, and I can't figure out why it's not caching the Catalook pages. Try removing the extra excludes that you have added and see if that works, then add them back in one at a time.
You'll also want to exclude your shopping cart page when you get it working. I exclude mine with pattern="cart" | | | |
|
John Mitchell Posts:3493


| | 11/22/2006 2:03 PM |
| | Oh, I forgot to mention that I am using Catalook and my pages are caching Ok. | | | |
|
Laurence Neville
 Posts:73

| | 11/23/2006 5:01 AM |
| I followed your suggestion. My CataLook pages start getting cached when I remove this exclude: PATH excludeFrom="All" pattern="\?(?!tabid)"
Doesn't this say to not cache if the URL contains a "?" but does not contain "tabid" following the "?" ? If so maybe this explains why my 2 example URLs above are not getting cached. They contain a querystring, but the querystring does not contain "tabid".
Having said that, I tried to test this theory by checking that http://62.49.66.116/Home/tabid/148/Default.aspx?test=test does not get cached, but it does.
Separate question - I ran a SQL profiler trace on the DNN database for cached pages and non-cached pages to double check that the DB was not getting hit when cached pages were requested. There was a tiny amount of activity - just the calling of the procedures GetTab and GetAllTabs. Some pages (e.g. my first example URL above) result in GetAllTabs getting called 7 times. This procedure returns all pages in all portals in the DNN database, so thats rather expensive to do and very expensive to do 7 times! I know this is a function of DNN and not PageBlaster (it gets called 7 times if PageBlaster is not installed), but my question is - can PageBlaster stop the call being made (if it is unnecessary)? | | | |
|
John Mitchell Posts:3493


| | 11/23/2006 6:56 AM |
| That is interesting. Yes, you are right about what that exclude is supposed to do. But I do see a tabid in your querystring for the catalook links. PageBlaster actually sees the "un"-friendly Url in the normal way, so the tabid is after the qusetion mark. If that fixes it though, you can leave that out, and just use more excludes as you need them.
Thanks for checking the details on the DB lookups. I did the same thing and I had it down to only one call to the DB on a cached page. It has to call for the lookup of the portal alias. I'll do some more checking on that.
Yes, 7 times on GetAllTabs, and several others was really in-efficient. The newest version of DNN in the pipeline (DNN 4.4) is taking care of some of these issues though. | | | |
|
Laurence Neville
 Posts:73

| | 11/23/2006 7:06 AM |
| What do you mean by "sees the "un"-friendly Url in the normal way". My URL is "friendly"! Do you mean it sees friendly URLs as regular DNN URLs i.e. default.aspx?tabid=N ?
Why is this exclude (PATH excludeFrom="All" pattern="\?(?!tabid)") in the standard config file? I don't want to leave it out and find something else doesn't work. Thanks
| | | |
|
John Mitchell Posts:3493


| | 11/23/2006 7:15 AM |
| Yes, that is exactly what I mean about the Urls. You see the friendly one in the Url, but inside, pageBlaster sees the un-friendly regular DNN urls.
That exclude was my attempt at having less excludes. It is sort of a "Catch-all", but if it doesn't work in your case, you may just need a couple others. I wouldn't worry too much about missing an exclude, if something doesn't work, just try excluding it to see if that fixes it. | | | |
|
Laurence Neville
 Posts:73

| | 11/23/2006 8:26 AM |
| Can you give me any examples of pages that do not have tabid in the querystring that should be excluded? I want to understand why you put it in so that when I take it out I know what kind of pages might need new excludes writing for.
I did an experiment which you might be interested in.
Leaving the "pattern="\?(?!tabid)" in place, I turned off Friendly URLs in the Host Settings and emptied the cache folder. I then visited the CataLook pages above and the pages got cached. I then turned Friendly URLs back on, emptied the cache folder and visited the CataLook pages again. This time they were not cached.
So maybe PageBlaster is not seeing the URL exactly as it is with Friendly URLs turned off?
One extra observation: with Friendly URLs turned off, on visiting a cached page there are several calls to the SP GetModulePermissionsByModuleID. These calls do not get made when the same cached page is visited with Friendly URLs turned on. Relevant/useful info? | | | |
|
John Mitchell Posts:3493


| | 11/23/2006 9:12 AM |
| All the known excludes are in this thread. Thanks for the detailed testing. That is interesting. I'll look at both of those scenarios closer today. | | | |
|
Laurence Neville
 Posts:73

| | 11/23/2006 10:39 AM |
| Could the ordering of the HTTPModules section of web.config affect this? Here is mine:
<httpModules><addtype="XepientSolutions.XSKeepAlive.XSKeepAliveHttpModule,XepientSolutions.XSKeepAlive"name="XSKeepAliveHttpModule"/><addname="PageBlaster"type="Snapsis.HttpModules.PageBlaster.PageBlasterModule, Snapsis.HttpModules.PageBlaster"/><addname="UrlRewrite"type="DotNetNuke.HttpModules.UrlRewriteModule, DotNetNuke.HttpModules.UrlRewrite"/><addname="Exception"type="DotNetNuke.HttpModules.ExceptionModule, DotNetNuke.HttpModules.Exception"/><addname="UsersOnline"type="DotNetNuke.HttpModules.UsersOnlineModule, DotNetNuke.HttpModules.UsersOnline"/><addname="DNNMembership"type="DotNetNuke.HttpModules.DNNMembershipModule, DotNetNuke.HttpModules.DNNMembership"/><addname="Personalization"type="DotNetNuke.HttpModules.PersonalizationModule, DotNetNuke.HttpModules.Personalization"/><addname="HTTPHandler_SSL_PA"type="tt.SSL_Module.HTTPHandler_SSL, tt.SSL_Module"/></httpModules> | | | |
|