首先,我是全新的網絡編程 - JavaScript,CSS等。 我知道一些HTML和來自不同語言的腳本背景(lua,批處理,shell等)。 。javascript加載屏幕,直到數據加載
因此,我創建了一個網頁來顯示一些從模擬器生成的統計數據到MySql數據庫中。所以要顯示它,我想我是否應該去PHP,但最終因爲我已經在服務器端使用Flask和Python,並且它不支持PHP,因此我決定通過javascript和jquery顯示統計信息。
所以它的工作方式是,我有一個帶有標籤的頂層菜單,每次點擊一個標籤時它應該顯示該頁面,在其中一個頁面中,我們可以點擊其中一個表格行來導航到另一個標籤,問題是,該選項卡顯示在數據加載到該選項卡中的表之前。
選項卡的功能(從某處複製在網絡上):
function openCity(evt, cityName) {
var i, tabcontent, tablinks;
tabcontent = document.getElementsByClassName("tabcontent");
for (i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
tablinks = document.getElementsByClassName("tablinks");
for (i = 0; i < tablinks.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" active", "");
}
document.getElementById(cityName).style.display = "block";
evt.currentTarget.className += " active";
};
行處理程序來捕獲單擊行和運行鏈接服務器獲取數據對於飛行員:
function addRowHandlers() {
var table = document.getElementById("pilotsOverview");
var rows = table.getElementsByTagName("tr");
for (i = 0; i < rows.length; i++) {
var currentRow = table.rows[i];
var createClickHandler =
function(row)
{
return function() {
var cell = row.getElementsByTagName("td")[0];
var id = cell.innerHTML;
myFunction(id)
};
};
currentRow.onclick = createClickHandler(currentRow);
}
}
爲每個飛行員姓名獲取相關GUID的功能,從服務器啓動數據加載並單擊選項卡。 會發生什麼情況是數據稍後加載並且首先顯示標籤,需要獲得運行加載程序的方法,直到這些函數完成 - pilotsoverview,pilotinfo。
function myFunction(pilotname) {
if (pilotname == null)
{
var pilotname = document.getElementById("list_players").value;
}
var ucid;
for (var key in allPilotArr) {
if (pilotname==allPilotArr[key])
{
ucid = key;
}
};
document.getElementById("demo").innerHTML = "Loading "+pilotname+" Pilot Statistics";
console.log(ucid)
pilotsoverview(ucid)
pilotinfo(ucid)
document.getElementById("pinfo").click();
<!-- location.href='/statistics/'+ucid; -->
};
希望這是有道理的,或者我解釋說不夠好,我說我真的很新的JavaScript和Web服務器VS客戶端。
感謝您的任何幫助。
謝謝,我會盡力回覆。 – Morrtz
它似乎沒有工作,該標籤打開之前,數據從服務器加載,一兩秒後,你可以看到數據填充表。 有沒有辦法等待數據填充,只有在運行load()函數後? – Morrtz
然後把load()函數加載數據的末尾,而不是在我做的js文件 –