Internet Explorer 11 - performance


#1

I have a page which works fine in all browsers except Internet Explorer 11.
No errors in the console in Chrome or Safari.

Where can I look for to improve performance?
When IE renders it looks like it’s waiting for something and then moves on.


#2

Hi @jhogewoning,

Is that happening on all pages or a specific page at least?

What I have encountered before is the variations of console.* api. The implementation of Chrome and IE varies and is causing some script errors if opened up in IE.


Paul


#3

It is 1 page. There are 10 pages in the application and the other 9 are performing more or less the same in IE (only slightly slower).


#4

Hi @jhogewoning,

Since there are no errors, try to isolate the issue by removing it all and piecing it section by section until you hit the section that causes that weird behavior.

Let us know how it goes.


Paul


#5

The problem was this MDX statement:

<tm1-ui-subnm tm1-instance="dev" tm1-dimension="Employee Plan" tm1-mdx="{TM1SORT( {FILTER( {TM1SUBSETALL( [Employee Plan] )}, [Employee Plan].[Branch] = '{{branchselected.key}}' )}, ASC)}" tm1-select-only="true" ng-model="modal.add.employee"></tm1-ui-subnm>

{{branch selected.key}} returns the principal element name ‘200’. This is a string but it looks like IE is not so sure…

I changed the MDX to this:

<tm1-ui-subnm tm1-instance="dev" tm1-dimension="Employee Plan" tm1-mdx="{TM1SORT( {FILTER( {TM1SUBSETALL( [Employee Plan] )}, [Employee Plan].[Branch] = [Canvas User Settings].( [}Clients].[{{user.Name}}],[Canvas User Settings Measures].[Branch] ) )}, ASC)}" tm1-select-only="true" ng-model="modal.add.employee"></tm1-ui-subnm>

The first MDX statement takes IE more than 8 seconds te render. The second takes 375 ms to render.


#6

Hi @jhogewoning,

Thanks for the update!

I had just tried it in IE11 and it seems to be working fine on my PC.

When you have the chance, can you try to check what is the request being sent? In IE, if you open up the Developer Console (F12) and click on that request, you would normally see something like:

Using the original SUBNM, that you had, can you post in here the JSON body being sent? Thanks!

Alternatively, try the following subnm:

<tm1-ui-subnm 
    ng-if="branchselected.key.length > 0"
    tm1-instance="dev" 
    tm1-dimension="Employee Plan" 
    tm1-mdx="{TM1SORT( {FILTER( {TM1SUBSETALL( [Employee Plan] )}, [Employee Plan].[Branch] = '{{branchselected.key}}' )}, ASC)}" 
    tm1-select-only="true" 
    ng-model="modal.add.employee"></tm1-ui-subnm>


Paul


#7

Hi @plim,

The subnm with the ng-if also works. This is what the developer console shows in the body:

[{"id":"dd2423b1-9488-339b-f854-3d09a77f69f8","instance":"dev","dimension":"Employee Plan","mdx":"{TM1SORT( {FILTER( {TM1SUBSETALL( [Employee Plan] )}, [Employee Plan].[Branch] = '' )}, ASC)}","filter":null,"showHierarchy":false,"batchSize":0,"elementsOnly":true}]

Thanks, JD.


#8

Hi @jhogewoning,

Thanks! That helps confirm and explain how it looks to behave differently.

Just for reference: the utilization of ng-if above was to help check to make it more consistent by ensuring that the requests or the subnm only initializes when the filter value is ready.

As otherwise seen on the post, it was sent but with filter set as empty - ‘’ causing a query that most probably can take longer to complete.

What you have done previously is great as well! Note that the SUBNM can check and wait for variables to be populated within []. So that is why the second approach works. It is quite different with empty strings as there can be times where we want to filter out elements that has empty attributes - ‘’. So the ng-if can help you out on this in case you encounter something this again.

Anyways, thanks again!


Paul


#9

Thanks @plim!