Skip to content

Commit 444a8f3

Browse files
committed
Server list
Swapping certain elements from "ng-show"/"ng-hide" to "ng-if". Should reduce CPU load slightly. Removed redundant UpdateDigest. Increased the server insertion batch processing from 50ms to 100ms which shouldn't be noticeable visually but reduce the load of repeatedly looping over every single server every xms.
1 parent f73c1a7 commit 444a8f3

File tree

2 files changed

+9
-10
lines changed

2 files changed

+9
-10
lines changed

garrysmod/html/js/menu/control.Servers.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,6 @@ function ControllerServers( $scope, $element, $rootScope, $location )
118118
RootScope.CurrentGamemode = gm;
119119

120120
if ( gm ) gm.server_offset = 0;
121-
UpdateDigest( RootScope, 50 );
122121
}
123122

124123
$scope.ServerClass = function( sv )
@@ -553,7 +552,7 @@ function AddServer( type, id, ping, name, desc, map, players, maxplayers, botpla
553552

554553
RootScope.ServerCount[ type ] += 1;
555554

556-
UpdateDigest( RootScope, 50 );
555+
UpdateDigest( RootScope, 100 );
557556
}
558557

559558
function MissingGamemodeIcon( element )

garrysmod/html/template/servers.html

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252

5353
</div>
5454

55-
<div class="innerpage" ng-hide="CurrentGamemode != null">
55+
<div class="innerpage" ng-if="CurrentGamemode == null">
5656

5757
<h1 class="menuheader">
5858
<span ng-tranny="'servers_gamemodes'"></span>
@@ -62,7 +62,7 @@ <h1 class="menuheader">
6262
<div class='server_gamemodes whiterounded'>
6363

6464
<div class="server_gamemodes_inner scrollable">
65-
<div class='gamemode {{gamemode.element_class}}' ng-repeat="gamemode in GamemodeList | filter: gamemodeFilter | orderBy:[GMSort, '-(num_players)', 'name' ]" ng-click="SelectGamemode( gamemode )">
65+
<div class='gamemode {{gamemode.element_class}}' ng-repeat="gamemode in GamemodeList | filter: gamemodeFilter | orderBy:[GMSort, '-(num_players)', 'name' ] track by gamemode.name" ng-click="SelectGamemode( gamemode )">
6666

6767
<img ng-src='../gamemodes/{{gamemode.name}}/icon24.png' onerror="MissingGamemodeIcon( this )"/>
6868

@@ -104,7 +104,7 @@ <h1 class="menuheader">
104104

105105
</div>
106106

107-
<div class="innerpage" ng-show="CurrentGamemode != null">
107+
<div class="innerpage" ng-if="CurrentGamemode != null">
108108

109109
<h1 class="menuheader">
110110
<span>{{GamemodeName(CurrentGamemode)}}</span>
@@ -134,15 +134,15 @@ <h1 class="menuheader">
134134

135135
<div id="placeholder_pre" style="height: {{CurrentGamemode.server_offset * 22}}px"></div>
136136

137-
<div ng-repeat="server in CurrentGamemode.servers | orderBy: CurrentGamemode.OrderBy : CurrentGamemode.OrderReverse | filter: serverFilter | startFrom : CurrentGamemode.server_offset | limitTo : ServersPerPage"
137+
<div ng-repeat="server in CurrentGamemode.servers | orderBy: CurrentGamemode.OrderBy : CurrentGamemode.OrderReverse | filter: serverFilter | startFrom : CurrentGamemode.server_offset | limitTo : ServersPerPage track by server.address"
138138
class="server {{ ServerClass( server ) }} {{IfElse( CurrentGamemode.Selected == server, 'activeserver', '' )}}" ng-mouseup="SelectServer( server, $event )" ng-dblclick="JoinServer( server )">
139139

140140
<name>
141141
<a class='favbutton {{IfElse( server.favorite, "favorited", "" )}}' ng-click="ToggleFavorite( server );$event.stopPropagation();"></a>
142-
<img class="flag" ng-src='asset://garrysmod/materials/flags16/{{server.flag}}.png' onerror="MissingFlag( this )" ng-show="server.flag" loading="lazy"/>
143-
<img class="passworded" src='img/server-passworded.png' ng-show="server.pass" loading="lazy"/>
142+
<img class="flag" ng-src='asset://garrysmod/materials/flags16/{{server.flag}}.png' onerror="MissingFlag( this )" ng-if="server.flag" loading="lazy"/>
143+
<img class="passworded" src='img/server-passworded.png' ng-if="server.pass" loading="lazy"/>
144144
<span>{{ServerName(server)}}
145-
<tag class="{{IfElse( server.version_c > 0, 'future', '' )}}" ng-show="server.version_c != 0">{{IfElse( server.version_c > 0, 'Invalid version', 'Outdated' )}}: {{server.version}}</tag>
145+
<tag class="{{IfElse( server.version_c > 0, 'future', '' )}}" ng-if="server.version_c != 0">{{IfElse( server.version_c > 0, 'Invalid version', 'Outdated' )}}: {{server.version}}</tag>
146146
</span>
147147
</name>
148148
<lastvisited ng-hide="server.lastplayed == 0"><lbl ng-tranny="'server_lastvisit'"></lbl> {{server.lastplayedDate}} <span class='lasttime'>{{server.lastplayedTime}}</span></lastvisited>
@@ -159,7 +159,7 @@ <h1 class="menuheader">
159159

160160
</div>
161161

162-
<div class='serverinfo' ng-show="CurrentGamemode.Selected">
162+
<div class='serverinfo' ng-if="CurrentGamemode.Selected">
163163
<span class="closebtn" ng-click="SelectServer( null, $event )"></span>
164164
<div>
165165

0 commit comments

Comments
 (0)