搜索与显示历史记录功能的实现

需求

完成一次搜索记录一次搜索,以后进入搜索页面会显示搜索历史,点击删除小图标会清空所有缓存

分割功能需求

主要分割为这几个步骤:

进入搜索后判断缓存中是否有值,如果没有缓存,隐藏历史记录跟小图标,如果有缓存,加载缓存,将缓存的内容加载进预先制作的显示容器中,并且在上方显示历史记录跟小图标;

输入值后,点击完成,判断是否有搜索结果,如果有,保存搜索记录,放进缓存,并且显示搜索结果,此时需要隐藏历史记录的container,隐藏完成按钮,上方的搜索框的长度变长,显示结果的container,并且input框中的值为不变,保存在input框中,没有就返回空

删除缓存

第一步

实现:

onLoad: function (options) {

const inputValue = options.inputValue;

if (wx.getStorageSync('searchData') == '') {

this.setData({

isHide: true,

isCover: true,

})

} else {

this.setData({

inputValue: inputValue,

confirm: '完成',

sercherStorage: wx.getStorageSync('searchData') || [],

isHide: false,

isShow: true

})

}

},

效果:

第二步

实现:

changeValue(e) {

let inputValue = e.detail.value;

if (inputValue == '') {

this.setData({

confirm: '取消',

isConfirm: false,

isHide:false, //显示历史记录container

width: '85%',

isShow: true, //显示图标以及标签栏

isCover:true //隐藏搜索结果的container

})

} else {

this.setData({

confirm: '完成',

inputValue: inputValue

})

}

},//监听输入

confirmValue(e) {

let value = this.data.inputValue;//获取输入值

if (this.data.confirm === '完成') {

let result = [];

for (let i in jobList) {

if (jobList[i].jobName.indexOf(value) >= 0){

result.push(jobList[i]);

this.setData({

result

})

}

if(this.data.result.length == 0) {

wx.showToast({

title: '未找到数据',

});

this.setData({

isConfirm: false,

isHide: false

})

}

}//搜索数据匹配

// 第二种搜索方法 正则匹配

// let result=[];

// let reg=new RegExp(value);

// for(var i=0;i

// if(jobList[i].jobName.match(reg)){

// result.push(jobList[i]);

// this.setData({

// result

// })

// }

// }

let searchData = this.data.sercherStorage;

searchData.push({

id: searchData.length,

name: value

})

wx.setStorageSync('searchData', searchData); //设置缓存

this.setData({

isConfirm: true, //隐藏搜索按钮

width: '95%',

inputValue: value,

isHide: true, //隐藏历史记录container

isShow: false, //隐藏图标以及标签栏

isCover: false //显示搜索结果

})

} else {

wx.navigateBack({

delta: 1, // 回退前 delta(默认为1) 页面

})

}//点击取消回到上个页面

},

效果:

第三步

clearStorage(e) {

wx.clearStorageSync('searchData');//清除缓存

wx.showModal({

title: '提示',

content: '确定删除全部历史记录?',

success: (res) => {

if (res.confirm) {

this.setData({

sercherStorage: [],

isShow: false

})

} else if (res.cancel) {

return false;

}

}

})

},

完整代码

wxml:

{{confirm}}

历史搜索

{{item.name}}

wxss:

page {

margin: 0;

padding: 0;

}

.searchContainer {

position: relative;

width: 100%;

height: 100rpx;

border-bottom: 8rpx solid #fbfbfb;

margin-left: 20rpx;

}

.search {

position: relative;

margin-top: 20rpx;

width: 85%;

height: 60rpx;

border: 3rpx solid #e8e8e8;

border-radius: 80rpx 80rpx 80rpx 80rpx;

float: left;

}

.searchInput {

position: absolute;

left: 65rpx;

top: 5rpx;

font-size: 15px;

color: #323230;

}

.searchImg {

position: absolute;

left: 26rpx;

top: 12rpx;

width: 35rpx;

height: 35rpx;

}

.cancleSearch {

position: absolute;

right: 0;

width: 126rpx;

height: 100rpx;

line-height: 100rpx;

text-align: center;

font-size: 15px;

color: #323232;

}

.hide {

display: none;

}

.history {

float: left;

position: relative;

height: 100%;

width: 100%;

}

.history-header {

float: left;

position: relative;

height: 110rpx;

width: 100%;

}

.title {

position: absolute;

font-size: 13px;

color: #313131;

left: 7rpx;

top: 38rpx;

}

.delectHistory {

position: absolute;

width: 30rpx;

height: 30rpx;

top: 43rpx;

right: 57rpx;

}

.history-content {

display: flex;

flex-direction: row;

justify-content: space-around;

align-items: space-around;

flex-wrap: wrap;

margin-right: 50rpx;

height: 100%;

width: 650rpx;

}

.content {

font-size: 13px;

max-width: 400rpx; //缓存显示最大宽度

margin-top: 20rpx;

padding-left: 15rpx;

padding-right: 15rpx;

height: 50rpx;

line-height: 50rpx;

color: #757575;

text-align: center;

border-radius: 50rpx;

background-color: #f8f9fb;

overflow: hidden;

text-overflow: ellipsis; //文本超出400rpx的后面的内容用省略号代替

white-space: nowrap;

letter-spacing: 1px;

}

最后

java搜索页面历史记录,页面缓存的操作(搜索历史记录),页面搜索功能实现...相关推荐

  1. php 设置页面内容具有缓存性,php header()设置页面Cache缓存

    header()函数在php的使用很大,下面我来介绍利用它实现页面缓存的一些方法,但使用header前必须注意,在它之前不能任何输出,包括空格. 手册上,我们对于cache都是写着如何设置,以便让代码 ...

  2. 页面静止一定时间没有操作跳转页面

    var currentUrl = window.location.href;            //获取当前页面地址     var timefly = 5000;         //超时时间 ...

  3. ehcache 缓存java对象_Ehcache 整合Spring 使用页面、对象缓存

    Ehcache在很多项目中都出现过,用法也比较简单.一般的加些配置就可以了,而且Ehcache可以对页面.对象.数据进行缓存,同时支持集群/分布式缓存.如果整合Spring.Hibernate也非常的 ...

  4. python操作界面_python页面操作

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python操作mongodb1.1. 前言1.2. 综合应用python操作m ...

  5. Ehcache 整合Spring 使用页面、对象缓存

    2019独角兽企业重金招聘Python工程师标准>>> che 整合Spring 使用页面.对象缓存 Ehcache在很多项目中都出现过,用法也比较简单.一般的加些配置就可以了,而且 ...

  6. MySQL建表添加乐观锁字段_Java秒杀系统优化-Redis缓存-分布式session-RabbitMQ异步下单-页面静态化...

    Java秒杀系统优化-Redis缓存-分布式session-RabbitMQ异步下单-页面静态化 项目介绍 基于SpringBoot+Mybatis搭建的秒杀系统,并且针对高并发场景进行了优化,保证线 ...

  7. Ehcache学习总结(3)--Ehcache 整合Spring 使用页面、对象缓存

    Ehcache 整合Spring 使用页面.对象缓存 Ehcache在很多项目中都出现过,用法也比较简单.一般的加些配置就可以了,而且Ehcache可以对页面.对象.数据进行缓存,同时支持集群/分布式 ...

  8. Java爬虫(二)-- httpClient模拟Http请求+jsoup页面解析

    博客 学院 下载 GitChat TinyMind 论坛 APP 问答 商城 VIP会员 活动 招聘 ITeye 写博客 发Chat 传资源 登录注册 原 Java爬虫(二)-- httpClient ...

  9. 淘宝京东拼多多抖音淘特1688等多平台商品APP详情API接口(商品详情页面数据接口,商品销量接口,关键词搜索商品销量接口)

    淘宝京东拼多多抖音淘特1688等多平台商品APP详情API接口(商品详情页面数据接口,商品销量接口,关键词搜索商品销量接口)代码对接如下: 1.公共参数 名称 类型 必须 描述 key String ...

  10. 【Flutter】底部导航栏页面框架 ( BottomNavigationBar 底部导航栏 | PageView 滑动页面 | 底部导航与滑动页面关联操作 )

    文章目录 一.BottomNavigationBar 底部导航栏 二.PageView 滑动页面 三.BottomNavigationBar 与 PageView 关联 四.完整代码示例 1.核心导航 ...

最新文章

  1. 访问其他应用程序的Activity
  2. MySQL带DISTINCT关键字的查询
  3. 分析redis中大key的几种办法
  4. [react] 举例说明useState
  5. uTorrent for mac(BT下载客户端)v1.8.7中文版
  6. C++ STL之list具体解释
  7. 取得浏览器当前鼠标的X,Y坐标的JavaScript脚本及document元素的一些重要属性
  8. 中国急性缺血性中风治疗学行业市场供需与战略研究报告
  9. 洛谷—— P1375 小猫
  10. wx.chooseimage 超过了最大请求长度_一次 HTTP 请求到底经历了什么?
  11. MySQL--查询5天之内过生日的同事中的闰年2月29日问题的解决过程
  12. 基于 Java 机器学习自学笔记 (第51-53天:kNN)
  13. day02【Collection、泛型】
  14. 用R语言开始量化投资
  15. 用node-webkit接入steamAPI
  16. ES6的Array.from方法创建长度为N的undefined数组
  17. PyQt5快速开发与实战 5.1 表格与树
  18. win10无法进入系统:无法加载操作系统,原因是关键系统驱动驱动程序丢失或包含错误
  19. ESP8266-Arduino编程实例-2.8寸TFT LCD驱动(ILI9341控制器)
  20. O2O优惠券核销-数据分析2.0

热门文章

  1. 学习python:练习2.投资理财计算器
  2. UWB电厂人员定位系统优势有哪些?
  3. python绘制小提琴图_Python:matplotlib 和 Seaborn 之热图、小提琴图和箱线图 (三十四)...
  4. 仓库货架通道宽度的设计要求和注意事项
  5. 【LeetCode】把数字翻译成字符串最长不含重复字符的子字符串
  6. Quartz_2.2.X学习系列四: Tutorials - Lesson 4: More About Triggers
  7. react插槽Protal
  8. 为什么Next-Key Lock可以解决幻读问题
  9. 产品经理如何进行用户需求分析?
  10. linux虚拟机+显卡驱动,ubuntu12.4优化android虚拟机和安装intel显卡驱动