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

purpose #1

Open
flieks opened this issue Oct 10, 2019 · 3 comments
Open

purpose #1

flieks opened this issue Oct 10, 2019 · 3 comments

Comments

@flieks
Copy link

flieks commented Oct 10, 2019

Hi @TimYi

i am curious, what is the purpose of using canvas for making a spreadsheet based component?
Is it better in performance compared to plain html ? Or more possibilities ?

Greetings
Felix

@TimYi
Copy link
Owner

TimYi commented Oct 18, 2019

Hi @flieks

There are three key purposes for implementing a table with a canvas.

The first is to solve the performance problem of large documents, the canvas only needs to render the content of one screen. As long as the content of the display area is calculated fast enough, the performance of the table can be guaranteed.

The second is the frozen row and column of the table, which is difficult to achieve with dom, it will have an impact on performance. Canvas solution makes it easy to implement this feature.

The third is the border of cells, it is more difficult to implement with dom, and can be easily implemented with canvas.

The second and third issues, in the dom-based solution, in turn affect performance.

@TimYi
Copy link
Owner

TimYi commented Oct 18, 2019

And this project is inspired by x-spreadsheet.

This project aims to provide a customiziable spreadsheet bottom support, so that the upper editor does not care about the basic issues such as table rendering, event triggering.

On top of this, an extensible, full-featured editor will be provided so that users can choose to extend the editor directly or implement their own editor directly with the support of the underlying components.

@flieks
Copy link
Author

flieks commented Oct 31, 2019

Thats quite interesting, i will try it out when i find the time. Performance is key in spreadsheets and i need frozen rows/cols etc.
I have large spreadsheets on the server and i only want to render the viewport of the client (small part). Or i can render blank cells with correct width/height outside the viewport to make scrolling work easily.

Thanks for this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants