Использование Javascript Singleton для регистрации ошибок - PullRequest
0 голосов
/ 24 января 2012

У меня есть PHP-скрипт, который записывает информационные сообщения и сообщения об ошибках в таблицу базы данных.Я хочу создать синглтон javscript, чтобы использовать его для вызова этого скрипта с параметрами, основанными на информации или ошибке, которые мне нужно регистрировать.Сценарий PHP проверяет, установлен ли параметр 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

Мой вопрос: нужно ли передавать NULLS для параметров jqXHR и исключения в информационномситуация?Или здесь можно установить дополнительные параметры по умолчанию?

1 Ответ

1 голос
/ 24 января 2012

Да, «значение по умолчанию» для всех параметров JavaScript - undefined.Поэтому проверьте undefined, используя тем или иным способом :

if(someParam === undefined) {
    someParam = 'default value';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...