Можно ли сохранить Ajax-вызов как объект? - PullRequest
0 голосов
/ 16 октября 2018

Это не обязательно вопрос «как», а скорее вопрос, который поможет улучшить мое собственное понимание JavaScript и Jquery.В последнее время я часто использую Jquery на своей нынешней работе, и весь мой jquery включает в себя множество вызовов AJAX.В нескольких файлах у меня есть как минимум 6 вызовов ajax для разных ситуаций, и мне было интересно, есть ли более эффективный способ сделать это из сборки кода.Один из моих коллег, который не кодирует, предложил превратить вызов AJAX в свойство и передать аргументы.Это вообще возможно?Если нет, есть ли лучший и более простой способ обработки нескольких вызовов AJAX в одном файле?

Спасибо за ваш вклад, и я надеюсь многому научиться из этого

Вот пример одного из наших вызовов AJAX

$.ajax({
      type: 'POST',
      url: '',
      data: {
        method: 'custCodeData',
        custCode: $('#custCode').val()
      },
      dataType: 'JSON',
      success: function (data) {
        var array = data.DATA;
        $("#response tr:not(:first)").remove();
        for (var i = 0; i < array.length; i++) {
          var newRow = table.insertRow();
          for (var j = 0; j < array[i].length; j++) {
            if (j < 7) {
              var cell = newRow.insertCell(j);
              cell.innerHTML = array[i][j];
            }

            if (j === 0) {
              if (array[i][0] == false) {
                cell.innerHTML = "No";
              }
              if (array[i][0] == true) {
                cell.innerHTML = "Yes";
              }
            }

            if (j === 2) {
              if (array[i][8] == false) {
                cell.innerHTML = `<a href='/buying/quicklink/index.cfm?Passed_CustomerID=${array[i][7]}'>${array[i][2]}     </a><i class="fa fa-arrow-down" aria-hidden="true" ONMOUSEOVER="return overlib('Incomming Customer', FGCOLOR, 'FFFFCC',  BORDER, 2, BGCOLOR, '000000', TEXTFONTCLASS, 'RollOver', WRAP);" ONMOUSEOUT="nd();"></i>`
              } else if (array[i][8] = true) {
                cell.innerHTML = `<a href='/buying/quicklink/index.cfm?Passed_CustomerID=${array[i][7]}'>${array[i][2]}         </a><i class="fa fa-arrow-up" aria-hidden="true" ONMOUSEOVER="return overlib('Outgoing Customer', FGCOLOR, 'FFFFCC',  BORDER, 2, BGCOLOR, '000000', TEXTFONTCLASS, 'RollOver', WRAP);" ONMOUSEOUT="nd();"></i>`
              }
            }
          }
        }
        $("#response tr:contains(Yes)").css({"background-color": "#ff0000", "color": "#FFF"});
      }
    })

1 Ответ

0 голосов
/ 16 октября 2018
function doTheSameExactAJAXThingAgain(method){
    $.ajax({
      type: 'POST',
      url: '',
      data: {
        method: method,//<- METHOD here
        custCode: $('#custCode').val()
      },
      dataType: 'JSON',
      //...etc
}

doTheSameExactAJAXThingAgain('custCodeData');
doTheSameExactAJAXThingAgain('compNameData');
//etc.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...