我正在制作一个包含很多字段的表单,我计划通过 AJAX 异步提交所有数据。但是,当我单击“提交”按钮时,它仍处于单击状态并且页面卡住。 beforeSend 函数
也不执行。请注意 _()
函数是 document.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_max_size
值并进行设置:
#set 最大帖子大小
php_value post_max_size 40M
根据您的页面卡住,这可能是一大堆问题,您应该向您的应用程序添加一些错误处理并调试它以查看您的应用程序在什么时候卡住,然后查看所述代码,或者如果您可以更好地捕捉抛出的错误。
.done()
和.success()
都是回调函数,它们是功能重复的,因为它们在功能上是相同的。需要注意的是.success()
在 JQuery 1.8+ 中已弃用.done()
将以类似于.success()
的方式运行,如果您将 AJAX 调用分成两个调用,一个在另一个之后运行,使用一个回调函数,那么插入到数据库中的行数将取决于您发布到的方法是什么样的。如果您每次调用INSERT
一行,那么是的,使用两次调用将INSERT
两行。
关于javascript - AJAX 请求太大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31374396/