lib/asset/htracr-ui.js
function () {
      var self = this;

      self.clear_ui();
      self.resize();
      self.draw_scale();

      self.capture_idx.servers.forEach(function (bundle) {
        var server_name = bundle[0];
        var conn_ids = bundle[1];
        var i;
        self.y += self.server_pad;
        self.draw_server_label(server_name);
        self.y += self.server_pad;
        conn_ids.forEach(function (conn_id) {
          var conn = self.capture.sessions[server_name][conn_id];
          htracr.connection(conn).draw(
            di, [server_name, conn_id, undefined, 0]);
          i = 0;
          conn.http_reqs.forEach(function (http_req) {
            var msg = htracr.http_msg(http_req);
            msg.kind = "req";
            msg.draw(di, [server_name, conn_id, 'http_reqs', i]);
            i += 1;
          });
          i = 0;
          conn.http_ress.forEach(function (http_req) {
            var msg = htracr.http_msg(http_req);
            msg.kind = "res";
            msg.draw(di, [server_name, conn_id, 'http_ress', i]);
            i += 1;
          });
          i = 0;
          conn.packets.forEach(function (packet) {
            var pkt = htracr.packet(packet);
            pkt.draw(di, [server_name, conn_id, 'packets', i]);
            i += 1;
          });
          self.y += self.conn_pad;
        });
        
        self.draw_referers();
        self.draw_locations();
      });
    }
function () {
      var self = this;

      self.clear_ui();
      self.resize();
      self.draw_scale();

      self.capture_idx.servers.forEach(function (bundle) {
        var server_name = bundle[0];
        var conn_ids = bundle[1];
        var i;
        self.y += self.server_pad;
        self.draw_server_label(server_name);
        self.y += self.server_pad;
        conn_ids.forEach(function (conn_id) {
          var conn = self.capture.sessions[server_name][conn_id];
          htracr.connection(conn).draw(
            di, [server_name, conn_id, undefined, 0]);
          i = 0;
          conn.http_reqs.forEach(function (http_req) {
            var msg = htracr.http_msg(http_req);
            msg.kind = "req";
            msg.draw(di, [server_name, conn_id, 'http_reqs', i]);
            i += 1;
          });
          i = 0;
          conn.http_ress.forEach(function (http_req) {
            var msg = htracr.http_msg(http_req);
            msg.kind = "res";
            msg.draw(di, [server_name, conn_id, 'http_ress', i]);
            i += 1;
          });
          i = 0;
          conn.packets.forEach(function (packet) {
            var pkt = htracr.packet(packet);
            pkt.draw(di, [server_name, conn_id, 'packets', i]);
            i += 1;
          });
          self.y += self.conn_pad;
        });
        
        self.draw_referers();
        self.draw_locations();
      });
    }
render the data