Javascript AJAX请求太大?

Javascript AJAX请求太大?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在制作一个包含很多字段的表单,我计划通过AJAX异步提交所有数据。但是,当我单击Submit按钮时,它仍处于单击状态,页面冻结。另外,beforeSend函数也不执行。请注意,。函数是文档。getElementById我听说过jQuery.done()函数,但是这将有助于页面的性能,并且所有数据都作为一行放入数据库,因此如果我拆分数据,则使用.done()函数发送另一半,它将作为两行存储在数据库中吗 function addproperty(){ var propertyna

我正在制作一个包含很多字段的表单,我计划通过AJAX异步提交所有数据。但是,当我单击Submit按钮时,它仍处于单击状态,页面冻结。另外,
beforeSend函数
也不执行。请注意,
函数是
文档。getElementById
我听说过jQuery
.done()
函数,但是这将有助于页面的性能,并且所有数据都作为一行放入数据库,因此如果我拆分数据,则使用.done()函数发送另一半,它将作为两行存储在数据库中吗

function addproperty(){
        var propertyname = _("propertyname").value;
        var propertyaddr = _("propertyaddress").value;
        var price = _("price").value;
        var rent = _("rent").value;
        var available = _("available").value;
        var brokerage = _("brokerage").value;
        var area = _("area").value;
        var subarea = _("subarea").value;
        var sqft = _("sqft").value;
        var description = _("description").value;
        var location = _("location").value;
        var floortype = _("flooringtype").value;
        var parking = _("parking").value;
        var deposit = _("deposits").value;
        var lease = _("lease").value;
        var utils = _("utils").value;
        var bedrm = _("bedrooms").value;
        var bathrm = _("bathrooms").value;
        var smoke = _("smoking").value;
        var pets = _("pets").value;
        var built = _("built").value;
        var submit = _("propertysubmit");
        $.ajax({
            url: "addlisting.php",
            type: "POST",
            async: true,
            data:{
                propertyname:propertyname,
                propertyaddr:propertyaddr,
                price:price,
                rent:rent,
                available:available,
                brokerage:brokerage,
                area: area,
                subarea: subarea,
                sqft: sqft,
                desc: description,
                locate:location,
                floortype: floortype,
                park: parking,
                deposit: deposit,
                lease: lease,
                utils: utils,
                bedrm: bedrm,
                bathrm: bathrm,
                builtdate: built,
                smoke: smoke,
                pets: pets
            },
            beforeSend: function (){
                submit.setAttribute("disabled", "disabled");
                submit.innerHTML = "Submitting...";
            },
            success: function (){
                submit.removeAttribute("disabled");
                submit.innerHTML="Add New Listing";
            } 
        });
    }

按照提问顺序:

  • 是和否。这取决于你所说的“太大”是什么意思,如果你是说太大,互联网无法处理,那么就不是。如果你的意思是对你的应用程序的结构来说太大,那么也许。我看到您使用的是php后端,您可以查看php.ini中的
    post\u max\u size
    value并设置它:
  • #设置最大邮件大小
    php_值post_最大尺寸40M

  • 根据您的页面冻结,这可能是一系列问题,您应该向应用程序添加一些错误处理,并对其进行调试,以查看应用程序冻结的时间点,然后查看所述代码,或者您是否能够更好地捕获抛出的错误

  • .done()
    .success()
    都是回调函数,它们是函数的副本,因为它们的功能相同。一个警告是,jQuery1.8中不推荐使用
    .success()
    +

  • .done()
    的运行方式与
    .success()
    类似,如果将AJAX调用拆分为两个调用,一个调用使用回调函数在另一个调用之后运行,则插入DB的行数将取决于您发布到的方法。如果每次调用插入一行,则是,使用两个调用将插入两行


  • 您没有的是错误处理—不确定需要为错误处理设置什么jQueery$.ajax属性—jQueery在jQueery.com上提供了相当不错的API文档您的页面因
    async:true
    而冻结。你的要求没那么长。