Completed
Last Updated: 02 Jun 2020 12:45 by ADMIN
Release 2.14.1
Alberto
Created on: 05 Sep 2019 13:20
Category: Menu
Type: Bug Report
4
Multiple parent menu items can be expanded at the same time.

Use any demo and rapidly hover between parent menu items:

21 comments
ADMIN
Marin Bratanov
Posted on: 16 Dec 2019 11:27

Alberto, please open a support ticket and send me a sample that reproduces this locally and a video of the problem. Also, keep in mind that the WASM flavor of Blazor has general performance issue (that is, it is considerably slower than the server-side flavor).

--Marin

Alberto
Posted on: 16 Dec 2019 10:32
i have tried to publish my app as wasm version on azure and the application goes faster and more fluid but menu still doing strange things and openinig multiple menu items at same time.
ADMIN
Marin Bratanov
Posted on: 11 Dec 2019 15:46

Hi Alberto,

On my end, I can see how slowly the WS messages travel, which indicates a large latency. In such a case, such a problem is expected and it's not something we can fix. The WASM flavot is what I can recommend for this.

 

Regards,
Marin Bratanov
Progress Telerik

 UI for Blazor
Alberto
Posted on: 11 Dec 2019 15:21

I had websockets enabled. If you just put a menu component it usually works well and fast, it is when you put more components in the page when it get slow, like this sample. Also clicking in combos get slow and dont open instantly.

 

https://blazorapp120191207024539.azurewebsites.net/fetchdata

ADMIN
Marin Bratanov
Posted on: 03 Dec 2019 08:01

Hi Alberto,

We just noticed that, by default in Azure, WebSockets are disabled, and this is detrimental to the SignalR performance and causes lag. This is when I had been able to reproduce an issue. We just enabled them explicitly and I was not able to observe a problem anymore (you can see how to do that at the very end of this post). I have updated the docs article with this information. Could you try enabling web sockets to see if this will help? You can also try deploying to a cluster closer to the user base.

I am also attaching here two videos - one before web sockets were enabled that shows how much lag there is compared to a local run, and one after web sockets are enabled. My PC is also pretty slow and even so there was no issue for me. I must note that if the network distance is too great (e.g., a user in Europe accessing a server on the West Coast), even web sockets may have a lag that can cause a problem.

On why Syncfusion's menu does not exhibit this - to the best of my knowledge its a wrapper over a JS widget, which means that all its markup and code is rendered in the browser and shown with JS. On the other hand, our components are native, so the server generates the markup for the items in the dropdown, so a round-trip is required. We do animations on the client with JS for performance reasons already.

 

Regards,
Marin Bratanov
Progress Telerik

 UI for Blazor
Attached Files:
Alberto
Posted on: 02 Dec 2019 20:21

Thanks for testing and confirming the issue.

Why other vendors doing blazor components dont have this issue? like this one that just shows the menus very fast and responsive and without issue.

https://www.syncfusion.com/blazor-components/blazor-menu-bar

I guess it is because they are JS wrappers, but cant you also use some JS to speed this up in cases like this where native component doesnt work well?

ADMIN
Marin Bratanov
Posted on: 02 Dec 2019 18:09

Hello Alberto,

We tested this by deploying to Azure as well, and it looks like the latency is simply too large for a server-side blazor app to work as expected. I documented this issue in the Deployment Troubleshooting article (commit diff). At this point, I do not believe there is anything more we could do about this case, we can't work around the laws of physics that add the network latency.

 

Regards,
Marin Bratanov
Progress Telerik

 UI for Blazor
ADMIN
Marin Bratanov
Posted on: 26 Nov 2019 16:15

Hello Alberto,

We did not improve a specific case for a number of items. We reduced the events that go to the server. The more items there are, the larger the payload and it is likely that the diffs will be bigger, and this can cause slowdowns and the same type of asynchronous arrival of data that causes the problem here (which has the same root cause as the menu issue, the linked issues have better explanations on what happens).

The maximum speed of the LAN or Internet connection will not affect the latency - for example, you may still be able to run a speedtest to 100Mbps, all the while having latency too large to run a server blazor app.

Please open the web sockets tab of the Chrome dev tools and see whether you can see delay in the speed with which messages appear when requesting from the cloud and when hosting locally. You can also try a ping  command to see the latency you have to the server, but that may be lower than the actual delay for a SignalR request as they go through different code on the server.

I also uploaded the sample I previously attached to our staging server which has a higher latency (in my case it is several countries away) and it seems to work fine for me. I can clearly see some of the lag affecting the shown item when I move the mouse really quickly, but things still work fine for me. I am attaching a video of this so you can see what I mean. The latency a ping returns for me for this server varies between 60 and 120ms.

Also, do you have a site live I can observe this on?

Regards,
Marin Bratanov
Progress Telerik

 UI for Blazor
Alberto
Posted on: 26 Nov 2019 15:45
I dont think is high latency is just an azure website and a good internet connection 100 Mbps, but of course it is different than localhost. I thought if you improved for just 2 menu items like in your online demo where it cant be reproduced now maybe you can also improve for 4 or 5 menu items. If you upload your sample to azure or other website i think you will see the problem. I understand WASM is better option but not ready till next May.
ADMIN
Marin Bratanov
Posted on: 26 Nov 2019 14:30

What kind of latency are we talking about in the problematic case? I am asking because latency is a general problem for server-side Blazor and there are limits to what we could do - ultimately the events and expansion need to go to the server and it has to create the DOM diff. So for situations where large latency exists between a server and a client, a WASM app is likely to work much better.

 

Regards,
Marin Bratanov
Progress Telerik

 UI for Blazor
Alberto
Posted on: 26 Nov 2019 14:11
yes, in localhost it works fine, problem is when you upload to azure websites and you have latency.
ADMIN
Marin Bratanov
Posted on: 26 Nov 2019 13:37

Hi Alberto,

This seems to work fine for me. I am using 2.4.0 and .NET Core 3.1 Preview 3. Are using the same versions as well? I am also attaching here a sample and a video of the behavior I get from it so you can see if I am missing something. If you continue to experience this after upgrading to the latest version and comparing against this sample, I suggest you open a support ticket and show me how to reproduce it so we can investigate.

 

Regards,
Marin Bratanov
Progress Telerik

 UI for Blazor
Attached Files:
Alberto
Posted on: 26 Nov 2019 11:02
although this has improved and dont happen when you have only 2 items menu as in the online demo, it is still happening often when you have 4 o 5 menu items and you move between them.
Alberto
Posted on: 15 Oct 2019 13:59
Glad to see this is scheduled for 2.2! as the menu is unsuable as it is now and I was evaluating other vendors components also to find solution, i think is more important to fix big issues in your existing components like this than having new components, and as I said any application nowdays may have this latency even intranet apps that are accesed from VPN or from different countries.
ADMIN
Marin Bratanov
Posted on: 01 Oct 2019 12:45

Hi Alberto,

While a feature where items open only on click would be a solution for this, it is also subject to general prioritization rules. At this stage, new components like a scheduler and a combo/autocomplete are higher on the list than a click to open feature in the menu.

As for the suitability of server-side Blazor - while MS do not state this explicitly (they could not afford to do that), this is the general consensus in the dev community, and the behavior and specifics of the server flavor point that way - the fact that every DOM update must go up to the server, then back down to the browser means that large latency will be problematic and therefore intranet is a better target environment for server blazor. Adding to that the scalability issues, a public facing server-blazor app is open to a relatively easy DoS attack.

 

Regards,
Marin Bratanov
Progress Telerik

 UI for Blazor
Alberto
Posted on: 01 Oct 2019 12:25
Also the problem is exposed when you move the mouse quickly between the menu options, if you allow to make menu items only expandable on click (as i suggested on other feature) would not this be fixed more easy as you dont have to handle to many events to open/close many submenus so fast?
Alberto
Posted on: 01 Oct 2019 12:00

Where does Microsoft says that server-side is only for intranet apps? Almost everyone nowdays do applications to run in cloud and be accesed from internet and most people will be using server-side for this purpose, not for intranet.

I agree that blazor wasm will be better but that will not be ready until mid next year and by now we only have server-side model.

OK, hope this get addressed soon.

thanks!

ADMIN
Marin Bratanov
Posted on: 01 Oct 2019 10:00

Hello Alberto,

Those releases have had a different purpose - to add more charts, and to provide compatibility with new framework releases.

The fix of this issue requires a complete overhaul of the event handling system, which is not a trivial task, and requires some time.

It is also important to note that this issue manifests only for a server-side Blazor app when accessed over a large-latency connection (like our demos - being available to the general public over the Internet). This is, however, not the intended purpose of the server-side Blazor model - it is designed for Intranet use where latency is low, and the number of users is limited.
Ideally, our demos would use the client-side (WASM) flavor and this issue will be gone, but this is impossible at this point because the client-side flavor is still not production-ready.

In the intended purpose of server-side Blazor scenario, however, this issue is far less likely to manifest, if it happens at all.

With all that said, my best advice is to click the Follow button on this portal page, and you will get email notifications for status updates on this task. Once we know it has been handled, we will also add the release number to the page.

 

Regards,
Marin Bratanov
Progress Telerik

 UI for Blazor
Alberto
Posted on: 01 Oct 2019 09:28

any update on this when this will be fixed? as the menu is not usable as of now as multiple menus open and then they dont close. There has been already 2 new releases but menu still not working properly.

thanks

ADMIN
Marin Bratanov
Posted on: 20 Sep 2019 09:49

Hi,

I am reopening this for further investigation. It does not seem to manifest locally, but it does happen on our live demos, and the most likely problem is that there is a large latency to a server in the cloud (while server-side blazor is more suited to local environments).

 

Regards,
Marin Bratanov
Progress Telerik

 UI for Blazor
Alberto
Posted on: 19 Sep 2019 10:38
still same problem in 2.0 multiple parent menu can be expanded at same time.