第一次在这里发海报。对于我遇到的其他问题,我找到了一些很好的答案,但是这个问题让我很难过,我不确定最好的解决方法。我进行了一些搜索,但没有找到任何看起来像是解决方案的东西。
我正在构建一个基本 BOM 显示的表格。该函数采用所需的部件 ID 和空格(仅用于缩进结果以提高可读性)并通过再次调用自身来检查任何子部件的每个结果,依此类推。
如果我将 ASYNC 设置为false并且我得到了想要的结果,这会很好,但我认为可能有一种方法可以使这个异步并在更短的时间内达到相同的结果。
是的,我将对其进行修改,使其不会在每次调用时更新 DOM。我会把它改成一个变量,所以最后只有一个调用!
任何帮助表示赞赏。
/*******************************************************************
FUNCTION - Traverse the BOM
Check each PID for child parts
********************************************************************/
function traverse_bom(search_term, spaces) {
spaces += " ";
$.ajax({
//async: false,
url: 'spec_collector_ajax.php',
dataType: 'json',
data: { data_retrieve: "database_query",
table: "Product_Structure",
order: "ORDER BY COMPRT_02",
search: search_term},
success: function(data2)
{
// If there is data, then print it out to a table
if (data2 != 0)
{
// Iterate through each entry and list the results
$.each(data2, function(i2,item2)
{
// print the BOM entry info
$('#table_bom tbody:last').append( '<tr><td>' + spaces + item2.COMPRT_02 + '</td><td>' + item2.QTYPER_02 + '</td></tr>');
// Check for children under this part
traverse_bom(item2.COMPRT_02, spaces);
});
}
else
{
}
},
// Error handling
error: function (xhr, ajaxOptions, thrownError) {
// Print error message for debugging
alert(thrownError);
}
});
};