Leg*_*end 7 jquery user-interface design-patterns real-time
我有一系列实时事件.我正在开发一个前端来向用户显示这个流,以便:
流中的每个事件都有一个与之关联的状态,可以随时更改,因此我不断查询服务器最后x分钟的数据,并在客户端相应地更改状态.
我的第一次尝试是使用分页.但是,这引起了以下问题:
这种互动有设计模式吗?Twitter使用无限滚动.这种模式很棒但我不太确定如何使其适应情况:
有什么建议?
听起来将排序转移到前端是实现您想要的结果的最佳方式。我不会深入讨论无限滚动/分页,因为那里可能有更好的资源,但基本上会跟踪检索到的最后一行(或页面)并将其与您的请求一起发送。希望这有助于解决阻碍您实现这一点的其他问题。
旁白:根据数据的实时性,您可能应该研究其他获取数据的方法,例如长轮询或 WebSocket,而不是每 X 分钟重复调用一次。
{
'status' : 'OK',
'last_row_retrieved': 20,
'events' : [{
'html' : "<div>The regular response</div>",
'sort_attr_1' : 10,
...
}]
}
Run Code Online (Sandbox Code Playgroud)
//Maintain a container for the results you get each call.
var myevents = [];
$.post(...,function(response) {
var data = $.parseJSON(response);
var events = data.events;
for(var i=0;i<events.length;i++) {
//Save each event
myevents.push(events[i]);
}
DisplayEvents();
});
//When user tries to sort do so with custom sorting function
myevents.sort(function(a,b) { return a.sort_attr_1 - b.sort_attr_2;});
DisplayEvents();
function DisplayEvents() {
//loop through myevents and display them however you're doing it
}
Run Code Online (Sandbox Code Playgroud)