论坛首页 Java企业应用论坛

话说信息完整度那个bar

浏览 1922 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-07-09  
故事场景:
为了让用户完善自己的信息,都会用户提供一个显示条,显示当前用户信息完整情况




解决方式有两种:


前段css什么的控制
如下:
<div class="PageMain mainMsg bottomMargin">
		       <p>信息完整度:<p><p class="progressBar"><strong style="left:${requestScope.degree};"></strong></p><p>${requestScope.degree}</p>
	        </div>


后台要去遍历下每个字段的情况,决定degree的情况到底如何,在遍历的时候当然还可以调整一些字段的权重,我直接copy的代码
/**貌似下面这个bean.getCmpName()!=null&&!bean.getCmpName().equals("")不够简洁,直接"".equals(bean.getxxx)**/
public String countInfoFullDegree(Bean bean){
		if(bean==null){
			return "0%";
		}
		int degree=0;
		if(bean.getCmpName()!=null&&!bean.getCmpName().equals("")){
			degree+=10;
		}
		if(bean.getCmpType()!=null&&!bean.getCmpType().equals("")){
			degree+=10;
		}
		if(bean.getCmpPhone()!=null&&!bean.getCmpPhone().equals("")){
			degree+=10;
		}
		if(bean.getCmpFax()!=null&&!bean.getCmpFax().equals("")){
			degree+=5;
		}
		if(bean.getCmpEmail()!=null&&!bean.getCmpEmail().equals("")){
			degree+=10;
		}
		if(bean.getCmpArea()!=null&&!bean.getCmpArea().equals("")){
			degree+=10;
		}
		if(bean.getCmpZip()!=null&&!bean.getCmpZip().equals("")){
			degree+=5;
		}
		if(bean.getCmpIntro()!=null&&!bean.getCmpIntro().equals("")){
			degree+=10;
		}
		if(bean.getCmpUrl()!=null&&!bean.getCmpUrl().equals("")){
			degree+=10;
		}
		if(bean.getCmpPic()!=null&&!bean.getCmpPic().equals("default.jpg")){
			degree+=10;
		}
		if(bean.getCmpArea()!=null&&!bean.getCmpArea().equals("")){
			degree+=10;
		}
		return degree+"%";
	}


问题也出现了---->>>>>>
每个用户查看信息都要在后台这么遍历字段,性能不好,方式也不好

改进方式-->>前段不是要显示所有用户信息么,没有的字段为空,那么写个js在前面判断不就可以了,后台也不需要那个恶心的if判断


此时,变化又出现了--->>

我们数据库里面有一张企业表,但是前台把这个表拆分了,分为企业基本信息,企业联系信息,企业详细信息

js的解决方式只是判断一个页面的字段,现在前面显示分为四个页面,但是信息完整度是以企业这张表来决定的,只能回归后台解决方式,但想想这个企业表字段那么多,后台不是要N个if判断,我勒个去,那不把人吓死

  • 大小: 3 KB
   发表时间:2011-07-13   最后修改:2011-07-13
我的简单想法就是达到某个条件触发一下事件,事先定义好每个触发点需要加或减的百分比。
样式上直接使用百分比来控制黄色的宽度就OK了。
0 请登录后投票
   发表时间:2011-07-13  
amcucn 写道
我的简单想法就是达到某个条件触发一下事件,事先定义好每个触发点需要加或减的百分比。
样式上直接使用百分比来控制黄色的宽度就OK了。



做法是这样的,但是触发的判断是放到前台还是后台?

一张表里面N个字段,势必带来N个if判断来加上权重

我的帖子里面已经写到了,最初我们放到后台,但是感觉不如用js判断放到前台还省性能

但放到前台时候,没想到一张表在前台展现数据做了拆分,js无法实现这种拆分的东西,然后又放到后台。



0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics