2012-01-24 30 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