优化网站服务列表页在海量域名时的加载速度

This commit is contained in:
刘祥超
2022-09-30 13:48:16 +08:00
parent bb790ec687
commit 9432600de6
2 changed files with 35 additions and 27 deletions

View File

@@ -90,15 +90,16 @@ func (this *IndexAction) RunGet(params struct {
// 服务列表 // 服务列表
serversResp, err := this.RPC().ServerRPC().ListEnabledServersMatch(this.AdminContext(), &pb.ListEnabledServersMatchRequest{ serversResp, err := this.RPC().ServerRPC().ListEnabledServersMatch(this.AdminContext(), &pb.ListEnabledServersMatchRequest{
Offset: page.Offset, Offset: page.Offset,
Size: page.Size, Size: page.Size,
NodeClusterId: params.ClusterId, NodeClusterId: params.ClusterId,
ServerGroupId: params.GroupId, ServerGroupId: params.GroupId,
Keyword: params.Keyword, Keyword: params.Keyword,
AuditingFlag: params.AuditingFlag, AuditingFlag: params.AuditingFlag,
TrafficOutDesc: params.TrafficOutOrder == "desc", TrafficOutDesc: params.TrafficOutOrder == "desc",
TrafficOutAsc: params.TrafficOutOrder == "asc", TrafficOutAsc: params.TrafficOutOrder == "asc",
UserId: params.UserId, UserId: params.UserId,
IgnoreServerNames: true,
}) })
if err != nil { if err != nil {
this.ErrorPage(err) this.ErrorPage(err)
@@ -176,27 +177,35 @@ func (this *IndexAction) RunGet(params struct {
} }
// 域名列表 // 域名列表
var serverNames = []*serverconfigs.ServerNameConfig{}
if server.IsAuditing || (server.AuditingResult != nil && !server.AuditingResult.IsOk) { if server.IsAuditing || (server.AuditingResult != nil && !server.AuditingResult.IsOk) {
server.ServerNamesJSON = server.AuditingServerNamesJSON server.ServerNamesJSON = server.AuditingServerNamesJSON
if len(config.ServerNames) == 0 {
// 审核中的域名
if len(server.ServerNamesJSON) > 0 {
var serverNames = []*serverconfigs.ServerNameConfig{}
err = json.Unmarshal(server.ServerNamesJSON, &serverNames)
if err != nil {
this.ErrorPage(err)
return
}
config.ServerNames = serverNames
}
}
} }
var auditingIsOk = true var auditingIsOk = true
if !server.IsAuditing && server.AuditingResult != nil && !server.AuditingResult.IsOk { if !server.IsAuditing && server.AuditingResult != nil && !server.AuditingResult.IsOk {
auditingIsOk = false auditingIsOk = false
} }
if len(server.ServerNamesJSON) > 0 { var firstServerName = ""
err = json.Unmarshal(server.ServerNamesJSON, &serverNames) for _, serverNameConfig := range config.ServerNames {
if err != nil { if len(serverNameConfig.Name) > 0 {
this.ErrorPage(err) firstServerName = serverNameConfig.Name
return break
} }
} if len(serverNameConfig.SubNames) > 0 {
var countServerNames = 0 firstServerName = serverNameConfig.SubNames[0]
for _, serverName := range serverNames { break
if len(serverName.SubNames) == 0 {
countServerNames++
} else {
countServerNames += len(serverName.SubNames)
} }
} }
@@ -232,8 +241,8 @@ func (this *IndexAction) RunGet(params struct {
"ports": portMaps, "ports": portMaps,
"serverTypeName": serverconfigs.FindServerType(server.Type).GetString("name"), "serverTypeName": serverconfigs.FindServerType(server.Type).GetString("name"),
"groups": groupMaps, "groups": groupMaps,
"serverNames": serverNames, "firstServerName": firstServerName,
"countServerNames": countServerNames, "countServerNames": server.CountServerNames,
"isAuditing": server.IsAuditing, "isAuditing": server.IsAuditing,
"auditingIsOk": auditingIsOk, "auditingIsOk": auditingIsOk,
"user": userMap, "user": userMap,

View File

@@ -80,9 +80,8 @@
</td> </td>
<td>{{server.cluster.name}}</td> <td>{{server.cluster.name}}</td>
<td> <td>
<span v-if="server.serverNames.length > 0"> <span v-if="server.firstServerName.length > 0">
<span v-if="server.serverNames[0].subNames == null || server.serverNames[0].subNames.length == 0"><keyword :v-word="keyword">{{server.serverNames[0].name}}</keyword></span> <keyword :v-word="keyword">{{server.firstServerName}}</keyword>
<span v-else><keyword :v-word="keyword">{{server.serverNames[0].subNames[0]}}</keyword></span>
<span v-if="server.countServerNames > 1">等{{server.countServerNames}}个域名 <popup-icon :href="'/servers/serverNamesPopup?serverId=' + server.id" height="20em"></popup-icon></span> <span v-if="server.countServerNames > 1">等{{server.countServerNames}}个域名 <popup-icon :href="'/servers/serverNamesPopup?serverId=' + server.id" height="20em"></popup-icon></span>
</span> </span>
<span v-else class="disabled">-</span> <span v-else class="disabled">-</span>