如何在移動到HTML代碼中的下一行之前確保Javascript函數已完成。在HTML中等待Javascript函數完成
例如:我在main()
中有一個Javascript代碼並調用如下所示。在完成之前,下一行HTML代碼就像加載JPEG一樣顯示在瀏覽器中。 有什麼辦法可以確保main()
調用完全執行。
<script language="JavaScript" type="text/javascript"> main();</script>
你們有些人猜中,可能是在主()的調用asynchroous它使用一個XMLHttpRequest()來得到一些我需要形成網頁中的值。功能主要是如下
function main()
{
var requestor = new net.Requestor("admin/getparam.cgi?mainvideostream&codectype", CurrentHandler);
}
此thers內
和net.Requestor =函數(URL,有載,的onerror,方法,則params,則contentType) 被和XMLHttpRequest的(...)
而Currenthandler是另一個處理來自requset的響應的函數。
function CurrentHandler()
{
settings = this.req.responseText.split("\n");
for(var j=0; j<settings.length-1; j++)
{
var currentST= settings[j].split("=");
name = currentST[0];
value = currentST[1];
switch(name)
{
case "mainvideostream": cur_camid = value; break;
case "codectype": stream = value; break;
}
}
mainSection();
}
所以我必須在加載頁面之前找出流變量。
我假設'main'功能有一定的異步代碼。你可以顯示代碼的功能? – 2012-01-05 17:39:48
我想你想延遲整個頁面加載,直到這一點的JavaScript已完成? – Jimmery 2012-01-05 17:43:37
JavaScript異步運行,頁面異步加載。儘管有一些方法可以阻止JS(一個非常糟糕的主意),但您永遠無法阻止瀏覽器同時加載其他內容(用戶也不希望網站嘗試控制該內容)。問題是:爲什麼你想要/需要這個功能? – Rudu 2012-01-05 17:44:06