summaryrefslogtreecommitdiff
path: root/www/lib/vis/examples/network/other/performance.html
blob: 0b3ea66365064371628142c23fde9cf78b2ffcd0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<!doctype html>
<html>
<head>
  <title>Network | Random nodes</title>

  <style type="text/css">
    body {
      font: 10pt sans;
    }
    #mynetwork {
      width: 600px;
      height: 600px;
      border: 1px solid lightgray;
    }

    #message {
      color:darkred;
      max-width:600px;
      font-size:16px;
      cursor:pointer;
      text-decoration: underline;
    }
  </style>

  <script type="text/javascript" src="../exampleUtil.js"></script>
  <script type="text/javascript" src="../../../dist/vis.js"></script>
  <link href="../../../dist/vis-network.min.css" rel="stylesheet" type="text/css" />

  <script type="text/javascript">
    var nodes = null;
    var edges = null;
    var network = null;
    var setSmooth = false;

    function destroy() {
      if (network !== null) {
        network.destroy();
        network = null;
      }
    }

    function draw() {
      destroy();
      var nodeCount = document.getElementById('nodeCount').value;
      if (nodeCount > 100) {
        document.getElementById("message").innerHTML = '<a onclick="disableSmoothCurves()">You may want to disable dynamic smooth curves for better performance with a large amount of nodes and edges. Click here to disable them.</a>';
      }
      else if (setSmooth === false) {
        document.getElementById("message").innerHTML = '';
      }
      // create a network
      var container = document.getElementById('mynetwork');
      var data = getScaleFreeNetwork(nodeCount);
      var options = {
        physics: { stabilization: false }
      };
      network = new vis.Network(container, data, options);
    }

    function disableSmoothCurves() {
      setSmooth = true;
      network.setOptions({edges:{smooth:{type:'continuous'}}});
      document.getElementById("message").innerHTML = '<a onclick="enableSmoothCurves()">Click here to reenable the dynamic smooth curves.</a>';
    }

    function enableSmoothCurves() {
      setSmooth = false;
      document.getElementById("message").innerHTML = '<a onclick="disableSmoothCurves()">You may want to disable dynamic smooth curves for better performance with a large amount of nodes and edges. Click here to disable them.</a>';
      network.setOptions({edges:{smooth:{type:'dynamic'}}});
    }


  </script>
  <script src="../../googleAnalytics.js"></script>
</head>
<body onload="draw();">
<p>
  Generate a random network with nodes and edges.
</p>
<p>
  <form onsubmit="draw(); return false;">
  <label for="nodeCount">Number of nodes:</label>
  <input id="nodeCount" type="text" value="25" style="width: 50px;">
  <input type="button" value="Go" onclick="draw()">
</form>
</p>
<span id="message"></span>
<div id="mynetwork"></div>

</body>
</html>