SlickGrid рдкреНрд░рд▓реЗрдЦрди рд╕реБрдзрд╛рд░

SlickGrid рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдШрдЯрдХ рд╣реИред рдЗрд╕ рдШрдЯрдХ рдХреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХреНрд░рдо рдореЗрдВ рдЗрд╕рдХреА рдПрдХрд╛рдЧреНрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ (рд╕реВрдЪрдирд╛) рд╕реНрд░реЛрдд рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдирд╣реАрдВред рд╕реНрд▓реИрдХрдЧреНрд░рд┐рдб рдХреА рдПрдХ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЗрд╕рдХрд╛ рдмрд╣реБрдд рдЦрд░рд╛рдм рдкреНрд░рд▓реЗрдЦрди рд╣реИ, рдЬрд┐рд╕рдореЗрдВ AJAX рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рд╡рд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИред

SlickGrid рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЧреНрд░рд┐рдб рд╣реИ рдЬреЛ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ 500 рдФрд░ 500,000 рджреЛрдиреЛрдВ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд░реВрдк рд╕реЗ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╡рд┐рдЪрд╛рд░ рдХреЗрд╡рд▓ рдЙрди рддрддреНрд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ DOM рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡реЛрдВ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВред SlickGrid рдХрд╛ рдЙрдкрдпреЛрдЧ StackExchange Data Explorer рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЙрдирдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реНрд▓реАрдХрдЧреНрд░рд┐рдб рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдкреНрд░рд▓реЗрдЦрди рдХреА рд▓рдЧрднрдЧ рдкреВрд░реНрдг рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдХрд╛рд░рдг рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рднреВрдорд┐рдХрд╛, рд▓реЗрдЦрдХ рдХреА рдордВрд╢рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, StackOverflow рдкрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ , рдкреНрд░рд╢реНрдиреЛрдВ / рдЙрддреНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде Google рд╕рдореВрд╣ рджреНрд╡рд╛рд░рд╛ рднреА рдкреНрд░рд╕реНрддреБрдд рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдЦреИрд░, рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред

рдореИрдВ рдкреВрд░реЗ рдкреГрд╖реНрда рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЕрдиреБрд░реЛрдз рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЕрд░реНрдерд╛рдд AJAX рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕реЗрдЯ рдореЗрдВ, рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде AJAX рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реЛрддрд╛ рд╣реИ ред рдорд╣рд╛рди, рдореБрдЭреЗ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП! рд╕рдЪреНрдЪрд╛ рдЙрджрд╛рд╣рд░рдг рдХрд┐рд╕реА рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдареАрдХ рд╣реИ (рдЪрд▓реЛ digg.com рдХреЛ рджреЛрд╖ рджреЗрдВ)ред рд╣рдо "рдкреНрд░рд▓реЗрдЦрди" рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН, рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЙрджрд╛рд╣рд░рдгред рд╣рд╛рдБ, Slick.ataotemodel.js рд╕реЗ Slick.Data.RemoteModel рдЬреИрд╕реА рдХрд┐рд╕реА рддрд░рд╣ рдХреА рд╡рд╕реНрддреБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдореНрдо, рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ? рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╡рд╛рд▓ рди рдХреЗрд╡рд▓ рдореБрдЭреЗ ( рдПрдХ , рджреЛ ) рдЙрддреНрддреЗрдЬрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдареАрдХ рд╣реИ, рдЗрд╕ рдХреНрд╖рдг рдХреЛ рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрдВрдж рдХрд░ рджреЛред AJAX рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдкреГрд╖реНрдард╛рдВрдХрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рд▓реБрдХрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП, Slick.Controls.Pager рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рд╡рд╕реНрддреБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд░реБрдХрд┐рдП! рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рддрд╛ рддрд░реНрдХ Slick.Data.DataView рдкреНрд░рдХрд╛рд░ рдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред DataView рдФрд░ RemoteModel рдХреЛ рдХреИрд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВ? рдпрд╣ рдЧреМрд░реИрдпреЛрдВ рдкрд░ рдЧреЛрд▓рд┐рдпреЛрдВ рдХреА рддрд░рд╣ рдЧрдВрдз рдЖрддреА рд╣реИ ... рд╣рдо рдЗрд╕ рдХреНрд╖рдг рдХреЛ рдЕрднреА рдХреЗ рд▓рд┐рдП рд╕реНрдердЧрд┐рдд рдХрд░ рджреЗрдВрдЧреЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЧреНрд░рд┐рдб рдХреНрд╡реЗрд░реА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рд╢реАрд░реНрд╖ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдкреВрд░реЗ рдкреГрд╖реНрда рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓реЗред рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдмреАрдЪ, рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╡рд┐рдХрд▓реНрдк рд╣реИ ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рд╣рдо рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдкреГрд╖реНрдард╛рдВрдХрди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдЧреНрд░рд┐рдб рд╣рдо рд╕реНрд╡рдпрдВ рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗред

ffffuuuu

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕реНрд▓рд┐рдХрдЧреНрд░рд┐рдб рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдлреЛрд░реНрдХ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдФрд░ рд╡рд░реНрдгрд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рдирд┐рдХрд▓рд╛ред

AJAX рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ Slick.Data.DataView рдФрд░ Slick.Grid рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ (рдкрд╣рд▓рд╛ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рджреВрд╕рд░рд╛ рдЧреНрд░рд┐рдб рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ):
dataView.onRowCountChanged.subscribe(function (e, args) { grid.updateRowCount(); grid.render(); }); dataView.onRowsChanged.subscribe(function (e, args) { grid.invalidateRows(args.rows); grid.render(); }) 
рдбреЗрдЯрд╛ рд▓реЛрдбрд┐рдВрдЧ Slick.Data.DataView рдкреНрд░рдХрд╛рд░ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
 function getData() { $.get(url, function(data) { dataView.beginUpdate(); dataView.setItems(data); dataView.endUpdate(); }); } 

рдЧреНрд░рд┐рдб рдФрд░ рдЕрдиреНрдп рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрда рдХреЗ рдкреВрд░реЗ рдХреНрд╖реЗрддреНрд░ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕реНрд▓рд┐рдХрдЧреНрд░рд┐рдб рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рдКрдВрдЪрд╛рдИ рд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ рд╕реНрд▓реАрдХ.рдЧреНрд░реАрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдзрд┐ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:
 var h = $("#container").height()-$("#header").height()-$("#pager").height()-$(".slick-header").height(); $(".slick-viewport").height(h); grid.resizeCanvas(); 

Source: https://habr.com/ru/post/In151724/


All Articles