在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  HTML/ nodejs中使用socket-io,如何維護(hù)服務(wù)器應(yīng)答數(shù)據(jù)與emit數(shù)據(jù)的正確

nodejs中使用socket-io,如何維護(hù)服務(wù)器應(yīng)答數(shù)據(jù)與emit數(shù)據(jù)的正確對(duì)應(yīng)關(guān)系?

需求說(shuō)明

瀏覽器客戶端有如下數(shù)據(jù)
|id|姓名|地址|注冊(cè)時(shí)間|
|1|張三|北京|?|
|2|李四|上海|?|

我需要依據(jù)id到服務(wù)器查詢用戶的其他信息,比如注冊(cè)時(shí)間,因數(shù)據(jù)較多,我使用socket.io提交數(shù)據(jù)到服務(wù)端,服務(wù)端依據(jù)id查詢到信息后再通過事件返回。

難點(diǎn)說(shuō)明

這里是異步查詢事件,不知道服務(wù)端何時(shí)返回,而且返回的順序與emit發(fā)送查詢的順序不一樣。
這里需要維護(hù)發(fā)送的數(shù)據(jù)和服務(wù)端返回?cái)?shù)據(jù)的關(guān)系,即客戶端需要知道服務(wù)端返回的數(shù)據(jù)是哪個(gè)id查詢的結(jié)果,再與客戶端的數(shù)據(jù)進(jìn)行合并在表格中顯示。而且也不知道什么時(shí)候服務(wù)器已處理并已返回所有數(shù)據(jù)。

這種需求該如何處理呢?客戶端使用Vue,如何才能做到渲染更加高效?

回答
編輯回答
懷中人

增加一個(gè)head,來(lái)定義。如
{
head:{id:xxx}, //這個(gè)id是唯一值,可以用自增的整數(shù)就可以
data:{} //你的數(shù)據(jù)
}

2017年10月1日 13:08
編輯回答
北城荒

定義兩個(gè)計(jì)數(shù)器A和B,A和B值都為需要查詢的總條目數(shù),每發(fā)送一個(gè)查詢到服務(wù)端A自減1,每收到一個(gè)結(jié)果B自減1并檢查AB兩個(gè)計(jì)數(shù)器都已置零,至于數(shù)據(jù)的對(duì)應(yīng)可以在返回結(jié)果里原樣返回id字段判別。

2017年12月17日 21:11
編輯回答
憶往昔

查詢信息中加一個(gè)不重復(fù)的id,比如遞增的整數(shù)序列,回復(fù)中放同樣id。這樣客戶端可以把雙向信息配對(duì)。

另外和渲染沒有關(guān)系。

2017年8月17日 10:50
編輯回答
巫婆

這種情況不合適使用 socket, socket 撤了吧,

2018年7月1日 11:19