【问题标题】:How can I change the order of the items on the server and the client gets the correct order to be displayed?如何更改服务器上项目的顺序并且客户端获得正确的显示顺序?
【发布时间】:2014-11-26 16:00:39
【问题描述】:

我想使用 REST 从服务器请求项目。

我的客户请求如下所示:

getItems(boolean after, int offset, int size)
  • after:如果为 true,则客户端希望在列表的 and 中拥有项目,如果为 false,则客户端希望在第一个之前拥有项目(以防有任何更新)
  • 偏移量:只有在after = true时才由服务器使用,它是客户端上的最后一项索引
  • size:是客户希望接收的最大项目数

在服务器端的顺序发生任何变化之前,这非常有效。

如何更改服务器上项目的顺序,客户端才能获得正确的显示顺序?

我是否应该在每次请求时向客户端发送一个有序的 id 列表,以便客户端可以自己进行排序?这会增加传输的字节数。

编辑:来自服务器的响应是 JSON 形式的有序项目列表。客户端将按照接收到的顺序处理列表。

客户端是一个应用程序。每当用户调用 getItems() 函数:

  • 滚动到列表末尾,
  • 在列表顶部做出拉动刷新手势。

【问题讨论】:

  • 你能告诉我们响应数据是什么样的吗?您多久在客户端调用一次 getItems 函数?
  • @phtrivier 我更新了我的答案。
  • 你能告诉我们实际的 JSON 响应吗?
  • 我们需要显示实际的 JSON 响应。很有可能,您没有发送 json 数组(在这种情况下,订单很容易获得。)另外,我仍然不确定我是否收到您的问题:您是否希望在服务器上的订单更改时收到通知,而不必显式调用“getItems”?
  • @phtrivier 是的,我将这些项目作为 JSON 数组发送。我的问题是在客户端处理订单更改的好方法是什么?客户应该每 x 分钟轮询一次以获取实际订单还是通过再次清除和加载来刷新列表。你会怎么做?

标签: java javascript android ios rest


【解决方案1】:

我自己从来没有做过,但我想你可以定期投票:

Long-polling android technology

或者,如果这是一个选项,当服务器上的元素顺序发生变化时推送通知:

http://www.doubleencore.com/2013/09/push-dont-poll-how-to-use-gcm-to-update-app-data/

【讨论】:

  • 我不能使用推送通知,因为我不能确定每个用户都接受它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-13
  • 2020-08-18
  • 1970-01-01
  • 1970-01-01
  • 2014-10-03
  • 1970-01-01
相关资源
最近更新 更多