Java 用户资料完整度的前端显示(思路)

经常上网的人都会很熟悉今天的这个主题,怎么说呢,用户资料,是在我们注册一个网站的时候,需要注册人填写的一些个人信息,这些个人信息会经过加密处理后存储到不同的服务器。那么完整度是什么呢?显而易见,完整度就是网站列出的条目,以及注册人填写的资料的条目的对比度,用户填写了几条,还有几条没有填写(这里只是有效数据)。可以通过这个完整度让用户一目了然,完善自己的用户资料。

背景

简单说一下背景,近几天,公司的设计部给提了几个新的需求,当然,这就是其中的一个(要不也就不在这废话了(*^__^*) 嘻嘻)。刚开始经理让找一找有没有这方面的开源组件,可以直接用上的。通过在网上调研之后,发现现在并没有什么现成的开源组件,不过倒是有不少简单的实现思路。这篇文章就简单的讨论一下这几个思路,下一篇文章再写详细的实现。

正文

用户资料完整度的前端显示问题,一般有两种解决思路,其中第一种就是请求后台服务器,查找某一用户的资料信息,根据查询到的信息进行判断,当然还要加上相应的权重,这个根据公司的需要,某个属性的具体权重进行相应的设置。需要注意的是,各个属性的总和必须是100%。否则,用户资料完整度就不够真实了。

而第二种解决思路是,不用请求后台服务器,直接在页面上查找用户已经填写的信息,当然,这种思路会受一些因素的影响。比如,用户的主要信息没有全部显示在页面上,或者是,页面是使用框架加载的,需要显示的页面和需要查找的页面不是同一个,这种情况也是受限制的。

那么,下面就详细的说说这两种方案。

方案一

首先需要把查找的属性、以及属性相应的权重加以确定,当然,这个是需要设计部给出的。考虑到将来的变化,我们可以把它单独的抽象出来,放到配置文件中,如果以后的权重需要修改,这也是很方便的。

对于前端的页面显示,其实这个有很多种方案,就看公司里怎么要求了。我这里采用的是进度条,Bootstrap 的进度条组件,不仅方便简单,而且也不失美观。简单的说一下实现原理,通过请求后台服务器,后台服务器计算出该登录用户的资料完整度,比如说计算后的结果是 50%,那么将这 50% 返回给前端的 Ajax 函数。前端的 Ajax 函数通过设置 Div 的宽度,以及样式来改变进度条的显示。

前端说完了,那么该说说后台服务器了,后台服务器通过查找登录用户的用户信息,当然可能会涉及到多张表,然后查询用户信息对应的权重,并与之进行匹配,将匹配好的权值进行计算,并把结果以 Json 的形式返回给前端。

方案二

第二种方案其实很简单,就是查找加载到页面的用户信息,然后读取各信息属性的权重,并计算信息的完整度,最终通过改变 Div 的宽度和样式来显示进度条。

很显然,这种方法虽然简单,而且不用请求后台服务器,但是,这种方法有很大的限制,那就是页面如果没有显示全部的信息属性的话,信息完整度的计算还是要请求服务器的。还有就是如果前端用的是框架加载的局部页面,那么显示用户信息的页面与显示信息完整度的页面没有在一块的话,那么就无法进行查找,这也是一大限制。

我的方案

通过对比以上两种方案,以及现有系统的特点,我还是选择了第一种方案,采用灵活的方式设置属性的权重,通过读取配置文件获取权重。然后,前端用的是 Bootstrap 的进度条组件。

结束语

很多时候,我们都是想着怎样方便、怎样省事怎么做,孰不知,这些看似省事的组件其实也是一把双刃剑,固然我们用上了,功能也实现了,但它的原理你还是不知道,你只能去依赖他做的组件。因此,在用这些开源组件的时候,我们也要多问一句,到底他是怎么实现的,如果是我,我应该怎么去实现。

当然,如果没有现成的组件的时候,那我们不得不去自己写了,其实这也是一种好事,虽然在某种程度上麻烦了点,但是搞明白了原理,就简单多了。

好了,理论说了一大堆,枯都枯死了。下一篇文章就来真的。。。

时间: 2024-10-19 12:14:44

Java 用户资料完整度的前端显示(思路)的相关文章

Java 用户资料完整度的前端显示(实现)

序 上一篇文章已经说了说大概的思路,这一篇文章主要就是对于第一种思路的实现,进行详细的说明.关于用户资料完整度的请求流程,这里就不再多说了,如果不了解的可以去看上一篇文章<Java 用户资料完整度的前端显示(思路)>. 正文 前边也说了,我这里采用的是第一种方案,前端使用 Bootstrap 的进度条组件显示百分比,后台读取权重并计算信息完整度,并将计算的结果返回给前端,供页面显示.方案很简单,下面具体来看代码. 前端 CSS <link href="static/sc/css

