Ajax的错误处理机制探讨(1)

80酷酷网    80kuku.com

  ajax|错误|错误处理
AJAX框架组件的核心是XMLHttpRequest JavaScript对象,它允许客户端开发人员在不中断用户操作、不利用隐藏页面的情况下,通过HTTP发送和接收XML文档。<table border="0" cellspacing="0" cellpadding="0" align="left" id="ad_pcdog_big"></span></td></tr></table>现在,有些人可能会感到恐惧,因为它突然允许那些可能过多地使用了验证窗体和动画图像的客户端开发人员负责传递XML文档和处理HTTP头信息,但是,没有风险就没有收益。我们不用害怕,我将演示如何使用XMLHttpRequest来添加一些以前不可能的、行不通的特性,它同时还减少了错误,提高了产品质量。</p><p><STRONG>JavaScript中的XMLHttpRequest和XML DOM</STRONG></p><p>首先,我们需要建立一些规则。特殊的XMLHttpRequest对象和一般的XML DOM都受到了最新的浏览器(IE、Mozilla、Safari、Opera)的广泛支持,尽管在一般情况下,微软对于自己的实现会稍微增加一些东西,需要某些特殊的处理。尽管我们更多的朋友直接实现了XMLHttpRequest,但是IE还是要求你用相同的属性实例化一个ActiveXObject。在Apple开发者关系站点上可以找到相关的概述和所有特性列表。下面是一个基本的例子:</p><TABLE borderColor=#ffdddd width="90%" align=center bgColor=#e3f3f3 border=1><TR><TD>var req;<br /><br />function postXML(xmlDoc) {<br /><br /> if (window.XMLHttpRequest) req = new XMLHttpRequest();<br /><br /> else if (window.ActiveXObject) req = new ActiveXObject("Microsoft.XMLHTTP");<br /><br /> else return; // 失败了<br /><br /> req.open(method, serverURI);<br /><br /> req.setRequestHeader(’content-type’, ’text/xml’);<br /><br /> req.onreadystatechange = xmlPosted;<br /><br /> req.send(xmlDoc);<br /><br />}<br /><br />function xmlPosted() {<br /><br /> if (req.readyState != 4) return;<br /><br /> if (req.status == 200) {<br /><br />var result = req.responseXML;<br /><br /> } else {<br /><br />// 失败了<br /><br /> }<br /><br />}</TD></TR></TABLE><br /><br />这种强大的功能的潜在用户是很多的,对于它可能实现的功能的探索才刚刚开始。但是在你试图在web上的建立XML功能之前,我建议你设置一个"安全网"来保证你的抱负(想法)不会受到打击。<br /><br /><STRONG>JavaScript错误处理基础</STRONG><br /><br />JavaScript已经出现很久了,它的早期版本比较原始,缺少特性,仅仅是实现了而已。最新的浏览器不但支持C++和Java中try/catch/finally关键字,而且实现了onerror事件,而这个事件可以捕捉运行时出现的任何错误。它的使用是非常直接的:<br /><br /><TABLE borderColor=#ffdddd width="90%" align=center bgColor=#e3f3f3 border=1><TR><TD>function riskyBusiness() {<br /><br /> try {<br /><br />riskyOperation1();<br /><br />riskyOperation2();<br /><br /> } catch (e) {<br /><br />// e是一个Error类型的对象,至少有两个属性:name和message<br /><br /> } finally {<br /><br />// 清除消息<br /><br /> }<br /><br />}<br /><br />window.onerror = handleError; // 捕捉所有错误的安全网<br /><br />function handleError(message, URI, line) {<br /><br /> // 提示用户这个页面可能无法正常响应<br /><br /> return true; // 停止默认的消息<br /><br />}</TD></TR></TABLE>

[1]    



分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: