I have some pages that use Spry datasets to display data.
I have added a non-destructive filter to it and it has reached over 600 rows and is starting to hang.
Does anyone have any XP with Spry datasets and filters?
Any tips on speeding this up?
Data Sets
var dsSubscribers = new Spry.Data.XMLDataSet("list_man.py/getSubscribers?ran=" + randomString(), "data/row",{useCache:false, sortOnLoad: "first_name"});
var pv1 = new Spry.Data.PagedView(dsSubscribers, {pageSize:25, forceFullPages:false, setCurrentRowOnPageChange:false, useZeroBasedIndexes:true});
Filter Input:
<input type="text" id="sub_filter" onKeyUp="dsSubscribers.filter(FilterData);" />
JS:
var search_field = 'first_name'
function FilterData() {
var filter_val = document.getElementById('sub_filter').value;
if (filter_val == ''){dsSubscribers.filter(null);return;}
var re = new RegExp("^" + filter_val, "i");
var myFilterFunc = function(dataSet, row, rowNumber) {
if(row[search_field].search(re) != -1) {return row;} else {return null;}
}
dsSubscribers.filter(myFilterFunc);
}