//!*封装添加搜索记录功能 (newRecord:str,当参数为空时为获取历史记录; num:记录数,默认为12条;)
function addHisRecord(newRecord, num){
num = num || 12;
//获取本地存储的记录
var hisRecord_str = window.localStorage.getItem('hisRecord_str');
//当获取到的值为null时,创建一个空数组存储进去
if(typeof hisRecord_str == 'object'){
var hisRecord = [];
hisRecord_str = hisRecord.join('|');
window.localStorage.setItem('hisRecord_str', hisRecord_str);
}
//转换为数组
hisRecord = hisRecord_str.split('|');
//当hisRecord_str为空字符串时,清空数组
if( !hisRecord_str ){
hisRecord.pop();
}
//当实参不为空时,判断:
if( newRecord ){
//1.当该数组中不存在传进来的值时,则添加新记录到首位;
if( hisRecord.indexOf(newRecord) == -1 ){
hisRecord.unshift(newRecord);
//当记录小于 num 条时,添加到首位,当大于等于 num 条时,添加到首位并删掉末位
if( hisRecord.length > num ){
hisRecord.pop();
}
}else{
//2.当该数组中存在传进来的值时,则删掉对应位置的记录并添加新记录到首位;
var indexRecord = hisRecord.indexOf(newRecord);
hisRecord.splice( indexRecord, 1);
hisRecord.unshift(newRecord);
}
//重新转换成string存储到本地
hisRecord_str = hisRecord.join('|');
window.localStorage.setItem('hisRecord_str', hisRecord_str);
}else{//当实参为空时,返回获取到的历史记录,type: Array;
return hisRecord;
}
}
//!*封装删除搜索记录功能 (index: 0,1,2,...,'all';)
function removeHisRecord(index){
//获取本地存储的记录
var hisRecord_str = window.localStorage.getItem('hisRecord_str');
//转换为数组
var hisRecord = hisRecord_str.split('|');
//当hisRecord_str为空字符串时,清空数组
if( !hisRecord_str ){
hisRecord.pop();
}else if( index == 'all'){
hisRecord.splice(0, hisRecord.length);
}else {
hisRecord.splice(index, 1);
}
//将处理过的数据存储并渲染到页面
hisRecord_str = hisRecord.join('|');
window.localStorage.setItem('hisRecord_str', hisRecord_str);
hideOrShowHisRecord(hisRecord_str);//隐藏历史记录部分
//template_data(hisRecord, '#search-item-tmpl3', '#searchBox3');
}
//!*封装进入页面时查询并渲染搜索记录功能
function hisRecord(){
var hisRecord = addHisRecord();
var hisRecord_str = hisRecord.join();
//记录存在时渲染
if( hisRecord_str ){
template_data(hisRecord, '#search-item-tmpl1', '#searchBox1');
}
//hideOrShowHisRecord( hisRecord_str );//控制显示与隐藏
}
//根据模板,渲染数据到页面(data:待渲染的数据,template:模板,box:待渲染的盒子)
//需要引入dot.js模板引擎
function template_data(data, template, box){
var searchItemTmpl = doT.template($(template).html());
$(box).html(searchItemTmpl(data));
}
愿中国青年都摆脱冷气,只是向上走,不必听自暴自弃者流的话。
能做事的做事,能发声的发声。
有一分热,发一分光,就令萤火一般,也可以在黑暗里发一点光,不必等候炬火。
此后如竟没有炬火:我便是唯一的光。
——鲁迅