2012-01-24 15 views
0

情報とエラーメッセージをデータベーステーブルに記録するPHPスクリプトがあります。私はログに記録する必要のある情報やエラーに基づいて に基づいてこのスクリプトを呼び出すためにjavscriptシングルトンを構築したいと考えています。 PHPスクリプトはlogonlyパラメータが設定されているかどうかを確認し、設定されていない場合は値をログに記録し、エラーをログに記録し、 メールをログに書き込んだので、私は電子メールを受け取る。ここ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 

私の質問は、情報の状況では、jqXHRパラメータと例外パラメータにNULLを渡す必要がありますか?または、デフォルトのオプションのパラメータをここで設定することは可能ですか?

答えて

1

はい、すべてのJavaScriptパラメータの「デフォルト値」はundefinedです。だから、one method or anotherを使用してundefinedをチェック:

​​
+0

LOG_ONLYがtrueの場合、私はそれらを使用していないので、それはそれを行うために必要とされた場合、私は本当に求めていました。 log_onlyがtrueで、jqXHRまたは例外オブジェクトを渡さない場合、私はそれらを使用しないので気にしません。私はすでにそれが未定義であるかどうかを判断する方法を知っています。私はこれをできるだけ使用可能にしたい。 – MB34

+0

@ MB34:いいえ、必須ではありません。あなたは安全にそれらを無視し、それらを渡すことはできません。 – Ryan

関連する問題