由淘宝,京东,凡客站点的多条件分页查询细节想到的

简介: 首先,我详细描述下文章标题里面多条件分页查询的细节具体指什么? 多条件分页查询是我们常用的功能,今天留意到这样一个细节: 一般情况下,我们会将提供给用户选择的所有条件列在页面上,然后去判断用户选择了哪些条件,进而在后台动态组织sql去查询数据库。

首先,我详细描述下文章标题里面多条件分页查询的细节具体指什么?

多条件分页查询是我们常用的功能,今天留意到这样一个细节:

一般情况下,我们会将提供给用户选择的所有条件列在页面上,然后去判断用户选择了哪些条件,进而在后台动态组织sql去查询数据库。

而在绝大多数情况下,我们又会做服务端分页。

页面的布局大致分为三个部分(我自己的理解):条件区域,查询结果区域,页码区域。

第一种情况:用户选择选择几个条件,点击查询按钮,Ok显示用户想要的结果。

接下来,用户点击页面区域的某一页,OK显示对应了内容。

这里我想说的是,用户每点击一次页面区域,都会将条件区域用户选择的条件传给服务端进行分页查询。

接下来,用户将条件进行了更改,但是并没有点击查询按钮,而是去页码区域点击其中的某一页。这个时候提交给服务端查询的sql里面条件是被更改过的。

查询的结果也随之变化,但是这种变化并不是用户期望的。

这就是我想要说的细节,接下来我会用图解的方式展现在京东,凡客,淘宝三个站点进行上面操作的结果。

我这么理解:站在用户的角度,,就算我对条件做了更改,只要我没有去点击查询按钮,那么就表示查询条件不会生效。

实际情况是:当用户选择页码区域的某一页时,显示的结果是以更改后的条件查询出来的到这里,我想大家应该知道我在讲什么了吧!

接下来我们看看京东,凡客,淘宝他们是怎么做的?

首先是京东:

我打开京东--笔记本页面,进入高级搜索,也就是多条件查询。选择“惠普”

 

之后点击提交---结果如下图,没有任何问题

下面我增加一个品牌:“华硕”

我这个时候点击提交按钮,直接去页面区域选择一页,如下图:

直接点击第三页,显示的结果如下:

在我没有点击提交按钮的情况下,虽然更改了条件,翻页时我扔希望(我想也是很多用户的期望)显示前一个条件的查询结果。

凡客的主站上面几乎就没有什么高级搜索,所以就不用截图。用过京东跟凡客的朋友应该有这样一个体验,每次选择一个条件,就会刷新

我自己觉得,这是不太好的方式,为什么不等用户选择完所有的条件后通过提交按钮来执行查询呢?再来看看淘宝是如何处理的?

去淘宝搜索羽绒服,我选择如下图所示的两个条件。

 

然后确定,同样的,我更改搜索条件,但是不点击确定按钮。直接去页码区域选择任何页码单击。

直接单击第4页,页面会提交,这个时候淘宝巧妙的地方就出来了,发现原来条件区域里被更改过的条件(没点确定按钮)被恢复到了上一次(如下图)

呵呵,还是淘宝周到啊!

今天我们在园子的新闻可以看到双十一,淘宝创造的一个个记录,我们在感叹淘宝拥有的牛b的技术或架构的同时,是不是也对淘宝在细节上的把握表示一下钦佩呢?

可能我们一想到淘宝就会觉得,它的架构好,技术好,所以理所当然可以支撑海量的pv。对于电子商务网站来说,特别是访问量大的网站,拥有一个好的架构肯定是必然的,

但是我们是不是也应该在一些细节上面做好,尽可能减少对服务器的压力呢?打个比方:假如凡客每天的pv量是3kw,那么在多条件查询这块,

如果一个用户本来是选择两个条件,然后单击查询按钮,但是现在的情况是,本来只需一次查询,现在增加了一倍。也许有人觉得这个没什么,

但是如果是对于千万级别甚至是几亿,十几亿级别的pv数,对于服务器而言额外的压力就是非常巨大的,有一句话这么说:细节决定成败!

