diff --git a/plugins/dashboard/tps.go b/plugins/dashboard/tps.go
index 8572fa68651e918cd5b3720ffc4d9c8e5df7f7fa..22b59d76389c4fc6a9f0ef880d9d655c0f42a6ee 100644
--- a/plugins/dashboard/tps.go
+++ b/plugins/dashboard/tps.go
@@ -2,7 +2,6 @@ package dashboard
 
 import (
 	"encoding/binary"
-	"fmt"
 	"html/template"
 	"net/http"
 
@@ -27,11 +26,13 @@ func ServeWs(w http.ResponseWriter, r *http.Request) {
 	}
 
 	notifyWebsocketClient := events.NewClosure(func(sampledTPS uint64) {
-		p := make([]byte, 4)
-		binary.LittleEndian.PutUint32(p, uint32(sampledTPS))
-		if err := ws.WriteMessage(websocket.BinaryMessage, p); err != nil {
-			return
-		}
+		go func() {
+			p := make([]byte, 4)
+			binary.LittleEndian.PutUint32(p, uint32(sampledTPS))
+			if err := ws.WriteMessage(websocket.BinaryMessage, p); err != nil {
+				return
+			}
+		}()
 	})
 
 	metrics.Events.ReceivedTPSUpdated.Attach(notifyWebsocketClient)
@@ -42,8 +43,6 @@ func ServeWs(w http.ResponseWriter, r *http.Request) {
 		}
 	}
 
-	fmt.Println("DISCONNECTOR")
-
 	metrics.Events.ReceivedTPSUpdated.Detach(notifyWebsocketClient)
 }
 
diff --git a/plugins/dashboard/tps_template.go b/plugins/dashboard/tps_template.go
index 69d27e6e9477f0631dd0ac6d6b7bc98d161e3140..f12df4b5efac8eb41fe2e61ee9082f38fe3448f2 100644
--- a/plugins/dashboard/tps_template.go
+++ b/plugins/dashboard/tps_template.go
@@ -286,17 +286,20 @@ var tpsTemplate = `
                 }
             }]
         });
+
+        const dataStr = '{{.Data}}'
+        const parsedData = JSON.parse(dataStr.replace(/ /g, ','));
+        time = Date.now() - 1000 * (parsedData.length + 1);
+        for (let i = 0; i < parsedData.length; i++) {
+            chart.series[0].addPoint([time += 1000, parseInt(parsedData[i], 10)], false);
+        }
+		chart.redraw();
+        console.log(parsedData);
+
         const conn = new WebSocket("ws://{{.Host}}/ws");
         conn.binaryType = 'arraybuffer';
         conn.onopen = evt => {
             console.log("WebSocket is open now.");
-            const dataStr = '{{.Data}}'
-            const data = JSON.parse(dataStr.replace(/ /g, ','));
-            time = Date.now() - 1000 * (data.length + 1);
-            for (let i = 0; i < data.length; i++) {
-                chart.series[0].addPoint([time += 1000, parseInt(data[i], 10)], true);
-            }
-            console.log(data);
             console.log("WebSocket done.");
         }
         conn.onclose = () => {