项目经验总结A

1. 分页问题:

在分页的查询SQL中,要注意排序字段部分,排序字段中要有一个字段确保该查询结果排序的唯一性,否则,会出现类似下面的情况:

若查询SQL为:

SELECT t.DictID,t.Type,t.DictNo,t.DictVal,t.Flag,t.Stat,t.SeqNo,t.Remark 

FROM TrainBDDict t 

ORDER BY t.SeqNo

第一页有记录A,第二页有可能也会出现记录A,原因就是排序字段t.SeqNo值是可能存在相同值,不能确保查询结果在不同的查询范围内顺序的唯一性,可能导致某条记录多次出现在不同页中;

上面的查询SQL应改为:

SELECT t.DictID,t.Type,t.DictNo,t.DictVal,t.Flag,t.Stat,t.SeqNo,t.Remark 

FROM TrainBDDict t 

ORDER BY t.SeqNo, ,DictID(主键)

2. 查询注意事项

带有查询输入框的页面,查询时应注意问题如下:

1) 确定进入该查询页面是否要把光标聚焦在该查询输入框中(视具体需求而定);

2) 确定查询内容是否允许为空,判断是否为空时要先trim()(视具体需求而定);

3) 确定是否要trim查询内容两端的空格然后在查询;

4) 确定是否要限制输入的字符内容,如某些特殊字符(视具体需求而定);

5) 当输入不合规范时,弹框提示用户,用户确定后,要把光标聚焦在输入框中,是否要清空输入内容,视具体清空而定;

6) 查询输入框要限制输入内容的长度(maxLength),否则输入内容很长时会报错;

3. 兼容性测试问题

在多种测试环境下进行测试即软件兼容性测试:

1) 兼容性测试是指待测试项目在特定的硬件平台上,不同的应用软件之间,不同的操作系统平台上,在不同的网络等环境中能正常的运行的测试。 

2) 兼容性测试的目的:待测试项目在不同的操作系统平台上正常运行,包括待测试项目能在同一操作系统平台的不同版本上正常运行;待测试项目能与相关的其他软件或系统的 “和平共处”;待测试项目能在指定的硬件环境中正常运行;待测试项目能在不同的网络环境中正常运行。 

3) Web兼容性测试主要是针对不同的操作系统平台,浏览器,以及分辨率进行的测试:

4) 不同分辨率,如1024*768;1280*1024等

5) 不同浏览器,如IE,FireFox等

6) 相同浏览器的不同浏览器版本,如IE6,IE8等

7) 不同操作系统,如Windows,Linux等

兼容性测试无法做到完全的质量保证,但对于一个项目来讲,兼容性测试是必不可少的一个步骤,具体测试哪些项视具体需求而定;

4.数据保存/删除注意事项

在点击保存/删除等按钮时,为了避免用户快速连续多次点击按钮时有可能多次执行保存/删除请求而造成不必要的异常,应在适当的时机禁用或启用按钮,示例如下:

	//保存培训机构信息
	function saveOrgInfo (buttonObj) {
		//校验输入信息
		if(!checkOrgInfo()){			
			return;
		}
		buttonObj.disabled = true;		//禁用保存按钮防止多次提交
		var url = "<%=baseURL %>/train/org/saveInfo.spring"; 
		//ajax方式提交表单
		try {		
			$.ajax({
				type : "post",
				dataType : "json",
				url : url,
				data: $("#contentForm").serialize(),
				success : function(data) {
					  ……
					  buttonObj.disabled = false;	//启用保存按钮
				}
			});
		} catch (e) {
				buttonObj.disabled = false;		//启用保存按钮
				alert(e.message);
		}
	}

5.表单reset功能

 FORM表单提交后reset功能失效?

最近使用表单时发现一个问题,就是表单提交后,再使用reset按钮重置输入框,这时reset不起作用。其实,并不是没起作用,而是我们误解了reset的功能.

reset的功能是重置表单为默认值,并不一定是清空表单。
由于form提交后,输入框的默认值可能不为空(保存了上次查询的值),例如值为aa,不管怎么reset都会变为aa,就算输入bb后,再reset也会变成aa,而不是为空值。
可见,是自己对reset按钮功能的误解,才觉得reset不起作用,同样可能很多人都会有这样的误解。


解决方法:可使用js功能重置表单中文本输入框为空值

$(":reset").click(function(){
  var resetArr = $(this).parents("form").find(":text");
  for(var i=0; i<resetArr.length; i++){
    resetArr.eq(i).val("");
  }
  return false;//一定要return false,阻止reset按钮功能,不然值又会变成aa
});

你可能感兴趣的:(开发经验,项目总结)