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

[Table] Table scrolls differently since 1.26 with batch rendering turned off #1664

Closed
sighrobot opened this issue Oct 5, 2017 · 15 comments
Closed

Comments

@sighrobot
Copy link

sighrobot commented Oct 5, 2017

Bug report

  • Package version(s): Table 1.26.0 and later
  • Browser and OS versions: All, macOS 10.12

Steps to reproduce

import React, { Component } from 'react';
import './App.css';
import '../node_modules/@blueprintjs/core/dist/blueprint.css';
import '../node_modules/@blueprintjs/table/dist/table.css';
import {Cell, Column, Table, RenderMode} from '@blueprintjs/table';

const columns = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];

class App extends Component {
  renderCell = (rowIndex) => {
    return (<Cell key={rowIndex}>ABC</Cell>);
  }

  render() {
    return (
      <div className="App">
        <Table
          renderMode={RenderMode.NONE}
          numRows={2000}>
          {columns.map((c) => {
            return (<Column key={c} renderCell={this.renderCell}/>);
          })}
        </Table>
      </div>
    );
  }
}

export default App;

Actual behavior

"@blueprintjs/core": "1.30.0",
"@blueprintjs/table": "1.27.0",

scrollbad

Expected behavior

"@blueprintjs/core": "1.28.0",
"@blueprintjs/table": "1.25.0",

goodscroll

Notes

This change started in 1.26 and is present in 1.27 as well. I am hoping RenderMode.NONE will continue to offer "gapless" scrolling but tbh I haven't kept up with the changelog as well I should be so I am not sure if something changed by design.

@cmslewis
Copy link
Contributor

cmslewis commented Oct 9, 2017

Not quite sure what to make of this at a glance, but I'll look into it.

@llorca
Copy link
Contributor

llorca commented Oct 9, 2017

@cmslewis we can play with the number of rows/cols in the buffer

@sighrobot
Copy link
Author

@cmslewis @llorca curious on the priority and/or timeline for addressing this – also what are your thoughts are on the original behavior (circa Table 1.25), i.e. which behavior is "correct" in your eyes?

I am stuck on 1.25 until this is resolved - trying to plan for a worst-case scenario 😅

@llorca
Copy link
Contributor

llorca commented Oct 19, 2017

@sighrobot no timeline, sorry. I know it doesn't look amazing, but you'll want it anyway for all the performance improvements that it brings.

Have you tried tweaking the values from the batcher? Try increasing some of these and see it makes things better. If none of that works, you can always go back to RenderMode.NONE to get rid of the batching behavior

@sighrobot
Copy link
Author

@llorca thank you for the batcher value suggestion! I will start to play with that.

However the reason why I opened this issue in the first place was to highlight the fact that RenderMode.NONE does not "get rid of the batching behavior" in 1.27 or later (at least it doesn't seem to visually), as per my GIFs above.

@orrybaram
Copy link

Any update on this? I'm getting similar results.

@sighrobot
Copy link
Author

@orrybaram fwiw I have not upgraded since 1.27 – I've been unable to achieve anything close to the old behavior through changing the batcher values.

@orrybaram
Copy link

Bummer

@karlb
Copy link

karlb commented Feb 11, 2018

Could this be related to #1974?

@Ciantic
Copy link

Ciantic commented Apr 15, 2018

It's not just during scrolling, when I stop scrolling it usually ends up like this:

image

Or like this:

image

So it's not usable as is. I wouldn't mind some blinking during scroll, but these are images after stopping scrolling.

Google Chrome.

P.S. I wonder does different scrolling behaviors affect this? E.g. in Windows the scrolling happens in steps, but I suspect with macOS and mobile devices it's by pixel.

@mrshll
Copy link
Contributor

mrshll commented Dec 7, 2018

I am having the same issue as @Ciantic when scrolling in Chrome in a medium sized table (400 rows). The scrolling itself is choppy, and sometimes when scroll has ended no rows are rendered.

I tried with all renderModes

image

I'll investigate more this afternoon.

@brandonjparrott
Copy link

I have also ran into this issue with ~10 columns and only 100 rows. Is there away to not have to render the cell every time the user scrolls?

@belal-mazlom
Copy link

Any update on this issue ...

@vinodsai-a
Copy link

Any update on this issue .. @adidahiya @giladgray @cmslewis

@adidahiya
Copy link
Contributor

adidahiya commented Apr 23, 2020

This is an old issue and feels outdated... there are other more recent table rendering issues to focus on, I think we should close this and instead look at / comment on issues in the table 3.8.x milestone. Try using table 3.7.x, and if you still have the problem in this thread, please file a new issue.

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