41
Views
3
Comments
Solved
[OutSystems Maps] Errors with Outsystems Maps Component
outsystems-maps
Reactive icon
Forge asset by OutSystems
Application Type
Reactive
Service Studio Version
11.54.38 (Build 63033)
Platform Version
11.18.1 (Build 37828)

Hello,

We are receiving multiple warnings and errors when using the Outsystems Maps component that are beginning to affect our runtime behavior. I tried updating the component to the newest available, v1.6.7, but that doesn't seem to have made a difference.

Most notably is the "[Violation] Added non-passive event listener to a scroll-blocking <some> event. Consider marking event handler as 'passive' to make the page more responsive." error which occurs for every marker on our map. This didn't used to affect the app, but as we have grown and now have over 4,000 markers on an individual map, it is causing the entire screen to freeze and have to be force exited. We have since split the map into multiple different screens to get around this, but our clients would much prefer to have all markers on one map if possible.

We are also seeing this warning - "google.maps.event.addDomListener() is deprecated, use the standard addEventListener() method instead. The feature will continue to work and there is no plan to decommission it." I don't think this warning is causing the break to the map since it says it will continue to work, but it seems to be related to the other warning that are causing the map to break. I attached a screenshot of both warnings in the console.

Overall, it seems like both of these warnings are coming straight out of the Outsystems Maps component and therefore I can't figure out a fix on my end. Is there any plan to update the Outsystems Maps component to comply with these two warnings? Is there any potential workaround in the meantime? 

Thanks,

Charlie Highum


Screenshot 2024-01-09 153403.png
2022-11-12 11-28-30
Gonçalo Martins
Staff
Solution

Hello @Charlie Highum 

Thank you for the quick feedback.

  • about the warning, we'll add to the backlog investigating if this is something we can update to make the warning disappear, but this is low priority since it doesn't seem to have any impact on the application and if there's something we can do on our wrapper of this library (ROU-4709 for future release notes reference).
  • about the use case you mentioned for large datasets, it's a known issue and is a problem that comes from the fact we're using blocks to provide a better low-code experience which is our focus. For this, what we're planning to have somewhere during Q1 / Q2 2024 is to provide a set of APIs through client actions to allow this more advanced use case (you can refer to ROU-4708 for future release notes reference). This is still with the Dev Experience team so at this time we can't provide an ETA.
    • if you can share all the particular use cases where you're getting performance issues we can use that as really good feedback.
    • you can also try to extend through javascript APIs by exploring the code if you can't wait, but in that case, you would get some technical debt since the code wouldn't be supported.

Cheers,
GM

2022-11-12 11-28-30
Gonçalo Martins
Staff

Hello @Charlie Highum 

Thanks for reaching you.

Could you kindly share an oml where we can replicate that? 
Can you also expand on what you mentioned by "beginning to affect our runtime behavior"? 
Which are the behaviors you're seeing? Those warnings from what I can see from your screenshot, seem to come directly from the Google Maps library, but without sharing something where we can reproduce it we can't help much.

UPDATE:

  • The first error I'm not sure's related to Maps but the second, besides not being able to reproduce 100% of the time I was able to get.
  • However, it's something from the Google Maps library and as mentioned everything will continue to work and they have no plans to deprecate it.
  • So, it would be really important to get the information I asked from you


Cheers,
GM

UserImage.jpg
Charlie Highum

GM,

The behaviors we are seeing vary when trying to load the map with 4500+ markers. Worst case it will try loading for a while then freeze the screen completely until the browser, in my case Chrome, prompts me to force exit the page. In other scenarios for other users it has failed with an error message that the browser is out of memory. I've noticed it will usually load eventually if I do not scroll down the screen or do anything else to interfere while it is loading, otherwise it will freeze immediately.

The warning about the addDomListener() seems to come from Google Maps directly, the one that is actually causing the problems looks more like it's coming directly from the browser or platform due to something that is missing in the Outsystems Maps component.

I have attached a simple oml that can be used to show these warnings occurring but not affecting the runtime behavior. You would have to hook it up to a fairly large dataset in order to show the breaking behavior.

Thanks,

Charlie

MapDemo_v2.oml
2022-11-12 11-28-30
Gonçalo Martins
Staff
Solution

Hello @Charlie Highum 

Thank you for the quick feedback.

  • about the warning, we'll add to the backlog investigating if this is something we can update to make the warning disappear, but this is low priority since it doesn't seem to have any impact on the application and if there's something we can do on our wrapper of this library (ROU-4709 for future release notes reference).
  • about the use case you mentioned for large datasets, it's a known issue and is a problem that comes from the fact we're using blocks to provide a better low-code experience which is our focus. For this, what we're planning to have somewhere during Q1 / Q2 2024 is to provide a set of APIs through client actions to allow this more advanced use case (you can refer to ROU-4708 for future release notes reference). This is still with the Dev Experience team so at this time we can't provide an ETA.
    • if you can share all the particular use cases where you're getting performance issues we can use that as really good feedback.
    • you can also try to extend through javascript APIs by exploring the code if you can't wait, but in that case, you would get some technical debt since the code wouldn't be supported.

Cheers,
GM

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.