Javascript Ajax codeigniter,成功时加载速度过快。完成

Javascript Ajax codeigniter,成功时加载速度过快。完成,javascript,php,jquery,ajax,codeigniter,Javascript,Php,Jquery,Ajax,Codeigniter,我使用ajax只工作了不到一周,现在尝试将其与codeigniter一起使用,以创建一个相当复杂的ajax菜单系统。用户可以在菜单系统上添加新的部分。我将ajax代码发布到数据库中,并成功地将其添加到菜单系统中。我遇到的问题是,在对数据库进行更新之前,代码正在运行。因此,在添加之前,我没有得到新的菜单部分,而是得到了最新菜单的副本。如果我稍等片刻,然后使用ajax调用附带的按钮手动进行调用,而不是使用 这是我的ajax电话 // this is attached to my form to ad

我使用ajax只工作了不到一周,现在尝试将其与codeigniter一起使用,以创建一个相当复杂的ajax菜单系统。用户可以在菜单系统上添加新的部分。我将ajax代码发布到数据库中,并成功地将其添加到菜单系统中。我遇到的问题是,在对数据库进行更新之前,代码正在运行。因此,在添加之前,我没有得到新的菜单部分,而是得到了最新菜单的副本。如果我稍等片刻,然后使用ajax调用附带的按钮手动进行调用,而不是使用

这是我的ajax电话

// this is attached to my form to add a menu section
$(function(){
$('#add_category_form').submit(function(evnt){
    evnt.preventDefault(); 
    var posting = $.post(base_url+"/menu/add_category", $("#add_category_form").serialize());
    posting.done(newCategory());
    });
//calls view to generate menu section

function newCategory(){
$.ajax({
    'url' : base_url + '/' + controller + '/new_category',
    'type' : 'POST', //

    'success' : function(data){ 
        var container = $('#testcontainer'); 
        if(data){
            container.html(data);
        }
    }
});              
}

//查看
Ajax延迟 如果您想使用ajax延迟方法,您可以这样做

(function($){
 
   $('#add_category_form').submit(function( event ){
       event.preventDefault();
       
       var _data = this.serialize();
 
       doSomething( _data ).then(
            function( response ){},  // Success
            function( error, code){}   // Error
       );
   });

   var doSomething = function( data ){
       return $.ajax({
          url : base_url + "/menu/add_category",
          data : data,
          type : 'POST',
          dataType : 'html'
       }).promise();  
   };

}(jQuery));

您是否尝试过ObjectObject您是否仅在上面的帖子中看到的函数的其他函数中使用了
newCategory()
?newCategory仅在上面的帖子中使用。我已经试过了。我也答应过。谢谢你的建议,但效果不太好。最后,我使用setTimeout让函数调用暂停半秒,这一点现在已经奏效了。我的问题一定在别的地方。
(function($){
 
   $('#add_category_form').submit(function( event ){
       event.preventDefault();
       
       var _data = this.serialize();
 
       doSomething( _data ).then(
            function( response ){},  // Success
            function( error, code){}   // Error
       );
   });

   var doSomething = function( data ){
       return $.ajax({
          url : base_url + "/menu/add_category",
          data : data,
          type : 'POST',
          dataType : 'html'
       }).promise();  
   };

}(jQuery));