|
Rank: Newbie Groups: Member
Joined: 10/27/2008 Posts: 3
|
Hello support,
I'm currently evaluating your product and find it very professional. My Q is regarding the client scripts performance Can I combine the script files to one file ? Can that file hosted in the web application as static file?
Best Regards, Ronen Chen
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,194
|
Hi Ronen, Thanks for contacting us. We have done many optimizations regarding client side JavaScript. Regarding to your questions: 1. You can not combine the script files to one file. The reason is that we automatically tailor the scripts depends on what you use. For example, if you use Menu but not DatePicker on the page, then only JavaScript files for the Menu control will be rendered, JavaScript files for DatePicker will not be rendered in this case. Obviously, combining JavaScript files for different controls together into one file makes no sense in this case. Furthermore, we also share some JavaScript modules between different controls. For example, Menu may use JavaScript module A and B, while DatePicker may use JavaScript A and C. Here A contains many common routines used by both controls, but B and C only contain routines used by Menu and DatePicker respectively. With this approach, if you use Menu and DatePicker in the same page, then three modules A, B and C will be rendered. However, if we were to allow you to combine the script files for individual controls, then for a page that uses both Menu and DatePicker, you would have "A + B" for Menu and "B + C" for DatePicker rendered, which causes A to be rendered twice. This means combining different JavaScript files for a single control makes no sense either. 2. All JavaScript files, while can not be combined into a single one, can be hosted as static files. You will need to create a folder on your web server, then change your web.config to specify where EO.Web.dll should put those JavaScript files. At runtime, our DLL will generate static files in that directory and from then on, uses those static files instead of our dynamic module. You can find more information about this at here (scroll down for "Physical script files"): http://www.essentialobjects.com/ViewDoc.aspx?t=InstallationAndDeployment%2fdeploy.htmlIn addition to those measures, we also automatically send JavaScript files to client side in zip format if the client side browser supports so. Note this only works when EO.Web.dll is "sending" the JavaScript files, which means when you are not using static files. When you use static files, IIS is "sending" those files. Hope this helps. Please feel free to let us know if you have any more questions. Thanks!
|
|
Rank: Newbie Groups: Member
Joined: 10/27/2008 Posts: 3
|
Hello Support, Thanks for your reply. Although it's understandable to seperate the script into seprate files, this is outcome with huge perfroemace penalty. please see yahoo's "Best Practices for Speeding Up Your Web Site" - http://developer.yahoo.com/performance/rules.html ,http://developer.yahoo.net/blog/archives/2007/03/high_performanc.html I must say that I like your product a lot but this perfromance issue is cruicial for us. Best Regards, Ronen Chen.
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,194
|
Hi Ronen,
As Yahoo stated, "combining files is more challenging when the scripts and stylesheets vary from page to page". That means each page that uses a different set of controls need to have a different JavaScript file (because having a single combined file for all controls will result in a very large JavaScript file). So if all of your pages only use a single control or the same set of controls (for example, based on your master page), then combining javascript into one file is a great option. Otherwise combining files poses performance penalty, not performance gain because the number of combined JavaScript files can be significantly more than the number of primary script files. This causes a situation that while each page only sends out one JavaScript HTTP request, the user still sends out a lot of JavaScript request when they navigate through different pages. With separate files, the maximum number of HTTP request is the number of primary script files (further request are satisfied from the browser’s local cache).
The feature however is quite easy for us to implement. So we can try to put it in and provide you a test build for you to try out. Please let us know if you would like us to do that.
Thanks
|
|
Rank: Newbie Groups: Member
Joined: 10/27/2008 Posts: 3
|
Hello Support, Thanks for your reply, I do understand the plus and minus and appreciate your suggestion very much. We'll be happy to see a test build with combined scripts. Best Regards, Ronen Chen. chenronen@conduit.comTL. +972-54-4991027
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,194
|
Not a problem. We will add that and let you know once it is ready.
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,194
|
Hi,
We have posted a new build that implemented this feature. Please see your private message for download location.
Once you install the new build, you would need to follow these steps to use this feature:
1. Enable physical JavaScript files by following steps outlined in our previous post; 2. Place an EO.Web ScriptManager control in the page before all other EO.Web controls; 3. Set the ScriptManager's CombineJSFiles property to true;
Run the page and it should create a single JavaScript files in the folder you specified. (You will also see a list of individual module files got created in the same folder. However those files are not used at runtime).
Please feel free to let us know if you have any more questions.
Thanks!
|
|
Rank: Member Groups: Member
Joined: 10/7/2008 Posts: 14
|
Hi, I am interested in this patch also, when will it be in the released product?
Right now looking at our main page I have: <script type="text/javascript" src="eo_web.ashx?id=11ee4895-3f81-4d21-8933-ff98264325b4"></script> <script type="text/javascript" src="eo_web.ashx?id=ea80ad02-f605-4392-842e-45420b1f0016"></script> <script type="text/javascript" src="eo_web.ashx?id=9154edf1-d4b1-4a6c-a0d2-830b5b63c9d2"></script> <script type="text/javascript" src="eo_web.ashx?id=29129a4d-a58c-4496-9f45-f215d37536fc"></script> <script type="text/javascript" src="eo_web.ashx?id=f8942764-3ce3-4d64-8d3a-724bad50ba91"></script>
<script type="text/javascript" src="eo_web.ashx?id=f2a2cd24-51f2-47ec-9045-d6f723776fc1"></script> <script type="text/javascript" src="eo_web.ashx?id=6c59b52b-3d03-4d1a-b192-6163f271a91f"></script> <script type="text/javascript" src="eo_web.ashx?id=20369606-9411-4bb6-8b4f-c62bef48e9c2"></script><div id="eo_root"></div> <script src="/ScriptResource.axd?d=wqH8kwaeeRTtV-yFcORLkAPmse6_g8xS3-kQBz9lEHUqU7po0osr6SjtWsraln8O0&t=633476993008437500" type="text/javascript"></script> <script type="text/javascript" src="eo_web.ashx?id=ab360689-4b52-4ffd-947d-a645a51097e9"></script> <script type="text/javascript" src="eo_web.ashx?id=8aef43d3-c3d9-4042-96f7-f068ed89e02f"></script> <script type="text/javascript" src="eo_web.ashx?id=e421f30a-6572-403f-a630-4c93b4c04b3c"></script> <script type="text/javascript" src="eo_web.ashx?id=ecbbc657-1d88-4ecc-b2b8-487fdfcc43d9"></script> <script src="/WebResource.axd?d=SFuHoUT38BlFxBcXjQqeIGNKuu9GnRqnKLAhqCp2xjshTx3jAhJ0m1bSWI5WMkNQ0&t=633608231201207032" type="text/javascript"></script>
<script src="/ScriptResource.axd?d=wqH8kwaeeRTtV-yFcORLkAPmse6_g8xS3-kQBz9lEHVtwjONIif7cbZCKWE2FB8oL_gqUNY1MJ3nER1ZXDUhQw2&t=633476993008437500" type="text/javascript"></script> <script type="text/javascript" src="eo_web.ashx?id=04826745-5275-49a2-9208-d19476160b7d"></script> <script type="text/javascript" src="eo_web.ashx?id=14f7a3ae-328d-469a-bcd7-d76e71923ae8"></script> <script type="text/javascript">
I would love to find a way to combine these all into one js file that I can compress.
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,194
|
Hi,
Please check your private message for the download location.
Thanks!
|
|
Rank: Newbie Groups: Member
Joined: 11/3/2008 Posts: 3
|
Hi, we are colleagues with Joel and he shared this new build with me. I came through all the steps in your setup instruction but I still have a set of javascript includes on a page not a single combined file as expected.
What was done: 1. Set up new 6.0.50.2 build 2. Referenced it in solution 3. Added to web.config <appSettings> <add key="eo_ScriptLocation" value="~/eo_script"></add> </appSettings> 4. Created this new folder 5. Put eo:ScriptManager to the MasterPage <eo:ScriptManager CombineJSFiles="true"></eo:ScriptManager>
So we have ~/eo_script stuffed with physical scripts and references to these scripts on the pages that utilize EO controls.
What is wrong?
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,194
|
Hi,
~/eo_script will always be stuffed with physical script files. However once CombineJSFiles is enabled, you should see one or more combined .js files generated in your the directory. You can check:
1. Whether view state is enabled. CombineJSFiles is stored in ViewState. So it does need ViewState to function; 2. Test this feature in a separate blank project. That should help you to isolate the problem; 3. Check with Joel to see if it worked for him;
Thanks!
|
|
Rank: Member Groups: Member
Joined: 10/7/2008 Posts: 14
|
I never got this to work, back to trying again one last time, does the latest public release have this feature in it?
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,194
|
Hi Joel,
Yes. I believe the latest public release has this feature. Please let us know if you still have any problems using it.
Thanks!
|
|
Rank: Newbie Groups: Member
Joined: 7/21/2009 Posts: 6
|
Is the feature you are confirming, the "eo_scriptmanager" feature with ~/eo_scipt directory script consolidation?
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,194
|
all_dotNet wrote:Is the feature you are confirming, the "eo_scriptmanager" feature with ~/eo_scipt directory script consolidation? Yes.
|
|
Rank: Newbie Groups: Member
Joined: 7/21/2009 Posts: 6
|
Great, we are using this feature. I seem to have found conflicting posts regarding script consolidation, I found a March post from support that says EO does not support script consolidation into a single script.
However, a post from November 06, 2008 implies that you have a EO build that incorporates script combining into one script. Can you clarify this please.
I am hoping, although it may not the standard performance pattern, to combine all eo scripts into one script file.
Thanks
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,194
|
all_dotNet wrote:I found a March post from support that says EO does not support script consolidation into a single script. Can you post a link of that post so that we can see the context of that question?
|
|
Rank: Newbie Groups: Member
Joined: 7/21/2009 Posts: 6
|
Hi Ronen, Thanks for contacting us. We have done many optimizations regarding client side JavaScript. Regarding to your questions: 1. You can not combine the script files to one file. The reason is that we automatically tailor the scripts depends on what you use. For example, if you use Menu but not DatePicker on the page, then only JavaScript files for the Menu control will be rendered, JavaScript files for DatePicker will not be rendered in this case. Obviously, combining JavaScript files for different controls together into one file makes no sense in this case. Furthermore, we also share some JavaScript modules between different controls. For example, Menu may use JavaScript module A and B, while DatePicker may use JavaScript A and C. Here A contains many common routines used by both controls, but B and C only contain routines used by Menu and DatePicker respectively. With this approach, if you use Menu and DatePicker in the same page, then three modules A, B and C will be rendered. However, if we were to allow you to combine the script files for individual controls, then for a page that uses both Menu and DatePicker, you would have "A + B" for Menu and "B + C" for DatePicker rendered, which causes A to be rendered twice. This means combining different JavaScript files for a single control makes no sense either. 2. All JavaScript files, while can not be combined into a single one, can be hosted as static files. You will need to create a folder on your web server, then change your web.config to specify where EO.Web.dll should put those JavaScript files. At runtime, our DLL will generate static files in that directory and from then on, uses those static files instead of our dynamic module. You can find more information about this at here (scroll down for "Physical script files"): And possibility of one combined script: Ronen Chen Posted: Tuesday, October 28, 2008 6:01:00 AM Rank: Newbie Groups: Member Joined: 10/27/2008 Posts: 3 Hello Support, Thanks for your reply, I do understand the plus and minus and appreciate your suggestion very much. We'll be happy to see a test build with combined scripts. Best Regards, Ronen Chen. chenronen@conduit.comTL. +972-54-4991027 Back to top eo_support Posted: Tuesday, October 28, 2008 6:12:07 AM Rank: Administration Groups: Administration Joined: 5/27/2007 Posts: 6,251 Not a problem. We will add that and let you know once it is ready.
|
|
Rank: Administration Groups: Administration
Joined: 5/27/2007 Posts: 24,194
|
Hi all_dotNet,
I was asking you to post a link to the March post that claims EO does not support this feature.
What you have posted is:
1. Ronen Chen requested this feature on 10/27/2008; 2. We replied that we do not have that feature (at that time); 3. We implemented this feature and relied that we now have this feature on 10/28/2008 (the second day);
As a result, all new builds after that have this feature. I do not see any conflict or ambiguity between these posts.
You might be confusing about when each post was made. The key is that you have to read the "Posted" date of each individual reply, not just the date of the thread. Also the dates are displayed in your local date format. So the date you see and the date we see can be different. But the sequence of the reply should be the same.
Thanks
|
|
Rank: Newbie Groups: Member
Joined: 7/21/2009 Posts: 6
|
Thanks for your reply. Without getting any more confused,
I understand and have implemented the eo_scriptmanager feature with eo_script directory.
I would like to have one more question answered: Do you have an additional feature that will combine all eo scripts into ONE script file?
Thanks.
|
|