JSON

分享经典的JavaScript开发技巧(3)

字号+ 作者:H5之家 来源:H5之家 2015-11-24 12:41 我要评论( )

function escapeHTML(text) { var replacements= {"": "", "": "","": "", "\"": """};return text.replace(/["]/g, function(character) {return replacements[character]; }); } 40、不要在循环内部使用try-catch

function escapeHTML(text) { var replacements= {"<": "<", ">": ">","&": "&", "\"": """}; return text.replace(/[<>&"]/g, function(character) { return replacements[character]; }); }

40、不要在循环内部使用try-catch-finally

try-catch-finally中catch部分在执行时会将异常赋给一个变量,这个变量会被构建成一个运行时作用域内的新的变量。
切忌:

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时注意设置超时

XMLHttpRequests在执行时,当长时间没有响应(如出现网络问题等)时,应该中止掉连接,可以通过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();

同时需要注意的是,不要同时发起多个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()方法的最末尾。

以上就是为大家分享的javascript开发技巧,希望对大家的学习有所帮助。

推荐文章

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。

jquery实现select选择框内容左右移动代码分享 - 2015-11-23 18:11:32

本文实例讲述了select选择框内容左右移动添加删除。分享给大家供大家参考。具体如下: select选择框内容左右移动,简单实用,选中选项内容,点击移动按钮可进行内容左右移动,运行效果图: 具体代码如下 !DOCTYPE htmlhtmlhead meta charset="utf-8" / titleindex/title/headbody div select multiple="multiple" option value

- 2015-11-23 18:11:28

一、数组的常用方法 1:join(); 将数组转为字符串显示。不输入参数,默认以逗号连接;输入参数,则以参数连接。 var arr=[1,2,3];console.log(arr.join()); // 1,2,3;console.log(arr.join("_")); // 1_2_3;console.log(arr); // [1,2,3]; 原数组不变。 2:reverse(); 将数组逆序排列,原数组被修改。 var arr=[1,2,3];var arr2=arr.reverse();conso

- 2015-11-23 17:11:58

本文实例讲述了javascript实现动态统计图的代码。分享给大家供大家参考。具体如下: 运行效果截图如下: 具体代码如下 html代码: div div h1汽车销量:/h1 div ul li大众/li li丰田/li li别克/li li福特/li li长安/li /ul /div /div di

js实现索引图片切换效果 - 2015-11-23 17:11:16

本文实例讲述了js实现索引图片切换效果的代码。分享给大家供大家参考。具体如下: 运行效果截图如下: 具体代码如下 html代码: div img src="img/1.jpg" / img src="img/2.jpg" / img src="img/3.jpg" / /div css代码: .ft-prev, .ft-next { background-color: #000; padding: 0 10px; color:#fff; } js代码: $(doc

解决jquery插件:TypeError:$.browser is undefined报错的方法 - 2015-11-23 17:11:11

首先先说一说$. browser browser就是用来获取浏览器基本信息的。 jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support 。 在更新的 2.0 版本中,将不再支持 IE 6/7/8。 以后,如果用户需要支持 IE 6/7/8,只能使用 jQuery 1.9。 解决方法 :加入以下js即可 (function(jQuery){ if(jQuery.browser) return; jQuery.browser

- 2015-11-23 17:11:11

一、主要介绍: 这题采用之前的技术,根据table的rows属性,获得数组,然后对数组设置样式,所以颜色就出来了。 1).全选复选框 ,通过 var nodess=document.getElementsByName("mail"); for(var x=0;xnodess.length;x++){nodess[x].checked=nodes.checked;} 复选框函数进行 2).按钮全选,反选,和取消全选, 可以用一个函数写,传入不同的参数AllBybtn(num)类型即可 函数里面 根据js的特

jQuery实现分隔条左右拖动功能 - 2015-11-23 14:11:09

 

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

相关文章
  • JavaScript转换与解析JSON方法实例详解第1/2页

    JavaScript转换与解析JSON方法实例详解第1/2页

    2016-02-10 21:25

  • DockOne技术分享(十二):新浪是如何分析处理32亿条实时日志的

    DockOne技术分享(十二):新浪是如何分析处理32亿条实时日志的

    2016-02-05 19:16

  • 未来编程的9大猜想:JavaScript不必亲自编写

    未来编程的9大猜想:JavaScript不必亲自编写

    2016-01-30 13:01

  • Objective-C与JavaScript交互的那些事

    Objective-C与JavaScript交互的那些事

    2016-01-30 13:00

网友点评