Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request] Decrease description loading time #459

Closed
Jikkarr opened this issue Mar 15, 2017 · 2 comments
Closed

[Feature Request] Decrease description loading time #459

Jikkarr opened this issue Mar 15, 2017 · 2 comments
Assignees
Milestone

Comments

@Jikkarr
Copy link

Jikkarr commented Mar 15, 2017

I just wanted to ask if there was a way to decrease the description loading time.

@Jikkarr Jikkarr changed the title Decrease description loading time [Feature Request] Decrease description loading time Mar 15, 2017
@atkinsj
Copy link

atkinsj commented Mar 22, 2017

+1 to this. The description loading time is horrendously slow and reduces the usability of it.

@exodus4d
Copy link
Owner

exodus4d commented Jul 8, 2018

@luct I finally had time to fix this issue with a bunch of other performance issues with map information panels.

Before fix:

The current state, where each UI module (route-, signature-,killboard- ... ) is completely independent from each other lead to some problems:

  1. Developing new modules (e.g. Intel/Structure module) is pretty straight forward and easy. Just adding a few lines of Code for initialization and then add a new *.js file for the new module that implements some abstract methods like getModule(), initModule() that do the render and logic for that module. The rest is automatically done by Pathfinder ...
  2. ... The downside of this "pattern" is, that each module comes with its own Ajax calls which are required in order to get additional data from Server (e.g. "get all system signatures") ....
  3. .... Pathfinder loops over all JS Modules that should be visible, then invokes the initModule() method for all of them and the rest is handled by the Module itself. Some of them trigger additional Ajax calls...
  4. ... This leads to some bad delays 🙁 ...

Solution

The new approach is, that each Module is still independent from each other but Modules can now subscribe to a data source before they actually get rendered for the first time.

  • "Signature Module" says "hey, I need all signatures for that system", "Intel Modul" says "hey, I need all Structures for that system",....
  • When a user now clicks at a system, Pathfinder already knows which data is required for all Modules that have subscribed to a data source....
  • Now we can ran some tasks in parallel (async)!
    1. The Browser will instantly submit an Ajax call to the server in order to get all required data for all modules that will be rendered
    2. The Browser can start rendering all modules (like before) (e.g. render empty signature table, show empty Intel table,...) but it knows there is still data on the way...
  • When rendering is complete, Ajax data for all modules should be available in time and all Modules that have subscribed to a data source get updated at once.

performance_test

@exodus4d exodus4d self-assigned this Jul 8, 2018
@exodus4d exodus4d added this to the v1.3.6 milestone Jul 8, 2018
@exodus4d exodus4d mentioned this issue Jul 20, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants