前端实现搜索记录功能-技术分析

接上篇博客:

先看js的第1段代码

 

$(document).delegate(".his-record>div","click",function(){
		$("#idNumber1").val($(this).text());	
	});

  

因为我们的搜索记录是通过prepend()方法动态添加的,如果用一般的事件绑定方法,会没有效果。熟悉jquery的朋友知道,这时候应该是delegate()方法出场了,w3cschool的解释:使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。

 

接下来是init()函数,这里的考虑是:首次加载页面,用这个函数获取数据,显示搜索记录。当我们点击搜索记录或者输入搜索词,再次搜索的时候,也要刷新搜索记录显示。另外,清除记录的时候,也需要刷新记录显示,基于这些考虑,写了init()函数。调用的地方有4个。

 

这段判断是,去掉我们不想要的localStorage记录,因为在打开本页面之前,本域名下的localStorage可能就有记录。isNaN()判断字符串里的内容是否为数字。这里判断并不是很严谨,可以改写。

 

很重要的一点,init()执行时,每次会从localStorage获取【最新】的记录,然后添加到显示的区域。因此,必须每次清空这个区域。

下面的代码来到点击搜索按钮,改变localStorage记录,然后调用init()让最新的记录显示。第1步,先判断输入。如果输入为空,直接返回,不往下执行:

 

	if(!value){
			alert("你未输入搜索内容");
			return false;
		}

  

输入合法的情况又分了两种:1.输入的内容localStorage记录里有的情况,2.输入的内容没有记录的情况。情况1不用考虑大于6条记录,因为重复的时候只会改变顺序而不会新增记录。这样不会超过原先的记录条数。情况2就需要考虑记录条数大于6的时候,出现大于6,必须把最早的记录移除,然后把最新的记录添加进去。

情况1的条件:

 

//输入的内容localStorage有记录
		if($.inArray(value,hisItem)>=0){

  

这里用到了jquery的工具方法:$.inArray()。这个方法是数组的indexof()方法。我们都知道,字符串拥有indexof方法。有了jquery,我们也可以对数组操作相同的功能。

 

最后的一块就是清除记录,清除记录的时候并没有直接用localStorage.clear()方法,因为这种清除会把本域名所有的记录清除,这是我们不想要的。我们只需要把搜索记录相关的记录清除即可,然后调用init()方法。这里调用init(),而不是直接清空显示区域的html标签,是出于严谨的考虑,保持网页显示与localStorage存储一致。

 

 

转载于:https://www.cnblogs.com/xiaochongchong/p/5805842.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,针对您的问题,我可以给您提供一些系统需求分析技术分析的思路。 系统需求分析: 1. 用户注册与登录:允许用户注册账号并通过手机号或邮箱进行登录。 2. 商品展示与搜索:根据用户需求展示不同的商品分类和商品列表,同时支持搜索功能。 3. 商品详情:显示商品的详细信息、价格、评价等,并支持加入购物车、立即购买等操作。 4. 购物车:用户可以将需要购买的商品加入购物车,并能够对购物车中的商品进行数量、删除等操作。 5. 订单管理:用户可以查看自己的订单状态、订单详情、物流信息等,并支持取消订单、退款等操作。 6. 支付功能:用户可以选择不同的支付方式进行支付,支持支付宝、微信等常见支付渠道。 7. 个人中心:用户可以查看自己的个人信息、订单记录、收货地址、优惠券等,并能够进行相应的操作。 技术分析: 1. 前端技术:使用Vue.js框架进行前端开发,搭配vant、element-ui等UI库进行页面设计。 2. 后端技术:使用Node.js或Java等后端语言进行开发,采用RESTful API进行前后端交互。 3. 数据库技术:使用MySQL等关系型数据库或MongoDB等非关系型数据库进行数据存储,保证数据的可靠性和安全性。 4. 接口调用技术:使用微信支付、支付宝等支付接口,实现在线支付功能。 5. 网络安全技术:采用HTTPS协议进行数据传输,保证数据的安全性。 6. 移动端适配技术:使用rem、flex等技术进行移动端页面适配,保证在不同设备上的良好体验。 总体来说,这是一个比较完整的移动端购物APP的系统需求分析技术分析,但具体实现还需要根据具体情况进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值