XXX
XXX

Reputation: 87

Performance Issue due to Network

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:

  1. I have a result set of approximately 2500 records x 30 columns.
  2. Display as a Tabular view with client side sorting and plenty of cell formatting.
  3. Load time reasonably fast in two different locations separated 12 hours apart (one sits next to the web browser and the other sits half way across the globe from the web server).

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

Answers (3)

Zo Has
Zo Has

Reputation: 13038

  1. You can use server side paging on your grid & just load 10 entries per page
  2. You can provide a 'download as pdf' file option if users want to view the whole grid

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

user1616625
user1616625

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

bleeeah
bleeeah

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

Related Questions