We are developing an evaluation system for cram schools.
Web applications built with ASP.NET MVC (vb.NET, .NET Framework 4.6).
HTML is used to generate a list with student names vertically and evaluation items horizontally.
Each cell can enter a score (0-100) in the text box.
(Data update to DB after score entry for each cell)
The number of such lists is huge, and there are about 500 lines*40 columns, and there are about 20,000 cells of input.
The large number of items is a bottleneck, and the initial display of the screen takes about 30 seconds, so there is a performance problem.
In order to reduce server, client traffic, and frequency of communication, static file (JS, CSS) bundle, server response gzip compression, etc. have been implemented, but this is not a good condition.
What are the best ways to improve performance, including the following points of view?
①It doesn't take long to display even on low-spec client PCs.
②Are there any third-party products that can optimize the list and meet the requirements?
(I am wondering if I can use GrapeCity's Spread.js.)
I'm worried because there is a requirement that I can change the value by displaying all the items side by side.
javascript html asp.net
Have you actually tried typing on the 20,000 cell screen? How long does it take to input? "Is ""30 seconds for initial display of the screen"" a time that cannot be ignored for the input time?" (If it takes 3 hours to input, wouldn't it be a big deal if it took 30 seconds to initialize?)
Also, can I enter it without any errors? I feel that the first thing to do is to change the screen design.Optimization—From the saying
"First law of program optimization: Don't optimize.Second law of program optimization (advanced only): Don't do it yet." - Michael A. Jackson
As I suggested in the comment section of the question, why don't you try paging?
Paging (CORE) in ASP.NET MVC http://surferonwww.info/BlogEngine/post/2021/01/30/paging-in-aspnet-core-mvc-application.aspx
I don't know where the bottleneck is in the questioner's app, so I can't come up with a pinpoint improvement plan, but I think paging will have some effect: (1) reduce the number of records retrieved from DB at once, (2) reduce the server's burden when rendering to html.
© 2024 OneMinuteCode. All rights reserved.