[英]nodejs websocket pagination
我有一个使用javascript的接口,该接口请求使用nodejs连接到Websocket。 WebSocket经常将其产生的实时数据发送到接口。
什么是进行界面分页的最佳方法或最佳实践。
它不像我将服务器推送到接口的所有数据附加在一起,数据是通过websocket一对一发送的,所以它有点像日志记录。
这是一些代码示例
connection.onmessage = function (message) {
console.log(message.data);
//var json = JSON.parse(message.data.text);
content.prepend('<p><span style="color:red"></span> @ '+ message.data + '</p>');
console.log(message.data.text);
};
任何参考呢? 对不起,英语不好。
这个示例还有其他一些事情,然后只是请求的有关分页的信息。
在客户端,我们正在设置listRequest_Message
,并将消息传递到服务器的套接字事件。 SessionID
仅用于知道要响应的用户。 UseIndexStart
是当前的最小记录, UseIndexEnd
是当前的最大记录。
listRequest_Message = [[SessionID], [UseIndexStart], [UseIndexEnd]]
该示例每页返回21条记录
//Page Back var UseIndexStart = StartIndex - 21 var UseIndexEnd = UseIndexStart + 22 //Page Forward var UseIndexStart = parseInt(StartIndex) + 21; var UseIndexEnd = UseIndexStart + 22;
服务器应用
listRequest_news
码:
socket.on('listRequest_news', function(msg, body){
for(var i = 0; i < mediaObj.length; i++){
var thisobj = mediaObj[i];
var JSONmsg = JSON.parse(msg[0]);
var ClientIndex = clientkeyIndex.indexOf(JSONmsg);
var startindex = msg[1];
var endindex = msg[2];
if (i > startindex && i < endindex)
{
clientID = parseInt(ClientIndex);
client[clientID].emit('list_RequestGenericMedia', thisobj);
}
clientID = parseInt(ClientIndex);
client[clientID].emit('list_RequestGenericMedia', thisobj);
}
});
客户端
StartIndex
和EndIndex
码:
$("#listviewcontrolller_prev").on("click", "", function(event){
var selectedOption = localStorage.getItem('selectedOption')
var StartIndex = $("#prevpage").text();
var EndIndex = $("#nextpage").text();
var UseIndexStart = StartIndex - 21
var UseIndexEnd = UseIndexStart + 22
$("#prevpage").text(UseIndexStart);
$("#nextpage").text(UseIndexEnd);
var SessionID = localStorage.getItem('SocketID')
var listRequest_Message = [[SessionID], [UseIndexStart], [UseIndexEnd]];
$("#newsOutPut").empty();
socket.emit(selectedOption, listRequest_Message);
});
$("#listviewcontrolller_next").on("click", "", function(event){
var selectedOption = localStorage.getItem('selectedOption');
var StartIndex = $("#prevpage").text();
var EndIndex = $("#nextpage").text();
var UseIndexStart = parseInt(StartIndex) + 21;
var UseIndexEnd = UseIndexStart + 22;
$("#prevpage").text(UseIndexStart);
$("#nextpage").text(UseIndexEnd);
var SessionID = localStorage.getItem('SocketID')
var listRequest_Message = [[SessionID], [UseIndexStart], [UseIndexEnd]];
$("#newsOutPut").empty();
socket.emit(selectedOption, listRequest_Message);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.