We have a RestDataSource defined for the data I want to display in the grid which can display about 30 records on the screen at a time.
We have added filterEditor to the grid data to filterOnKeyPress().
We have about 7000 records coming from the exist database.
We are facing 2 major problems:
1) We checked the time the server takes to send the data back to the client and its minimal. But after getting the data, it takes time for the grid to display all of dem. There is a significant lag of about 45 secs to a min. We want to get rid of this lag as after that using the filters to filter on client side data works with awesome speed as there are no server calls anymore.
2) We have tried lazy loading to overcome the lag. About 25 rows are returned on each call but using the drawAheadRatio we allow about 300 records to be fetched and cached. So yes the intial load is become considerably fast. So now as I scroll down the grid we can see server calls being made to fetch more data. But now the interactivity is lost and even the filter doesnt work as it makes a call to the server everytime a value on the filter is changed. So client-side filtering is lost and it expects the server to do the filtering which I have not implemented yet. Even if I do implement it would mean that if I have 5 fields that provide filtering I have to make 5 calls to the server so that all criteria fields are considered. Thats nt good.
What I want is get all possible data from the server in a call which is fast in my case but speed up grid loading like showing the first 30 records shudnt be slow. Also, I want the filters to work on client side data rather than asking the server to sort or filter... I want the smartgwt client to do it which makes me conclude that its possible only if the client has all the data it needs cached wid it.
That brings another question on caching. How does caching of data take place when lazy loading is implemented???
Answers to these questions would really help me design my application better for better interactivity and faster processing.
Thanks,
Hetal
We have added filterEditor to the grid data to filterOnKeyPress().
We have about 7000 records coming from the exist database.
We are facing 2 major problems:
1) We checked the time the server takes to send the data back to the client and its minimal. But after getting the data, it takes time for the grid to display all of dem. There is a significant lag of about 45 secs to a min. We want to get rid of this lag as after that using the filters to filter on client side data works with awesome speed as there are no server calls anymore.
2) We have tried lazy loading to overcome the lag. About 25 rows are returned on each call but using the drawAheadRatio we allow about 300 records to be fetched and cached. So yes the intial load is become considerably fast. So now as I scroll down the grid we can see server calls being made to fetch more data. But now the interactivity is lost and even the filter doesnt work as it makes a call to the server everytime a value on the filter is changed. So client-side filtering is lost and it expects the server to do the filtering which I have not implemented yet. Even if I do implement it would mean that if I have 5 fields that provide filtering I have to make 5 calls to the server so that all criteria fields are considered. Thats nt good.
What I want is get all possible data from the server in a call which is fast in my case but speed up grid loading like showing the first 30 records shudnt be slow. Also, I want the filters to work on client side data rather than asking the server to sort or filter... I want the smartgwt client to do it which makes me conclude that its possible only if the client has all the data it needs cached wid it.
That brings another question on caching. How does caching of data take place when lazy loading is implemented???
Answers to these questions would really help me design my application better for better interactivity and faster processing.
Thanks,
Hetal
Comment