var xhr = new XMLHttpRequest (); xhr.onreadystatechange = function () { if (this.readyState == 4) { clearTimeout(timeout); // do something with response data } } var timeout = setTimeout( function () { xhr.abort(); // call error callback }, 60*1000 ); xhr.open(‘GET‘, url, true); xhr.send();
同时需要注意的是,不要同时发起多个XMLHttpRequests请求。
42.处理WebSocket的超时通常情况下,WebSocket连接创建后,如果30秒内没有任何活动,服务器端会对连接进行超时处理,防火墙也可以对单位周期没有活动的连接进行超时处理。
为了防止这种情况的发生,可以每隔一定时间,往服务器发送一条空的消息。可以通过下面这两个函数来实现这个需求,一个用于使连接保持活动状态,另一个专门用于结束这个状态。
var timerID = 0; function keepAlive() { var timeout = 15000; if (webSocket.readyState == webSocket.OPEN) { webSocket.send(‘‘); } timerId = setTimeout(keepAlive, timeout); } function cancelKeepAlive() { if (timerId) { cancelTimeout(timerId); } }
keepAlive()函数可以放在WebSocket连接的onOpen()方法的最后面,cancelKeepAlive()放在onClose()方法的最末尾。
43.时间注意原始操作符比函数调用快,使用VanillaJS比如,一般不要这样: var min = Math.min(a,b); A.push(v); 可以这样来代替: var min = a < b ? a : b; A[A.length] = v;
44.开发时注意代码结构,上线前检查并压缩JavaScript代码
可以使用JSLint或JSMin等工具来检查并压缩代码。
45.consat()中不传参数,返回原来数组的副本
46.typeof arguments==="object"
47.分组选择符执行最后的赋值
var a=(1,2,3); console.log(a);//3
48.函数长度等于其形参长度
null==undefined返回true。
这是因为undefined看成是继承自null这个对象
标签:class style log http si 使用 代码 it la