我的目标是在对 Quick-Base 的查询花费太长时间时显示加载窗帘。
我有以下代码,我认为它会起作用,但不知何故没有。除了装载帘外,一切都正常工作,因为它永远不会在应该执行的时候执行。
我的代码:
<script>
window.onload = function(){
// .. more code here not related ...
function selectedValueChanged() {
$('#curtain').show();
var e = document.getElementById("record_id_select");
var value_selected = e.value;
var CO_picked_record_id = parseInt(value_selected);
var query_CO_line_details = "{'"+related_CO_fid+"'.EX.'"+CO_picked_record_id+"'}";
var records = getRecords(table_CO_line_details_DBID,query_CO_line_details);
var data_array = createArrayFromRecordsDrilled(records,CO_detail_record_categories);
var table_div = tableCreate(data_array,'table_container_1',"Please Enter Quantities",headerList);
$('#table_container_1').replaceWith(table_div);
$('#curtain').hide();
}
}
</script>
<div id='curtain' style='position:absolute;top:0;left:0;margin:0;background:rgba(255,255,255,.3); display:none; width:100%;height:100%;'><img id ="loading_text" src="loader.gif"></div>
</body>
该代码有效,但即使查询需要几秒钟(最多 6 秒),也不会显示窗帘。如果我注释掉“$('#curtain').hide();”行 我可以看到加载窗帘按预期工作,但只有在查询完成后。就好像该函数不是逐行执行,而是先等待完成查询,然后显示幕布。我确定我错过了一些东西,但我不知道是什么。谢谢你。