Back to Examples

Data Grid Lazy loading

Jspreadsheet Pro implements a smart virtual DOM management that brings a greater performance. In the example below, the spreadsheet handles 2 million cells (200K x 10 columns).

ABCDEFGHIJ
1A1B1C1D1E1F1G1H1I1J1
2A2B2C2D2E2F2G2H2I2J2
3A3B3C3D3E3F3G3H3I3J3
4A4B4C4D4E4F4G4H4I4J4
5A5B5C5D5E5F5G5H5I5J5
6A6B6C6D6E6F6G6H6I6J6
7A7B7C7D7E7F7G7H7I7J7
8A8B8C8D8E8F8G8H8I8J8
9A9B9C9D9E9F9G9H9I9J9
10A10B10C10D10E10F10G10H10I10J10
11A11B11C11D11E11F11G11H11I11J11
12A12B12C12D12E12F12G12H12I12J12
13A13B13C13D13E13F13G13H13I13J13
14A14B14C14D14E14F14G14H14I14J14
15A15B15C15D15E15F15G15H15I15J15
16A16B16C16D16E16F16G16H16I16J16
17A17B17C17D17E17F17G17H17I17J17
18A18B18C18D18E18F18G18H18I18J18
19A19B19C19D19E19F19G19H19I19J19
20A20B20C20D20E20F20G20H20I20J20
21A21B21C21D21E21F21G21H21I21J21
22A22B22C22D22E22F22G22H22I22J22
23A23B23C23D23E23F23G23H23I23J23
24A24B24C24D24E24F24G24H24I24J24
25A25B25C25D25E25F25G25H25I25J25
26A26B26C26D26E26F26G26H26I26J26
27A27B27C27D27E27F27G27H27I27J27
28A28B28C28D28E28F28G28H28I28J28
29A29B29C29D29E29F29G29H29I29J29
30A30B30C30D30E30F30G30H30I30J30
31A31B31C31D31E31F31G31H31I31J31
32A32B32C32D32E32F32G32H32I32J32
33A33B33C33D33E33F33G33H33I33J33
34A34B34C34D34E34F34G34H34I34J34
35A35B35C35D35E35F35G35H35I35J35
36A36B36C36D36E36F36G36H36I36J36
37A37B37C37D37E37F37G37H37I37J37
38A38B38C38D38E38F38G38H38I38J38
39A39B39C39D39E39F39G39H39I39J39
40A40B40C40D40E40F40G40H40I40J40
41A41B41C41D41E41F41G41H41I41J41
42A42B42C42D42E42F42G42H42I42J42
43A43B43C43D43E43F43G43H43I43J43
44A44B44C44D44E44F44G44H44I44J44
45A45B45C45D45E45F45G45H45I45J45
46A46B46C46D46E46F46G46H46I46J46
47A47B47C47D47E47F47G47H47I47J47
48A48B48C48D48E48F48G48H48I48J48
49A49B49C49D49E49F49G49H49I49J49
50A50B50C50D50E50F50G50H50I50J50
51A51B51C51D51E51F51G51H51I51J51
52A52B52C52D52E52F52G52H52I52J52
53A53B53C53D53E53F53G53H53I53J53
54A54B54C54D54E54F54G54H54I54J54
55A55B55C55D55E55F55G55H55I55J55
56A56B56C56D56E56F56G56H56I56J56
57A57B57C57D57E57F57G57H57I57J57
58A58B58C58D58E58F58G58H58I58J58
59A59B59C59D59E59F59G59H59I59J59
60A60B60C60D60E60F60G60H60I60J60
61A61B61C61D61E61F61G61H61I61J61
62A62B62C62D62E62F62G62H62I62J62
63A63B63C63D63E63F63G63H63I63J63
64A64B64C64D64E64F64G64H64I64J64
65A65B65C65D65E65F65G65H65I65J65
66A66B66C66D66E66F66G66H66I66J66
67A67B67C67D67E67F67G67H67I67J67
68A68B68C68D68E68F68G68H68I68J68
69A69B69C69D69E69F69G69H69I69J69
70A70B70C70D70E70F70G70H70I70J70
71A71B71C71D71E71F71G71H71I71J71
72A72B72C72D72E72F72G72H72I72J72
73A73B73C73D73E73F73G73H73I73J73
74A74B74C74D74E74F74G74H74I74J74
75A75B75C75D75E75F75G75H75I75J75
76A76B76C76D76E76F76G76H76I76J76
77A77B77C77D77E77F77G77H77I77J77
78A78B78C78D78E78F78G78H78I78J78
79A79B79C79D79E79F79G79H79I79J79
80A80B80C80D80E80F80G80H80I80J80
81A81B81C81D81E81F81G81H81I81J81
82A82B82C82D82E82F82G82H82I82J82
83A83B83C83D83E83F83G83H83I83J83
84A84B84C84D84E84F84G84H84I84J84
85A85B85C85D85E85F85G85H85I85J85
86A86B86C86D86E86F86G86H86I86J86
87A87B87C87D87E87F87G87H87I87J87
88A88B88C88D88E88F88G88H88I88J88
89A89B89C89D89E89F89G89H89I89J89
90A90B90C90D90E90F90G90H90I90J90
91A91B91C91D91E91F91G91H91I91J91
92A92B92C92D92E92F92G92H92I92J92
93A93B93C93D93E93F93G93H93I93J93
94A94B94C94D94E94F94G94H94I94J94
95A95B95C95D95E95F95G95H95I95J95
96A96B96C96D96E96F96G96H96I96J96
97A97B97C97D97E97F97G97H97I97J97
98A98B98C98D98E98F98G98H98I98J98
99A99B99C99D99E99F99G99H99I99J99
100A100B100C100D100E100F100G100H100I100J100
<html>
<script src="https://jspreadsheet.com/v7/jspreadsheet.js"></script>
<link rel="stylesheet" href="https://jspreadsheet.com/v7/jspreadsheet.css" type="text/css" />
<script src="https://jsuites.net/v5/jsuites.js"></script>
<link rel="stylesheet" href="https://jsuites.net/v5/jsuites.css" type="text/css" />

