2012-01-24 28 views
0

我有一个PHP脚本,可以将信息和错误消息记录到数据库表中。我想构建一个javscript单例,用于使用基于 的参数调用此脚本,以获取我需要记录的信息或错误。 PHP脚本检查是否设置了登录参数,如果是,则只记录该值,如果未设置,则会记录该错误,并且还会将它写入日志的电子邮件发送给我,以便我可以立即检查该日志我收到电子邮件。使用JavaScript单例记录错误

这里是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 

我的问题是,我需要通过NULLS jqXHR和异常参数的信息情况?或者可以在这里设置默认的可选参数吗?

回答

1

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

​​
+0

如果被要求这样做,因为我不使用他们,如果log_only是真的,我真的问。如果log_only为真,并且我没有传递jqXHR或异常对象,那么我不会使用它们,所以我不在乎。我已经知道如何确定它是否未定义。我想尽可能地使它变得可用。 – MB34

+0

@ MB34:不,这不是必需的。你可以安全地忽略它们,而不是通过它们。 – Ryan