gpt4 book ai didi

asp.net - ajax应用的分页设计模式

转载 作者:行者123 更新时间:2023-12-03 04:39:29 24 4
gpt4 key购买 nike

我正在构建一个ajax应用程序,并且我可以选择如何构建数据分页功能。基本上,用户将处理 1,000 - 2,000 条记录,但只有 20 条记录同时从数据库加载、发送到客户端,然后缓存在本地 session 存储中。这些记录是包含对象属性(基本上是客户记录)的 json 字符串。

这里有两个选择,假设我们正在处理 1,500 条记录,并且每页有 20 条记录长。 难题是在哪里存储 1,500 个记录的 ID。

选项 1:这 1,500 条记录的 ID 以 int 列表的形式存储在服务器 session 上,并针对每个请求进行序列化和反序列化。客户端不知道每个页面的记录ID,只请求页码。在服务器上,当用户请求页面 X 时,我们查看 int 列表并确定页面 X 的记录的 ID,加载这些记录并向客户端发送带有这些 ID 的 json 字符串。这里的缺点是我们在服务器 session 上携带 1,500 个整数的列表。好处是,当我们请求页面时,我们只向服务器发送一个 int。

选项 2:当用户登录时,1,500 条记录的 ID 会发送到客户端,然后该列表将存储在本地存储 session 中。当用户请求页面 X 时,JavaScript 函数确定页面 X 上有哪些记录 ID,并向服务器发送 20 个整数的 json 序列化列表。然后服务器返回带有这些 ID 的记录。好处是服务器端 session 更轻,这应该会提高性能(不需要在每个请求时读/写/序列化该列表)并且可能更具可扩展性。缺点是每次请求页面时我们都会向服务器发送 20 个整数的列表。

我倾向于选项 2:这是最好的方法吗?

注意 1) 我要求用户支持 HTML5 本地存储,2) 服务器端实现将是 azure 和 WCF。

最佳答案

也许我误会了,但我不太明白你的方法。如果您知道页面长度并且知道所需的页码,为什么不能在 ajax 调用中将这些作为参数发送到服务器,然后在数据库的 sql 语句中将其限制为此。我想说的是,首先知道这些 ID 有什么意义。例如,看看 jquery datatables 插件如何执行分页:http://www.datatables.net/examples/server_side/server_side.html 。正如您所看到的,他们使用将页码和页面位置发布到服务器的方法。然后,根据此限制您想要返回的行非常容易(至少在 Oracle、MySQL 和 MS SQL 中)。除非我完全错过了要点,否则请告诉我。

关于asp.net - ajax应用的分页设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9846205/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com