何时在ajax调用中使用回调

时间:2014-03-27 07:13:59

标签: javascript jquery ajax

为什么要使用第一种方法并调用它。 (回调功能)。为什么不使用最后一个呢? http://pastebin.ca/2683261

一种方法是使用success: success第8行。并且该方法的调用者实际上将该方法设置为成功(第16行)

有人告诉我,最后一种方法不会做任何事情,因为服务器的回复(成功/失败)会come late r。我需要像第一种方法一样使用callbacks

* 我确实记得我遇到过传统问题。我只是不记得它是什么。我认为有些事情我并没有得到回应。有人告诉我,你不会立即得到响应,因为它的异步。你需要回电。他是对的。但我不记得用例 *

带有success:success

(方法调用时回调)

function ajaxEditBox(box, boxType, boxTitle, boxDescription, success, error){
    var boxId = box.attr('id').split("-")[1];
    alert("box id to be sent to edit by ajax call: "+boxId +" type:"+boxType+" title:"+boxTitle+" desc"+boxDescription);

    $.ajax({
        url: "${pageContext.request.contextPath}/box/edit/"+boxId+"/"+boxType+"/"+boxTitle+"/"+boxDescription,
        cache: false,
        success: success,
        error: error
    });
}

方法调用回调

 ajaxEditBox(window.box, boxType, boxTitle, boxDescription, function(){
            alert("boo");
            $(window.box).removeClass("box-vertical");
            $(window.box).removeClass("box-horizontal");
            $(window.box).addClass("box-"+boxType);
            $(window.box).find(".box-title-text").first().html(boxTitle);
                    //description change/edit is pending.


        },
        function(){
            alert("ooh");
        });

传统的ajax

function ajaxCreateBox(parent){

$.ajax({

        url: "${pageContext.request.contextPath}/box/create/"+parentType+"/"+parentId+"/"+boxType+"/"+boxTitle+"/"+boxDescription,
        cache: false,
        //data:'firstName=' + $("#firstName").val() + "&lastName=" + $("#lastName").val() + "&email=" + $("#email").val(),
        success: function(response){

            $('#result').html(fetchedBoxId+" "+fetchedBoxType+" "+fetchedBoxTitle+" "+fetchedBoxDescription);
            // createBoxInDom();
            $("#"+parentElementId+" > ."+parentType+"-body").append(
                    '<div id="boxid-'+fetchedBoxId+'" class="box box-'+fetchedBoxType+'" >'+
                            '    <div class="box-title" title="'+fetchedBoxDescription+'">'+
                         ...
..
..
..
some logic
...
..
                            '        <div class="box-body">'+
                            '        </div>   '+
                            '</div>');



        },
        error: function(){
            alert('Error while request..');
        }

0 个答案:

没有答案