javascript - 使用javascript单例记录错误

标签 javascript error-handling singleton

我有一个PHP脚本,可将信息和错误消息记录到数据库表中。我想建立一个javscript单例,用于基于参数调用此脚本
关于我需要记录的信息或错误。 PHP脚本检查是否设置了logonly参数,如果设置了logonly参数,则仅记录值;如果未设置,则记录错误,还记录
通过电子邮件将其写入日志的电子邮件发送给我,以便在收到电子邮件后可以立即对其进行检查。

这是javascript单例:

[BrowserDetect是用于浏览器检测的类:
http://www.quirksmode.org/js/detect.html]

var NATools = {
  var browser    = BrowserDetect.browser;
  var browserVer = BrowserDetect.version;
  var browserOS  = BrowserDetect.OS;
  var AJAX_ERROR_LOG_URL      = '/ajax/log_ajax_error.php';

  DebugLog: function(log_only, url, msg, browser, browserVer, browserOS, jqXHR, exception) {
    var logurl = AJAX_ERROR_LOG_URL;
    if(log_only) {
      var logurl += '?logonly=yes&url='+url+'&browser='+browser+'&browserVer='+browserVer+'&browserOS='+browserOS;
    } else {
      var logurl += '?status='+jqXHR.status+'&object='+jqXHR+'&error='+jqXHR.responseText+'&expmessage='+exception.message+'&url='+url+'&browser='+browser+'&browserVer='+browserVer+'&browserOS='+browserOS;
    }
    $.ajax({
        async: true, 
        type:'POST', 
        url: logurl, 
        dataType: 'json'
    }); // $.ajax
  }; // DebugLog
}; // NATools

这是在信息情况下的调用方式:
// url is preformed in this situation
NATools.DebugLog(true, url, "Good Entry", browser, browserVer, browserOS);

这是在ajaxError情况下如何调用的方法:
$(document).ajaxError(function(e, jqxhr, settings, exception) {
  var ajax_url = settings.url;
  NATools.DebugLog(false, ajax_url, "Error Entry", browser, browserVer, browserOS, jqxhr, exception);
}); // ajaxError

我的问题是,在信息性情况下,是否需要为jqXHR和exception参数传递NULL?还是可以在此处设置默认的可选参数?

最佳答案

是的,所有JavaScript参数的“默认值”都是undefined。因此,请使用one method or another检查undefined:

if(someParam === undefined) {
    someParam = 'default value';
}

关于javascript - 使用javascript单例记录错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8992706/

相关文章:

javascript - 占位符和 IE < 10 个问题

javascript - Three.js 使 object.rotation.x 平滑

python - ViewDoesNotExist : Error

c - 如何修复类型冲突的错误? c 编程

java - TreeSet 如何作为成员变量在 Enum Singleton 中处理

javascript - Firestore 嵌套 map - 用于更新嵌套对象的点表示法问题

javascript - crm 2011 中的 Json 和 Jquery

php - 解析错误: syntax error, unexpected ',' not seeing the issue [duplicate]

c++ - 迈耶斯单例 : static keyword confusion

design-patterns - 单例真的那么糟糕吗?