84 lines
2.4 KiB
HTML
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> |