投递文章 | 投稿指南 把 西安网吧在线 加入收藏夹 | 设为首页    西安网吧在线 网站联盟:
做最好的网吧门户站点!
搜索: 您的位置西安网吧在线网吧维护Web服务器 → 文章内容

Ajax错误处理机制技术探讨

  作者:佚名   来源:IT专家网   更新时间:2007-10-26 3:54:35   【 】  评论:0
作者: ,  出处:IT专家网社区, 责任编辑: 叶江, 
2007-06-21 11:35
  本文将演示如何使用XMLHttpRequest来添加一些以前不可能的、行不通的特性,它同时还减少了错误,提高了产品质量……

  类的最后一部分建立了一个Logger类实例。这个类应该只有一个实例。

  // 只有一个日志记录器实例
  var logger = new Logger();

  最后的两个函数只是用于琐碎事务管理的。如果在记录错误的时候出现了问题,除了干扰用户之外,我们几乎不能做任务事务。但是,这种情况永远不会出现。这些不是类的方法,因为事件没有指向我们的对象的指针,但是它会指向我们建立的logger实例。

  // 我们试过了,但是连接错误,没有希望了
  function abortLog() {
  logger.req.abort();
  alert("Attempt to log the error timed out.");
  }
  // 请求的状态发生改变的时候调用
  function errorLogged() {
  if (logger.req.readyState != 4) return;
  window.clearTimeout(logger.timeout);
  // 请求完成了
  if (logger.req.status >= 400)
  alert(’Attempt to log the error failed.’);
  }

  前面的所有代码都被包装到一个.js文件中了,我们可以在站点的任何(或每一个)页面中包含这个文件。下面是如何包含这个文件的例子:

<script type="text/javascript" src="Logger.js"></script>
<script type="text/javascript">
function trapError(msg, URI, ln) {
 // 在对象中包装我们未知的错误
 var error = new Error(msg);
 error.location = URI + ’, line: ’ + ln; // 添加自定义属性
 logger.log(error);
 warnUser();
 return true; // 停止黄色三角形
}
window.onerror = trapError;
function foo() {
 try {
riskyOperation();
 } catch (err) {
//添加自定义属性
err.location = location.href + ’, function: foo()’;
logger.log(err);
warnUser();
 }
}
function warnUser() {
 alert("An error has occurred while processing this page."+"Our engineers have been alerted!");
 location.href = ’/path/to/error/page.html’;
}
</script>

上一页  [1] [2] [3] [4]  下一页

Tags: 网吧 硬件 价格 最新  
责任编辑:Cn029.Com
  • 请文明参与讨论,禁止漫骂攻击。 用户名:新注册) 验证码: 验证码,看不清楚?请点击刷新验证码

    分 值:100分 85分 70分 55分 40分 25分 10分 0分

    评论总数:0条,平均得分:0[ 查看全部 ] 网友评论
    热门图文
    关于我们 - 联系我们 - 广告服务 - 法律声明 - RSS订阅 - 网站地图 - 返回顶部