• Toll-free  888-665-8637
  • International  +1 717-220-0012
Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

scott.mech
#1 Posted : Sunday, September 2, 2007 12:37:24 PM(UTC)
scott.mech

Rank: Member

Joined: 4/4/2004(UTC)
Posts: 670

I would like to hear some feedback from BVC5 users about impacts of the size of viewstate on their website, customer service, sales, and service.


I recently went to a BVC5 site with no browser history, cookies, temp files, etc... and clicked featured product from the home page.

The resulting product page had no choices, options, etc. It was a simple product.



The page size was 72,856 bytes, of which 26,948 bytes was viewstate [37%].



I went to another BVC5 site, with no browser history, cookies, temp files, etc... this one offering many customization choices and options. I made a couple of clicks from home page to get to product. No real browsing, just direct clicking to a product.



The page size was 113,549 bytes, of which 54,848 bytes was viewstate [48.3%]



This has me asking, why do we need all this viewstate? How do other carts handle this? I have looked at the page source as rendered by some other carts that are asp.net, and I see very small or short viewstates, or even no viewstate. What is going on with BVC5 that is different here?



I clicked through some available options from the 3 sets,

then I chose the options I wanted,

then I waited to let page load [went for cup of coffee and returned]



I scribbled the price displayed down on my notepad,

clicked add to cart,

and noted the price in the cart was much higher than the price that was on the product page.



I would appreciate it if some merchants running BVC5 provide some feedback on if/how things like this are impacting their business.

Feel free to email me directly if you prefer.



Scott Mech

[email protected]
MitchA
#2 Posted : Sunday, September 2, 2007 8:37:41 PM(UTC)
MitchA

Rank: Member

Joined: 3/3/2006(UTC)
Posts: 1,737

I've not had the opportunity to do a before/after test, but I know there is an admin setting to move the viewstate. Have you tried A/B tests on any BV5 sites?

Did the sites that were slowest to load have flash, java, animated GIFs, SKU and image swapping, etc?

I've been to plenty of BV5 sites offered as examples by the third parties and BVC and haven't noticed any unusual lag times, but I do have Fios.
Optimists invent airplanes,
Pessimists buy parachutes.
Andy Miller
#3 Posted : Sunday, September 2, 2007 8:37:44 PM(UTC)
Andy Miller

Rank: Member

Joined: 11/5/2003(UTC)
Posts: 2,136

Was thanked: 1 time(s) in 1 post(s)
Quoting the test setup and results seems scientific, but your questions seem to encourage subjective observation. Are you asking if there are merchants who have done A/B testing with different page sizes, and different price calculation techniques?

Large ViewState elements in ASP.NET applications are common because the default in ASP.NET is to enable viewstate for every control. Not every element on the page needs viewstate, so it is almost always possible to reduce the size of any ASP.NET page by disabling viewstate for some or many of the controls. But this takes careful work, testing and time. Are you trying to decide if the benefit (reduced page size) it is worth the time?
Andy Miller
Structured Solutions

Shipper 3 - High Velocity Shipment Processing
scott.mech
#4 Posted : Monday, September 3, 2007 12:28:56 PM(UTC)
scott.mech

Rank: Member

Joined: 4/4/2004(UTC)
Posts: 670

in review my prior post, I can understand how there could be confusion, as I am addressing two topics at once, so let me clarify.


