Reputation: 87
I am currently working on a .NET (3.5) page that has a large dataset and performance is a main concern for the users sitting in 2 different locations (separated 12 hours apart).
Goal & Requirements:
I have tried 2 different approach but could not satisfy both users. Here's what I've tried so far:
Summary: Client Side Grid is beneficial for the users sitting a distance away from the web server. However, not so much for the user sitting next to the server. Now the user sitting next to the server will have to sit and wait for the JQuery/Javascript to build the table.
Summary: Server Side Grid is beneficial for the users sitting next to the web server (as it loads almost instantaneous - barely 1 second for 3 MB). Likewise, for the user sitting on the other side of the globe suffers from the network transfer - 30+ seconds for 3.MB page.
After googling and experimenting; I am left still scratching my head on how to make both of these users happy.
*Note: I've decided not to include any source code as it would not assist you in any way possible.
I know that there's no one size fits all solution but I am looking for something that hits at least middle ground to satisfy both of these users.
Generally, at the very least, I would like to give the users the impression that the page is 'loaded'(fast) - start rendering before all data arrives; although it may still be loading data. I.e. Infinite Scrolling perhaps.
I am looking for a creative ideas; hence if your suggestion includes moving the server half-way across the globe; increase your bandwidth or any other far-fetched ideas; I would appreciate it if you keep your ideas to yourself.
Thanks.
D
Upvotes: 3
Views: 167
Reputation: 13038
You can further use client side grid with server side paging to improve access time. I think gridview with server side paging would do just fine. If you need to display all records at once then it is a separate problem.
Upvotes: 2
Reputation: 1082
Server side paging?
You said Creative ideas, so have you got gzip switched on to compress the data you are sending? Also, try minifying the html?
Upvotes: 2
Reputation: 3604
I have successfully used the DHTMLX Grid for this use. It has both the ability to infinite scroll and also paging. Only requesting data for that shown on the page / visible scroll area (reducing the amount of data sent over the wire at any given time. It's also pretty customisable and has many other features that you may find useful.
Upvotes: 1