[英]Javascript Allocation Memory Issue
我創建了一個頁面以將訂單插入mysql數據庫。 根據該命令,用戶可以添加任意數量的最多9個iten。 因此,我創建了一個字符串串聯循環。 起初我只使用了一個逗號串接(dados + =''),然后嘗試使用array.push來查看它是否可以解決分配內存問題,但是並沒有按預期進行(加載時間很慢並且再次陷入內存分配問題)
使用第一種方法,錯誤消息是:“分配大小超載”現在,當前錯誤消息是:“未捕獲的異常:內存不足”請看一下我的代碼,看看您的想法:)
function insertOrder(){
var counter = 0;
var lenz = new Array();
var data;
var id = 0;
var patientName = $('#patientName').attr("value");
var phone1 = $('#phone1').attr("value");
var phone2 = $('#phone2').attr("value");
var email = $('#email').attr("value");
var status = $('#status').attr("value");
var atendantName = $('#atendantName').attr("value");
var referee = $('#referee').attr("value");
$("select[name='lenz']").each(function(){
if (counter == 0){
lenz.push('lenzId='+$(this).val());
counter++;
}else{
lenz.push('&lenzId'+counter+'='+$(this).val());
}
counter++;
});
for (counter < 9; counter++;){
lenz.push('&lenzId'+counter+'=0');
}
counter = 0;
$("input[name='quant']").each(function(){
if (counter == 0){
lenz.push('quantity='+$(this).val());
counter++;
}else{
lenz.push('&quantity'+counter+'='+$(this).val());
}
counter++;
});
for (counter < 9; counter++;){
lenz.push('&quantityId'+counter+'=0');
}
var paymentMethod = $('#paymentMethod').attr("value");
var trancheNumber = $('#trancheNumber').attr("value");
var discount = $('#discount').attr("value");
var totalAmount = $('#totalAmount').attr("value");
var trancheAmount = $('#trancheAmount').attr("value");
var remarks = $('#remarks').attr("value");
if(patientName == ''){
alert('Patient Name is missing');
return false;
}
if(confirm("Are you sure you want to include this order?")){
data += lenz.join();
alert(data);
data += '&id='+id+'&patientName='+patientName+'&phone1='+phone1+'&phone2='+phone2+'&email='+email+'&status=';
data += status+'&atendantName='+atendantName+'&referee='+referee+'&paymentMethod='+paymentMethod+'&trancheNumber='+trancheNumber+'&discount='+discount;
data += '&totalAmount='+totalAmount+'&trancheAmount='+trancheAmount+'&remarks='+remarks;
alert(data);
$.ajax({
type: "POST",
url: caminho+"/view/includeOrder.php?acao=salvar",
timeout: 20000,
data: data,
success:
function(data){
if(jQuery.trim(data) == 'ok'){
alert('Order sucessfully included!');
if (id == 0){
$("#includeOrderform")[0].reset();
$("#select-patient").html('Paciente: <button class="btn btn-theme btn-search margintop10 pull-left" type="button" onCLick="popupCenter(\'selecionaPaciente.php\', \'selecionaPaciente\', 750, 500);" >Pesquisar</button>');
}else{
mostrarTela('maintainOrder');
$('html, body').animate({ scrollTop: 0 }, 'slow');
}
}
else{
alert('Error saving Order!');
}
}
});
}
}
基本上,所有的for循環都是錯誤的:
for (counter < 9; counter++;)
它應該是
for (; counter < 9 ; counter++)
第一;
這是必需的,因為否則counter > 9
成為賦值表達式/初始化塊
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.