65 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE HTML>
 | |
| <html>
 | |
| <head>
 | |
|   <title>Timeline | performance</title>
 | |
| 
 | |
|   <style>
 | |
|     body, html {
 | |
|       font-family: arial, sans-serif;
 | |
|       font-size: 11pt;
 | |
|     }
 | |
|   </style>
 | |
| 
 | |
|   <!-- note: moment.js must be loaded before vis.js, else vis.js uses its embedded version of moment.js -->
 | |
|   <script src="http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js"></script>
 | |
| 
 | |
|   <script src="../../../dist/vis.js"></script>
 | |
|   <link href="../../../dist/vis.css" rel="stylesheet" type="text/css" />
 | |
|   <script src="../../googleAnalytics.js"></script>
 | |
| </head>
 | |
| <body>
 | |
| <p>
 | |
|   Test the performance with a lot of items. The Timeline can load hundreds of thousands of items, but the performance of rendering them in the browser is limited. Rendering typically runs smooth for up to a few hundreds of items at once (you can set a <code>zoomMax</code> to prevent the user from zooming out too far).
 | |
| </p>
 | |
| <p>
 | |
|     <label for="count">Number of items</label>
 | |
|     <input id="count" value="10000">
 | |
|     <input id="draw" type="button" value="draw">
 | |
| </p>
 | |
| <div id="visualization"></div>
 | |
| 
 | |
| <script>
 | |
|   // create a dataset with items
 | |
|   var now = moment().minutes(0).seconds(0).milliseconds(0);
 | |
|   var items = new vis.DataSet({
 | |
|     type: {start: 'ISODate', end: 'ISODate' }
 | |
|   });
 | |
| 
 | |
|   // create data
 | |
|   function createData() {
 | |
|     var count = parseInt(document.getElementById('count').value) || 100;
 | |
|     var newData = [];
 | |
|       var start = now;
 | |
|     for (var i = 0; i < count; i++) {
 | |
|       newData.push({id: i, content: 'item ' + i, start: start + 24*3600*1000 * i}); // much much faster than now.clone add days
 | |
|     }
 | |
|     items.clear();
 | |
|     items.add(newData);
 | |
|   }
 | |
|   createData();
 | |
| 
 | |
|   document.getElementById('draw').onclick = createData;
 | |
| 
 | |
|   var container = document.getElementById('visualization');
 | |
|   var options = {
 | |
|     editable: true,
 | |
|     start: now.clone().add(-3, 'days'),
 | |
|     end: now.clone().add(11, 'days'),
 | |
|     zoomMin: 1000 * 60 * 60 * 24,          // a day
 | |
|     zoomMax: 1000 * 60 * 60 * 24 * 30 * 3  // three months
 | |
|   };
 | |
| 
 | |
|   var timeline = new vis.Timeline(container, items, options);
 | |
| </script>
 | |
| </body>
 | |
| </html> |