进行项目开发时做的一些小笔记

校园说(Campussay)项目中遇到的问题

1.scriptonload事件是在script引入的内容执行完成后再触发的。

2.如果一个变量在函数里面使用了两次以上的话,最好将他转变为局部变量,这样可以更快的读取到,提高性能

3.chrome有一些非常牛逼的特性,比如说光标在一个连接上放一段时间后台会预处理连接。

4.SSE是单向的,由服务器向客户端推送消息的一个东西,而且只能推送文本,不过在传输过程中可以动态使用gzip压缩,并且不用做过多的配置,比websocket轻量很多。

5.window.onbeforeunload事件会在刷新窗口,关闭窗口之前进行,如果在回调函数中return一个非空值的话,则这个值将转化为字符串显示在框中询问用户是否需要关闭当前窗口。

6.data属性无法通过大写获取到,比如设置属性offSet,如果使用jQuery的话只能用$().data("off-set")才能得到值,并且值得注意的是,jquery里面有时候通过data方法获取到的是第一次调用data方法时的值;最好还是使用attr获取;

7.jquery里面的on方法如果执行多次的话,他的回调函数也会执行多次,如果要想解决这个问题可以先off了再on

React-Native中遇到的问题

20.尝试了很多方法,最后才发现react-nativescrollview中使用的onScroll回调方法里面有evt的回调参数,回调参数里面有一个值藏得很深,就是evt.nativeEvent.contentOffset.y,这个值可以拿给我们看当前scrollview是否滚到了顶部或者是底部。(之前是不是傻,对着返回的对象看了半天都没有找到这个属性)

21.关于React中的通信方法,一般来说,使用props是效率最高的,不过这是仅限于从父级元素传参数给子级元素,如果要想子级元素传值给父级元素的话就需要父元素传递一个回调函数给子元素执行。在一些距离较远的并且信息传输速度要求不高的通信中,可以使用RCTDeviceEventEmitter这个类进行事件类型的通信

22.不要指望使用特textInput的属性来获取输入框的值,那玩意儿只能用来强制设定文本框的value,你只能通过change事件把其中的值存起来,真是太IMBA了!

23.在使用Reducer的时候千万不要改变原先的state,比如poppush这种方法都不要用,用了没有效果;他会自己比较你的state有没有改变,刷新判断成功之后才会刷新

24.在ES6中,class就相当于是JAVA中的Class了,他的静态方法要用static关键字标示,并且不能使用箭头函数的形式,且调用此函数的时候不是使用this,而是使用类名。

25.那天看到说在ES6中没有静态变量,但是我试验出来是有的,不知道怎么回事

26.class里面如果想要用属性的方法写函数,并且能够通过this调用的话,必须要通过在constructor中进行bind,更简单的方法就是直接使用箭头函数了,箭头函数会将this指针绑定在他定义的地方;

27.今天看到0.31版本更新里写的zIndex属性可以生效了,大家就欢呼把;

28.Fetch 请求默认是不带 cookie 的,需要设置fetch(url, {credentials: 'include'})

29.服务器返回 400,500错误码时并不会reject,只有网络错误这些导致请求不能完成时,fetch才会被 reject