[quote="myself"]
This has me asking, why do we need all this viewstate? How do other carts handle this? I have looked at the page source as rendered by some other carts that are asp.net, and I see very small or short viewstates, or even no viewstate. What is going on with BVC5 that is different here?
I go to http://www.coach.com/content/CollectionListAll.aspx?categoryId=74 and I have almost no viewstate [192 bytes]. I go to a product page on the same site with multiple product options and image swapping by choice and I have < 5k of viewstate [4192 bytes]. I go to other ecommerce sites running asp.net applications and notice considerably smaller viewstates. None of these come close to 20k-50k+ I am seeing on the BVC pages. My questions are related to determining what the difference is between BVC and the rest of the asp.net cart packages.
The remainder following these questions brings to attention that the product price in the cart was higher than the product price on the product page. I am curious how often things like this are occuring and the impact they are having. I randomly selected a site whose owner posts on these fourms and went to one product on the site and noticed what I reported. I would expect that things like this would drive up the phone/email workload. I would like to hear from merchants regarding any customer feedback about issues like this.
Andy, maybe you are right that reducing the size of the pages viewstate may not be worth it for BVC in terms of work and testing. I am mostly curious why other sites running other asp.net carts do not seem to have such large viewstates.
Scott Mech
CorneliuTusnea
#5 Posted : Monday, September 3, 2007 12:29:05 PM(UTC)
CorneliuTusnea

Rank: Member

Joined: 8/17/2006(UTC)
Posts: 681

Andy,
I think it is worth the time. Does not matter what connection you have a if 30% of your page is viewstate you are not only talking about the amount of time taken to download an extra 10-50Kb of data but also about how much CPU times does it take to upload those 50Kb on every postback, and the time taken by the server server to decode, decrypt, deserialize, and apply the deserialized version that viewstate back on the controls.
Considering 80% of the controls in BVC are readonly controls we could easily disable their viewstate.
Before I deployed the first BVC Store I reviewed all the viewstates and on some of the pages (not the homepage) I managed to do it quite well and got the VS to 1K or less. Now I see the VS of the product page is huge while the rest are acceptable.
Scott,
Performance difference is visible with large VS so if you want a snappy site just take it slowly and disable the view state of the controls and test a lot. You might have to rewrite code to make your site work but overall, I tend to agree with Andy. If for you it's worth the time then do it.
Maybe we should also push BV to review their code and try to fix some of the more obvious VS issues :)
Regards.
Corneliu.
http://www.bestgames.com.au
http://www.bestchess.com.au



BV Product Links, Details and Signatures: Improve your customer experience:

http://www.acorns.com.au/projects/bv/quicklink/

Kman
#6 Posted : Monday, September 3, 2007 12:29:09 PM(UTC)
Kman

Rank: Member

Joined: 11/25/2003(UTC)
Posts: 370

One thing you may find beneficial is running HTTP compression.

Example: http://www.80stees.com/products...More-Cowbell-T-shirt.asp
Viewing page info shows 19.11 KB (19,566 bytes)
When it is actually 125.239 KB

Check your pages here http://www.port80software.com/products/zipenable/

Trimming viewstate is important but this is another value tool.
Regards,
Kim(Kman) Rossey
www.toocoolwebs.com
BVSoftware - MerchantTribe Programming/Design, Database Programming and Business Applications
[email protected]
Andy Miller
#7 Posted : Tuesday, September 4, 2007 7:20:55 AM(UTC)
Andy Miller

Rank: Member

Joined: 11/5/2003(UTC)
Posts: 2,136

Was thanked: 1 time(s) in 1 post(s)
Corneliu,

I agree that there is a lot of low hanging fruit in the stock BVC5 themes. I would like to see BV Software make a pass at reducing the VS. This might also be an opportunity for someone to create a theme with a very small VS.

Scott,

Along with cookies, VS is used by ASP.NET to simulate state. For example it is how ASP.NET knows to called the DropList_SelectedIndexChanged event when someone selects an option. Server-centric programmers use this to calculate an updated price, or display a new image with the selected color.

The Coach site that you cited appears to be very client-centric. For example, when you select a color, the image is replaced using client-side javascript. I suspect the developers that wrote the site decided not to use server side events like SelectedIndexChanged, so they could turn off VS for (nearly) everything.

However, this approach comes with trade offs. The product page I visited had a lot of javascript that was custom for the page. This creates 2 trade offs: VS size versus javascript size, and client processing versus server processing. The relative size of the javascript versus VS seems to be in about the same magnitude (i.e. one is not 10x larger than the other). I would count them as about equal, so there is no real size advantage to either one.

