开发笔记之20140116

来源:互联网 发布:北京邮电网络教育平台 编辑:程序博客网 时间:2024/06/10 20:12

今天在开发过程中需要将table中的多条记录提交至后台插入数据库,想到两种实现方法。


第一种是在前台利用javascript将table中的多条记录拼成一个list送给后台,后台接受到这个list后遍历并插入数据库,javascrip代码如下所示:

//submit userForm to action
function submitUserForm(){
//get all datas from userListTable and set it in the userList field which is hidden
var userList = '';
$('#examineeTbody tr').each(function(){
userList = userList+"{userNm:"+$(this).children('td:eq(1)').html()+"},";
})
//set value to hidden input field
$('#examineeList').val('['+trimComma(userList)+']');
if(confirm('<spring:message code="aps.exa.message.201"/>')){  
//submit form
fnAjaxFormSubmit(ADD_USER_TO_GROUP_URL,'saveUserToGroupCallback', 'addExamineeToGroupForm');
    }
}

虽然我在前台将一条条记录封装成对象的格式,以list的形式传给了后台,但在javascript中他还是以一个string的方式传递给后台的,因此在后台拿到的还是一个string,这样就无法把它强转为一个list,当然也无法以对象的方式去除list中的记录,这个时候就需要再一次将字符串拆开,一个个封装成对象,这个过程太繁琐,因此就想到了第二种方法。


第二种方法是只把table中的多条记录的Id传给后台,在后台代码中根据ID查询出对应记录,经过组织之后插入目标DB。从设计和效率角度考虑这种方式无形间就多了一次与数据库的交互,在数据量大的情况下,这种方式会降低系统相应效率,因此还是不建议采用此种方式。


最后经过与客户沟通后决定还是采用第一种方式,虽然麻烦一点,但是符合常规模式,而且可以减少与DB交互次数,提高相应效率。

0 0
原创粉丝点击