对于我们.NET开发人员来说,本来服务器的成本(Windows)就相对比较高昂,上次看到有资料显示MySpace的服务器有4500台,那得花多少$啊)

如果不能在细节上多注意,在架构上多下功夫,开发出来的网站也就只能......

以上是我今天从自己偶然发现的这么一个小的点所想到的,可能有很多不对的或是跟您想法相左的地方,请多多包含和指正。

我只是个菜鸟,甚至还没到"鸟"的级别,就一新手,还有很多东西需要向大家学习。

时间不早了,祝大家做个好梦!

相关文章
|
22天前
|
监控 前端开发 JavaScript
实战篇:商品API接口在跨平台销售中的有效运用与案例解析
随着电子商务的蓬勃发展,企业为了扩大市场覆盖面,经常需要在多个在线平台上展示和销售产品。然而,手工管理多个平台的库存、价格、商品描述等信息既耗时又容易出错。商品API接口在这一背景下显得尤为重要,它能够帮助企业在不同的销售平台之间实现商品信息的高效同步和管理。本文将通过具体的淘宝API接口使用案例,展示如何在跨平台销售中有效利用商品API接口,以及如何通过代码实现数据的统一管理。
|
1月前
|
Python
区域代理分红商城系统开发源码片段示例规则解析
level = Column(Integer, default=1) # 代理等级,例如:1代表普通用户,2代表初级代理,3代表高级代理等 parent_id = Column(Integer, ForeignKey('user.id')) # 上级代理ID 【更全面的开发源码搭建可V or TG我昵称】 parent = relationship("User", remote_side=[id]) # 上级代理对象
|
6月前
|
SQL 小程序 JavaScript
【易售小程序项目】小程序首页(展示商品、商品搜索、商品分类搜索)【后端基于若依管理系统开发】
【易售小程序项目】小程序首页(展示商品、商品搜索、商品分类搜索)【后端基于若依管理系统开发】
40 0
|
8月前
|
小程序 前端开发 JavaScript
小程序的列表页-商品或新闻展示--【浅入深出系列007】
小程序的列表页-商品或新闻展示--【浅入深出系列007】
|
6月前
|
搜索推荐 算法 小程序
微信搜索流量怎么做
微信搜索流量怎么做
43 0
微信搜索流量怎么做
|
10月前
|
数据挖掘 API 数据安全/隐私保护
广告收益类游戏开发源码规则解析
广告收益类游戏开发源码规则解析
|
搜索推荐 SEO
怎样做好搜索下拉优化?百度搜索推荐词的推广方式
怎样做好搜索下拉优化?百度搜索推荐词的推广方式
184 0
|
JavaScript Unix Linux
PHP开发的网站,如何实现批量打印快递单的功能?
虽然市场中不断有新的编程语言诞生,但不得不承认PHP在web开发领域仍一直占有很大份额,高效开发是他一直以来最大的一个优点,而且他的学习成本也较低,入门门槛较低,和Python一样是解释性语言,很多人都说他是世界上最好的语言。其实语言并没有好坏之分,只有是否适用,每门语言都有自己的优缺点,毕竟想要获得一样东西,总要放弃点什么,有舍有得,看自己怎么权衡,只要能解决问题就是好的,不管黑猫白猫抓到老鼠就是好猫。自从swoole的加持以及和GO语言的结合,也弥补语言本身的很多不足,慢慢缩小和其他语言之间的差距,不过还是有很长的路要走。--题外话
303 0
|
前端开发 JavaScript
测试圈相亲平台开发流程(6):搜索页-前端开发
测试圈相亲平台开发流程(6):搜索页-前端开发
测试圈相亲平台开发流程(6):搜索页-前端开发
|
JavaScript 算法 测试技术
测试圈相亲平台开发流程(13):搜索功能
测试圈相亲平台开发流程(13):搜索功能
测试圈相亲平台开发流程(13):搜索功能

热门文章

最新文章