Client processing often feels more responsive, but it is almost always extremely custom for the particular shop and requires a different skill set (typically javascript), so it may not be a choice for many merchants. BVC5 uses built-in ASP.NET server-side processing, and it is generic, which makes it appropriate for many merchants.
Andy Miller
Structured Solutions

Shipper 3 - High Velocity Shipment Processing
Cliff
#8 Posted : Tuesday, September 4, 2007 2:17:53 PM(UTC)
Cliff

Rank: Member

Joined: 5/24/2004(UTC)
Posts: 4,147

Originally Posted by: "Andy Miller" Go to Quoted Post
I agree that there is a lot of low hanging fruit in the stock BVC5 themes. I would like to see BV Software make a pass at reducing the VS. This might also be an opportunity for someone to create a theme with a very small VS.


Know of any guidelines of how this could be done within a theme (master pages), or is this more specific to the BVModules?

My .Net skills are limited, but if I know what to look for, I'd love to help limit the VS because I'm seeing the same issues.
Andy Miller
#9 Posted : Tuesday, September 4, 2007 3:05:54 PM(UTC)
Andy Miller

Rank: Member

Joined: 11/5/2003(UTC)
Posts: 2,136

Was thanked: 1 time(s) in 1 post(s)
Since Corneliu has actually done this, I would take his advice over mine. Here's what I would do...

1. Add EnableViewState="false" to the header and footer user controls in all of the master pages. Test that this does not break your header or footer.

The rest has to do with BVModules

2. Create a ProductTemplate for your theme and add EnableViewState="false" to all of the asp:XXX controls (i.e. <asp:Label>). Do not disable ViewState on any of the embedded user controls yet. Skip any asp:XXX controls that are referenced by "Handles" in the code behind (for example, skip ID="Cliff" if the codebehind has "Handles.Cliff_Click". Test that this does not break your product page.
3. Repeat for CategoryTemplates.
4. Repeat for each control in BVModules\Controls, one at a time, and test that the control does not break after each changes.

Good luck.
Andy Miller
Structured Solutions

Shipper 3 - High Velocity Shipment Processing
CorneliuTusnea
#10 Posted : Wednesday, September 5, 2007 9:06:41 AM(UTC)
CorneliuTusnea

Rank: Member

Joined: 8/17/2006(UTC)
Posts: 681

Andy is right. Follow his guidelines. It will take time and pain but it will work.
The most relevant test is NOT to load the page but to postback to the page. So always have a button on the page that will do a post back.
The viewstate has no meaning when you first load the page but it's used when you postback to avoid executing some of the code. Handling of events only relies on VS for very few controls like grids and repeaters but it is not required for simple controls like buttons or checkboxes.
If you have controls that make sense to be readonly once the page was loaded check the .vb code and see what is in the Page_Load .. If Not Page.IsPostBack Then ...
Most of that code can be taken out of the If so it will be run on every page load. A good example you can start with is the Sticky Note Content Block. Remove the If Not Page.IsPostBack .. and set it to EnableViewState=false. You just saved your strings from the note beeing loaded from the VS but from the DB. Considering the code checks the DB anyway there is no negative performance hit.
Start with small changes to get the hang of it and remember. Tests if you broke anything are ONLY VALID in postbacks and not on first loads.
Regards,
Corneliu.
http://www.bestgames.com.au
http://www.bestchess.com.au



BV Product Links, Details and Signatures: Improve your customer experience:

http://www.acorns.com.au/projects/bv/quicklink/

Cliff
#11 Posted : Wednesday, September 5, 2007 1:32:41 PM(UTC)
Cliff

Rank: Member

Joined: 5/24/2004(UTC)
Posts: 4,147

Excellent, thanks guys.
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

©2025 Develisys. All rights reserved.
  • Toll-free  888-665-8637
  • International  +1 717-220-0012