jQuery技术

45 个实用的 JavaScript 技巧、窍门和最佳实践(5)

字号+ 作者:H5之家 来源:H5之家 2017-11-25 10:23 我要评论( )

避免这样的写法: varobject=[foo,bar],i;for(i=0,len=object.length;ilen;i++){try{//dosomethingthatthrowsanexception}catch(e){//handleexception}} 而使用: varobject=[foo,bar],i;try{for(i=0,len=object.le

避免这样的写法:

var object = ['foo', 'bar'], i;for (i = 0, len = object.length; i <len; i++) {         try {                 // do something that throws an exception     }             catch (e) {                 // handle exception     } }

而使用:

var object = ['foo', 'bar'], i;     try { for (i = 0, len = object.length; i <len; i++) {                 // do something that throws an exception     } }catch (e) {         // handle exception }41. 为 XMLHttpRequests 设置超时。

在一个XHR请求占用很长时间后(比如由于网络问题),你可能需要中止这次请求,那么你可以对XHR调用配套使用 setTimeout()。

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 /* timeout after a minute */ );     xhr.open('GET', url, true);     xhr.send();

此外,一般你应该完全避免同步的 Ajax 请求。

42. 处理 WebSocket 超时

通常,在一个 WebSocket 连接创建之后,如果你没有活动的话,服务器会在30秒之后断开(time out)你的连接。防火墙也会在一段时间不活动之后断开连接。

为了防止超时的问题,你可能需要间歇性地向服务器端发送空消息。要这样做的话,你可以在你的代码里添加下面的两个函数:一个用来保持连接,另一个用来取消连接的保持。通过这个技巧,你可以控制超时的问题。

使用一个 timerID:

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. 编码的时候不要忘记使用代码整洁工具。在上线之前使用JSLint和代码压缩工具(minification)(比如JSMin)。《省时利器:代码美化与格式化工具》45. JavaScript是不可思议的。。总结

我知道还有很多其他的技巧,窍门和最佳实践,所以如果你有其他想要添加或者对我分享的这些有反馈或者纠正,请在评论中指出。

引用

在这篇文章中,我使用了一些我自己的代码片段,也有一些代码片段来自别人的文章或者论坛:

原文:
转载翻译自: 伯乐在线 - Owen Chen


全文详见:?id=372

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 实用的那才是最好的!xp使用技巧分享

    实用的那才是最好的!xp使用技巧分享

    2017-11-22 12:24

  • 一款特好用的JavaScript框架 JQuery

    一款特好用的JavaScript框架 JQuery

    2017-11-17 08:11

  • 从零开始学习 jQuery(十)jQueryUI常用功能实战

    从零开始学习 jQuery(十)jQueryUI常用功能实战

    2017-11-14 17:00

  • [教学视频]jQuery实战

    [教学视频]jQuery实战

    2017-11-12 10:00

网友点评
p