Giter Club home page Giter Club logo

Comments (3)

josdejong avatar josdejong commented on September 26, 2024

First, the Timeline is an excellent solution for this type of applications. However, I would consider not to use "paginate" buttons to load the next set of data. Rather look at how Google Maps works: as soon as you drag the map, corresponding parts of the map are loaded. The same approach will work very nicely with the Timeline, and works much more intuitive than separate buttons: when the user moves the Timeline, the data in the visible area should be loaded automatically from the server.

  • Create one instance of the Timeline. Give it a maximum zoom level (option intervalMax) to prevent zooming out too much.
  • Create an event listener for the rangechanged event (see docs).
  • When the range changes (due to the user dragging or zooming), retrieve the new visible range with the method getVisibleChartRange. Send this range to a Controller in your page, which controls fetching and caching the data.
  • This controller should check if the items in the requested range are in cache, and if not, retrieve the missing data from the server. After the data is complete, the Controller can load the new data in the Timeline using the method draw or setData.
  • The Controller should also have some "garbage collection", to prevent too much data being kept in memory.

Next, it is hard to tell from just your description if the issue you have is something related to the memory management of your browser, something related to the timeline, or something in your code. From your code snippet I see that you delete the timeline with each redraw. This should not leave anything in memory, the timeline does not use any global variables or event listeners. So at that point it is up to the browser to free the memory.
The issue with the Timeline not drawing data after a while sounds weird, especially because you completely delete the Timeline every time. Can you create a small example demonstrating the issue in a repeatable way?

from chap-links-library.

josdejong avatar josdejong commented on September 26, 2024

zmang12, do you have any more comments or feedback on this issue, or shall I close it?

from chap-links-library.

josdejong avatar josdejong commented on September 26, 2024

I will close this issue for now. If you have any more on this please feel free to re-open the issue.

from chap-links-library.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.