Spring mvc整合mybatis基于mysql数据库实现用户增删改查及其分页显示的完整入门实例【转】

Spring mvc整合mybatis例子, 基于mysql数据库实现对用户的增.删.改.查,及分页显示的完整例子. 查询显示用户 添加用户 更新用户 官方验证: 项目截图 必须修改applicationContext.xml中mysql的配置为本地的,否则启动失败. 另外jar包多一个ehcache.jar无关紧要,删除即可. 1. 使用阿里巴巴Druid连接池(高效.功能强大.可扩展性好的数据库连接池.监控数据库访问性能.支持Common-Logging.Log4j和JdkLog,监控数据库

鼠标划过用户名时在鼠标右下角显示div展示用户资料

最近做一个网站论坛,为了方便会员之间相互了解,又不想再做一个页面展示用户资料,就想到了鼠标划过用户名时在鼠标右下角显示div展示用户资料这个效果, 这里要注意的该方法不是给每个用户名的旁边都绑定一个div,当鼠标经过用户名时显示,鼠标离开时隐藏,如果这样做网页加载就太耗时将了.但以前没做过,于是便想实现这个功能.经过一天的学习和查阅,了解了个大概,最终实现了这个效果.下面列一下难点和实现方法: 一.难点 难点无非就三大块,一个是div的定位,这个是该效果的主要难点,之前在网上找了很多定位的代码,

【原创】用JAVA实现大文件上传及显示进度信息

用JAVA实现大文件上传及显示进度信息 ---解析HTTP MultiPart协议 一. 大文件上传基础描述: 各种WEB框架中,对于浏览器上传文件的请求,都有自己的处理对象负责对Http MultiPart协议内容进行解析,并供开发人员调用请求的表单内容. 比如: Spring 框架中使用类似CommonsMultipartFile对象处理表二进制文件信息. 而.NET 中使用HtmlInputFile/ HttpPostedFile对象处理二进制文件信息. 优点:使用框架内置对象可以很方便的

java用户角色权限设计

实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个"非法用户"很可能就能通过浏览器轻易访问到B/S系统中的所有功能.因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法的使用已授权功能,而对那些未经授权的"非法用户"将会将他

【Android应用开发详解】实现第三方授权登录、分享以及获取用户资料

由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字和图片等这样的效果,几经波折,查阅了一番资料,做了一个Demo.实现起来的效果还是不错的,不敢独享,决定写一个总结的教程,供大家互相交流.学习和参考,博主只求能和大家共同进步.希望能多多支持! 这篇文章中,我们使用到了Share SDK,它是为iOS.Android.WP8的APP提供社会化功能的一个组件,目前支持如QQ.微信.新浪微博.腾讯微博.开心网.人人网.豆瓣.网易微博.搜狐微博.facebook.twitter.googl

解决Discuz“完善用户资料”任务不能完成的问题

最近用 Discuz X3.2 搭建了个论坛,在测试过程中发现"完善用户资料"这个官方自带的任务有个Bug,将所有的资料都填写完成后,任务仍然无法完成,而且没有明确提示有哪些项目没有填写. 到官方论坛去寻求解决方案,没有找到一个明确的答复,很多人遇到这样的问题,或者标明了已解决却没有提供解决方案,结合度娘给出的一些知识,最终自己摸索出了两种方法. 方案一: "后台→用户→用户栏目→栏目列表"中将真实姓名选中,并选中在资料页中显示: "后台→用户→用户栏目→

【Android应用开发详解】第01期:第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料

转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9057257 由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字和图片等这样的效果,几经波折,查阅了一番资料,做了一个Demo.实现起来的效果还是不错的,不敢独享,决定写一个总结的教程,供大家互相交流.学习和参考,博主只求能和大家共同进步.希望能多多支持! 这篇文章中,我们使用到了Share SDK,它是为iOS.Android.WP8的APP提供社会化功能的一

【转】【Android应用开发详解】第01期:第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料

转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9057257 由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字和图片等这样的效果,几经波折,查阅了一番资料,做了一个Demo.实现起来的效果还是不错的,不敢独享,决定写一个总结的教程,供大家互相交流.学习和参考,博主只求能和大家共同进步.希望能多多支持! 这篇文章中,我们使用到了Share SDK,它是为iOS.Android.WP8的APP提供社会化功能的一