Qunar实习回顾总结
今天教师节,陪老师喝点小酒,回来难得抽空,整理一下实习阶段的那些零零碎碎却很有用的知识。
1、关于页面中嵌入js代码
(1)有时为了精确控制代码执行顺序流,会将js代码嵌入到网页之中。优点:改变代码触发顺序很容易。
(2)这种情况如果采用事件触发的形式,会依赖于之前触发的事件,导致不易于维护。
js代码写在jsp代码里,昨天的结论是错误滴--
a、 减少请求次数
b、 异步请求全部css和js,可能会造成网站页面内容已经出来,但是页面的样式及基本的js操作都不用,疵了一般~~
c、 比如header这种公共模块,它的更新如果将css和js单独拿出来,可能会造成版本号的问题
d、 一些服务器的变量在jsp中更好获取,且不应增加这种性质的请求数。
三、体会:
2、trigger Handler的问题
3、地图坐标系
4、关于写js动画的一些事
5、跨域请求的一些问题
6、 iframe的高度依赖于父元素。如下内容
<html>
<body>
<iframe></iframe>
</body>
</html>
CSS设置 html,iframe{height:100%; width:100%;}
产生的iframe高度不是最大高度。
原因:iframe的渲染依赖于父元素body,body的渲染依赖于父元素html,如果不设置body的大小,则iframe无正确的参考值进行渲染,导致产生的高度不是最大高度。
7、css问题
(1) z-index显示是基于父节点的,即即使子节点的z-index设置为很大,但是父节点的index不大,那么会影响子节点的index排序。
(2)css样式为隐藏宽度可能无法获取
(3)Absolute和relative要成对出现,否则absolute找不到父元素计算相对位置
(4)Ie6中text-align在block中的子元素会继承,而且其他浏览器都是从左侧开始计算。
(5)悲催的发现,不会有CSS4鸟,或者说,CSS3这个称呼也是不准确的 http://www.cnblogs.com/ziyunfei/archive/2012/12/11/2813263.html
8、Fiddler mock数据
9、$.ready()与window.onload的区别与jquery中的底层代码实现。-- ie(由于ready事件)、opera(由于css)、safari(由于css)以及iframe(由于document.documentElement.doScroll('left'))情况需要特殊处理。
10、javascript strict模式不支持arguments.callee,但是如果使用显式命名赋值的形式递归调用,就意味着不再支持匿名函数的递归调用。
11、!!强制转换为boolean,可以用于判断是否 不是 NULL/空字符串/undefine(此处必须是先定义而未赋值的,未定义的会报错)
12、parseInt的第一个参数应该为字符串,否则超过20位的数字会自动被转换为科学技术法从而出错。
13、原生js的innerHTML与text的效率问题、原生js的child()浏览器支持问题等。
14、slice(a,b)中b是个数,不是中止位数。substring(a,b)中的b是中止位数。Substr由于没有形成标准所以尽量不用。
15、base64,md5原理和用途
16、意外发现原生的sort()排序不会真正排序,特别是1,12,3这种情况。需要传参来排。以后看知识点要更仔细。 sort排序有很多用途
17、jquery的$.deferred()
18、代码在console中能跑,在实际代码运行中挂了 -- 代码中用的是jsex库,写的时候用了jquery,在chrome下跑通了是因为chrome的console默认支持jquery~~~坑儿~~
19、console.log原来还可以有这些用法
https://getfirebug.com/wiki/index.php/Console_API#console.log.28object.5B.2C_object.2C_....5D.29
20、跨域请求http://www.cnblogs.com/rainman/archive/2011/02/20/1959325.html#m5
无论结果如何,都特别感谢浩姐、光宇和潇潇,真真切切的学了很多的知识,度过了实实在在快乐的实习时光!