lanedirt / OGameX

Open-source OGame redesign clone built with Laravel 11.x.
https://main.ogamex.dev
MIT License
59 stars 22 forks source link

[BUG] Overview page with excessive refresh rate. #306

Closed dep1engenharia closed 2 months ago

dep1engenharia commented 2 months ago

Describe the bug A clear and concise description of what the bug is.

To Reproduce Steps to reproduce the behavior:

  1. Go to 'Overview Page'
  2. And 'Just wait there'

Expected behavior The overview page should refresh at a controlled, reasonable rate, ideally only when necessary (e.g., when new data is available or when a user manually triggers a refresh). The page should be stable, allowing smooth interaction without causing excessive CPU usage or flickering.

Screenshots image

Additional context This issue occurs across different browsers and persists even after clearing the cache and cookies. It seems to be related to the logic that controls the refresh rate on the overview page. Adjusting the refresh interval or implementing conditional refresh logic based on new data availability might help resolve this issue.

BIG THANK YOU FOR KEEPING THE DEVELOPMENTS IN THIS GAME!!! I'M LOVING IT!!!!!!

dep1engenharia commented 2 months ago

Hello @lanedirt,

I hope you're doing well. Do you happen to have a query or script that allows for the creation of multiple users at the same time?

Thank you in advance for your help!

off_topic

lanedirt commented 2 months ago

Hi @dep1engenharia, thanks for the bug report.

I just checked and can confirm the issue.

I think this problem has to do with the building queue javascript page refresh logic. Currently whenever a queue item is finished it attempts to refresh the page. This does works technically, but when you are building lots of units that have a very low time per unit (e.g. 1 second) it seemingly tries to refresh the page for every single unit.

I think we can fix this by only refreshing the page after all items in a queue are finished instead of for every single unit. So when building 4000 espionage probes, it should only refresh the page after all 4.000 are finished instead of for every single espionage probe.

Do you happen to have a query or script that allows for the creation of multiple users at the same time?

No unfortunately there is no existing query for this. I'm not sure what your goal is, but if you just want to create a bunch of users on your server for test purposes you could always run the feature test suite with php artisan test locally on your server. This creates quite a few users, like 20-30+ each time you run the tests. But of course it's not made for this purpose so use at your own risk 😄 .

dep1engenharia commented 2 months ago

Hi @lanedirt

Thank you for looking into issue and confirming the problem.

Your explanation makes a lot of sense, especially regarding the refresh logic causing the discrepancy when building large quantities of units. I agree that refreshing the page only after all items in the queue are finished would be a much better approach. This should prevent the issue of incomplete buildings and improve the ovarall user experience.

I'm not sure what your goal is, but if you just want to create a bunch of users on your server for test purposes you could always run the feature test suite with php artisan test

I just want to have fun lolol :]

Thanks!!

lanedirt commented 2 months ago

Hi @dep1engenharia,

This issue has been fixed and it should work better with the latest version.

The page should now only refresh when all units are finished of a build queue job instead of reloading for every single unit. If you still run into issues with this feel free to reopen.

dep1engenharia commented 2 months ago

Hi @lanedirt

Great work. Thanks 👌