前端写项目经验

1、最近在写一个项目遇到一些问题,记录一下,首先是在做动态增加表格tr,忽然发现设置的日期input不能使用,这个需要一段js代码初始化datetimepicker,如这段
$('.form_datetime').datetimepicker({
minView: "month", //选择日期后,不会再跳转去选择时分秒
language: 'zh-CN',
format: 'yyyy-mm-dd',
todayBtn: 1,
autoclose: 1,
});

但是在新增的tr下的input日期就不能够实现,也想了很久,最后一想页面内容加载顺序,对于css新添加的标签是默认渲染,但是js只会默认执行一次,所以想到就是在添加新标签后,再执行js初始化代码函数,即可完成设置。

2、关于HTML页面文件加载顺序的问题(该段来源牛顿的博客)
浏览器加载显示html的顺序是按下面的顺序进行的:
1)、IE下载的顺序是从上到下,渲染的顺序也是从上到下,下载和渲染是同时进行的。
2)、在渲染到页面的某一部分时,其上面的所有部分都已经下载完成(并不是说所有相关联的元素都已经下载完)。
3)、如果遇到语义解释性的标签嵌入文件(JS脚本,CSS样式),那么此时IE的下载过程会启用单独连接进行下载。
4)、并且在下载后进行解析,解析过程中,停止页面所有往下元素的下载。
5)、样式表在下载完成后,将和以前下载的所有样式表一起进行解析,解析完成后,将对此前所有元素(含以前已经渲染的)重新进行渲染。
6)、JS、CSS中如有重定义,后定义函数将覆盖前定义函数。
3、关于Ajax进行数据传输与后台数据绑定问题
用ajax在data部分传数据到后台进行数据绑定时,有时候粗心会出现重复的键值对,这个时候封装字段的时候是使用哪一个呢?
自己简单测试了一下,发现是使用后面的键值对来对数据绑定对象,猜想机理:springmvc数据绑定时,首先把json数据从头开始与对象域进行对比,如果相同则赋值给对象,不对象,则不赋值,默认为null等默认字段,因此如果后面有重复字段,则后面会把前面的值给覆盖,因此绑定的对象域值就是最后一个重复键对应的值。
还有在用插件关于日期进行数据绑定时,由于文本日期是空(‘’),因此会报400 无效的请求。可以把日期字段值先判断一下,然后如果空可以赋值null,否则文本日期值。
4、关于ajax与后台交互,并实现springMVC数据绑定问题
关于数据绑定对象,后台函数需要绑定对象参数使用requestBody修饰,即可完成数据绑定,
而在后台返回值方面需要使用responseBody来修饰函数,这个作用就是把值返回给ajax,否则的话,ajax会收不到正确的状态码,而执行error函数。
出现后台执行成功,却执行error函数提示失败。
对于弹出框,如果是使用第三方的插件,而弹出后需要执行跳转等操作,如果跳转也写在success函数中,弹出框(alert除外)不会被执行或者提示错误,是因为跳转执行很快,而第三方提示框需要时间加载,所以可以用setTimeout进行执行后面的跳转的js。

你可能感兴趣的:(前端经验,前端)