这段AJAX代码意味着什么?

时间:2014-03-19 12:46:31

标签: javascript jquery ajax

我搜索了互联网以获取信息,但我似乎无法获得有关我正在使用的这段AJAX代码的任何信息:

function getEmployeeFilterOptions(){
    var opts = [];
    $checkboxes.each(function(){
        if(this.checked){
            opts.push(this.name);
        }
    });

此代码之间的区别是什么,因为它们都是调用AJAX的方法?

function updateEmployees(opts){
    $.ajax({
        type: "POST",
        url: "submit.php",
        dataType : 'json',
        cache: false,
        data: {filterOpts: opts},
        success: function(records){
            $('#employees tbody').html(makeTable(records));
        }
    });

如果有人可以详细解释一切代表什么,那就太好了。

1 个答案:

答案 0 :(得分:0)

第一个代码

第一个代码只是一个伪代码,或者你说的算法代码来检查复选框输入元素的检查。

function getEmployeeFilterOptions(){
    var opts = [];
    $checkboxes.each(function(){
        if(this.checked){
            opts.push(this.name);
        }
    });
});

这将检查每个复选框,注意.each()方法。它将为每个元素执行一个函数。并将检查一个条件。但请注意,复选框不会做任何事情。你更可能将它检查为:

$('input[type=checkbox]').each(function () {
  /* here if else statement */
}

第二个代码

第二个代码是执行ajax请求的真实代码。

function updateEmployees(opts) {
    $.ajax({
        type: 'POST',
        url: 'submit.php',
        dataType : 'json',
        cache: false,
        data: {
          filterOpts: opts
        },
        success: function(records) {
          $('#employees tbody').html(makeTable(records));
        }
    });
});

此代码将发送一个AJAX请求,就像提交method="post"的表单一样,您可以看到type: 'POST'部分代码。接下来是页面的URL,其中找到页面以捕获请求。数据类型也是页面的mime,设置为json。服务器会知道请求是json格式的。您也可以在服务器端处理它。如:

if(request_type == 'json') {
  /* note, it is also a pseudo code */
}

然后,缓存设置为false,这样浏览器和服务器就不能也不能保存此请求的会话。

数据是添加到HttpRequest的其他响应或QueryString。例如,如果请求是GET(type: 'GET')。然后,您可以添加您的姓名或其他任何数据:

data: 'user_name=yourname&password=password'

这会添加到网址。

接下来是响应成功时要执行的功能。如果没有找到错误,那么将执行此函数并更新表格!