<div id="spreadsheet"></div>

<script>
let data = [];

for (let j = 0; j < 500000; j++) {
    data[j] = [];
    for (let i = 0; i < 10; i++) {
        data[j][i] = jspreadsheet.helpers.getColumnNameFromCoords(i, j);
    }
}

jspreadsheet(document.getElementById('spreadsheet'), {
    data: data,
    tableOverflow: true,
    lazyLoading: true,
    lazyColumns: true,
    onlazyloading: function(el, addedRows, removedRows) {
        // Related events
    },
    license: 'ODhhZDA3MjQyYWM5NWQwYTFlZTNkNjA0NzY3ODFmMDFlYzcyYWQ0Y2FjZGQ3MDdhMGE2N2RkOThkYTRhOTAzYTY5ODYyMzM1Y2NlMTc3NWE5YTE4YTBiYzUyYzY3Njc4OTQ4ZDg3NmVkODJlZjAyOWI1MTRmOTRlMGI2YmJhNzYsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpRME9EWXlOekUzTENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0ozWldJaUxDSnNiMk5oYkdodmMzUWlYU3dpY0d4aGJpSTZJak0wSWl3aWMyTnZjR1VpT2xzaWRqY2lMQ0oyT0NJc0luWTVJaXdpZGpFd0lpd2lkakV4SWl3aVkyaGhjblJ6SWl3aVptOXliWE1pTENKbWIzSnRkV3hoSWl3aWNHRnljMlZ5SWl3aWNtVnVaR1Z5SWl3aVkyOXRiV1Z1ZEhNaUxDSnBiWEJ2Y25SbGNpSXNJbUpoY2lJc0luWmhiR2xrWVhScGIyNXpJaXdpYzJWaGNtTm9JaXdpY0hKcGJuUWlMQ0p6YUdWbGRITWlMQ0pqYkdsbGJuUWlMQ0p6WlhKMlpYSWlMQ0p6YUdGd1pYTWlYU3dpWkdWdGJ5STZkSEoxWlgwPQ=='
});
</script>
</html>