cancel
Showing results for 
Search instead for 
Did you mean: 

Webdynpro Performance - Remove parameter from URL

Former Member
0 Kudos

When a client requests a Webdynpro page, the classes.js is retrieved using a parameter in the URL. Example:

http://<hostname>:8001/sap/public/bc/ur/nw7/js/classes.js?5DFE50063750

The network people are saying this prevents cache, and that it is disrupting performance. Is there a way to remove this?

They also say we must enable gzip compression but as far as I can see, that is the default behaviour.

Accepted Solutions (1)

Accepted Solutions (1)

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

The string on the end shouldn't keep the Java Script from being cached. It still caches within the browser becuase the string at the end doesn't change constantly. It only changes if a an update is made to the JavaScript file (support package application for instance). It is mechanism to ensure that if the file changes on the server that the new versions are pushed to the client.

I did an HTTP Watch and you can see that majority of the files are in fact cached. Only if I would upload a new version of them to MIME repository, would they not be cached. However there are some JavaScript files that are dynamically generated - like wda_ls_main.js and therefore use a timestamp as their URL parameter so that they are never cached.

http://farm3.static.flickr.com/2594/3793032490_67357b4d21_o.jpg

>They also say we must enable gzip compression but as far as I can see, that is the default behaviour.

You are correct, the MIME handler will automatically use gzip based upon the MIME type and the browser's reported capabilities. I can also see in HTTP Watch that the JavaScript files are gzip'd.

Former Member
0 Kudos

Thanks Thomas. I assumed this was normal behaviour but the network people are really giving me a hard time with this.

In all my tests I was getting a cached response after the first load, but they say the cache isn't working.

They say that loading a 1.2 MB file (classes.js) is making the application unusable.....makes you wonder what kind of bandwidth we have available....

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

I would show them the results of a tool like HTTP Watch. Clearly the files are being cached on the client side.

Are you running NetWeaver 7.01? If you have a classes.js then I assume that you are. Classes.js should not be used by default in 7.01 with Lightspeed turned on. Classes.js is a single JavaScript file that contains all the javascript for all UI elements. With 7.01 and Lightspeed, we introduced an AJAX based technique that allows us to load individual JavaScript files for each set of UI elements on demand. This reduces the needed network bandwidth and the processing time on the client side because only the JavaScript needed for the UI elements currently on screen are processed.

Classes.js is only provided as a fallback when the JavaScript load on demand framework is deactivated for some reason.

I know this has nothing to do with the caching question direclty. Classes.js or the individual js files will cache regardless of which approach is used. However you might be able to get better performance still if the JavaScript Load on Demand wasn't disabled. For instance the URL parameter sap-wd-loadOnDemand can be used to force the enablement or disablement of Load On Demand.

Former Member
0 Kudos

We upgraded recently to EHP4/ Netweaver EHP1 so yes we are using 7.01.

It is strange though that in the development system I can use ctrlaltshift+p to get the "debug" window, but not in the prodution system.

Does this mean lightspeed is off in produtive? I have the lightspeed parameter set to 'X' in the webdynro app and still I can't ctrlslt......

The guys with problems are in Africa while the SAP server is hosted in Europe, but the network people tell me they have a dedicated xDSL 1Mbit connection for about 3 users. It should be more then enough I think....

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

>It is strange though that in the development system I can use ctrlaltshift+p to get the "debug" window, but not in the prodution system.

Not sure. I actually never get to work in "Productive" systems any more. I suppose that the performance monitor could be disabled for security reasons if your system is marked as Productive. But it could mean that Lightspeed is disabled as well. Do other Lightspeed only features work (Drag and Drop, Column rearrangement, etc). Or perhaps try to set your theme to SAP_TRADESHOW_PLUS. That theme only works in Lightspeed mode.

Former Member
0 Kudos

After some Http watching and Fiddling, there are two things that could be improved:

- GZIP is not being used for /sap/public/bc/ur. All JS files that fall under this path are not getting GZIPed, although the webdynpro files are.

- Max-age is a bit small for many items, which have a value of 3600.

The second one is not really a bit deal, but the first one is the one the network people are complaining about. Is it possible to enable GZIP for the Unified Rendering files?

PS: Please make Webdynpro ABAP compatible with Google Chrome. WBA has so much JS now, and the performance is so much better in Chrome when compared to IE.

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

>- GZIP is not being used for /sap/public/bc/ur. All JS files that fall under this path are not getting GZIPed, although the webdynpro files are.

I did an HTTP Watch and this doesn't seem to be the case in my system. This content is being zipped as well.

Have a look at OSS Note 904314. There are two profile parameters - ict/min_compression_size and ict/exclude_compression that could be the root cause. It looks like the default value in the second prameter is to exlude *.js files from compression.

>- Max-age is a bit small for many items, which have a value of 3600.

When I do an HTTP Watch from my system the Max-age is much longer: cache-control: max-age=604800. I can also see in the MIME Repository within SE80 that the client expiry is set to 7 days for these folders.

>PS: Please make Webdynpro ABAP compatible with Google Chrome. WBA has so much JS now, and the performance is so much better in Chrome when compared to IE.

I think every browser has better JavaScript performance than IE these days. We are certainly expanding our browser support in the near future. I don't know if you will see Chrome listed in the PAM, but there have been a few blogs on SDN about using Chrome with WDA. I've tried it myself and there is a noticable difference in JavaScript rendering time.

Although IE still rules the Enterprise space, hope the competition from Firefox and Google and Apple will get Microsoft to improve rendering speed in IE.

Former Member
0 Kudos

Thanks for the quick response. I'll tell the system administrators to change the parameter to allow JS compression.

As for the max-age, there are some items with 604800 like TextEdit.js, and then ScrollArea.js or Inputfield.js has 3600 seconds. I don't see a pattern.

Chrome renders most things ok, but the new EHP1 scroll bars on the table control are rendered incorrectly and are unusable. In Firefox they are generated ok, but the application still looks better in IE (although quite slower.....).

Answers (0)