Issues with pagination and sorting

后端 未结 4 2040
小蘑菇
小蘑菇 2021-02-14 03:44

I\'m looking into situations in database-oriented web applications when one should rely on client side sorting of tables over sorting on the server side. One particular situatio

4条回答
  •  没有蜡笔的小新
    2021-02-14 04:06

    The client side is best kept simple: Javascript sorting/paging is only for very small result sets - small enough that a user will not notice a performance hit.

    The server side is where you can optimize server load:

    Load can come in the form of frequent requests for more pages, large numbers of rows/columns per page, and frequent requests for resorting. (We haven't even talked about filtering)

    So depending on your users and actual usage, you may need some form of caching. Note, these are suggestions for a time AFTER you know what your users are doing:

    • For frequent page requests, consider having some Ajax requests preload the next few (and previous) pages, then swap in the rows (via Javascript) to the table upon user request.

    • For large page sizes, consider keeping the rows in a "most-recently-used" application (memory) cache, so that the database is not required to spit out the same huge chunks of data over and over again.

    • For frequent resorting, a good approach is to keep a cache table in SQL with only the results.

    And always, always, always index the database appropriately.


    Additional response:

    My very subjective response is this: The user (me) wants to sort from an arbitrary page. Let them (me). There is nothing more annoying than being where you want to be, and having an application throw you back to the beginning of the list.

    Another consideration is multiple levels of sorting: do you want to implement sorting by serial number, then username? Consider what Microsoft Excel does, or any other application that your users are familiar with. Your users will probably be fine with what they are accustomed to - including being thrown back to page 1.

提交回复
热议问题