Files
bloomfilter.js/lib/index.html
2016-07-12 10:58:30 +05:30

84 lines
2.4 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Bloom-filter</title>
<script src = "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<script type="text/javascript" src="fnv.js"></script>
<script type="text/javascript" src="jenkins.js"></script>
<script type="text/javascript" src="bitview.js"></script>
<script type="text/javascript" src="bloomfilter.js"></script>
<script type="text/javascript">
function calculate_fnv_hash(){
var data = document.getElementsByName("key-value")[0].value;
//alert(data);
console.log((fnv_1a(data)).toString(16));
}
//Initialize Bloom filter.
var filter = new BloomFilter(10);
function add_to_filter(){
var data = document.getElementsByName("add-value")[0].value;
console.log("Adding "+data+" to filter....");
filter.add(data);
console.log("Added "+data+" to filter.");
}
function lookup_in_filter(){
var data = document.getElementsByName("search-value")[0].value;
console.log("Looking for "+data+" in filter....");
if(filter.test(data)){
alert("Maybe present.");
}else{
alert("Definitely not present.");
}
}
//Visualization stuff.
function visualize_bfilter(){
var table = document.getElementById("table_bf");
table.deleteRow(-1);
var row = table.insertRow(0);
var bitview = filter.view();
var eArr = bitview.entries();
bitview.forEach(function(element, index, array){
cell = row.insertCell(index);
cell.innerHTML = element;
}
);
}
// function logArrayElements(element, index, array) {
// console.log('a[' + index + '] = ' + element);
// }
</script>
</head>
<body>
Insert value: </br>
<input type="text" name="add-value"> </br>
<button onclick="add_to_filter()">Add to filter</button></br></br>
Lookup value: </br>
<input type="text" name="search-value"> </br>
<button onclick="lookup_in_filter()">Lookup value</button></br></br>
Key value: </br>
<input type="text" name="key-value"> </br>
<button onclick="calculate_fnv_hash()">Find FNV hash</button></br></br>
<button onclick="visualize_bfilter()">Visualize</button></br></br>
Bloom filter:</br>
<table id="table_bf">
</table>
<div ng-app="filterApp" ng-controller="filterController">
<form name="form_bf" novalidate>
</form>
</div>
</body>
</html>