是否可以将Ajax调用存储为对象?

时间:2018-10-16 12:27:10

标签: javascript jquery ajax

这不一定是“如何做”的问题,而是一个请求,以帮助提高我对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 :(得分:3)

function doTheSameExactAJAXThingAgain(method){
    $.ajax({
      type: 'POST',
      url: '',
      data: {
        method: method,//<- METHOD here
        custCode: $('#custCode').val()
      },
      dataType: 'JSON',
      //...etc
}

doTheSameExactAJAXThingAgain('custCodeData');
doTheSameExactAJAXThingAgain('compNameData');
//etc.