2011-04-25 60 views
0

我有這個代碼在頁面加載時自動提交表單,但需要20秒才能完成頁面完成加載後提交。是否有可能使body onload事件更快?

我在這裏做錯了什麼? 如果沒有,如何繞過那20秒的延遲? 我們可以使body onload事件更快嗎?

代碼:

<html> 
<body onload="document.forms['loginform'].submit();"> 
<form id="loginform" name="loginform" action="https://login.url.com" method="post" style="visibility:hidden"> 
    <input type="hidden" value="" name="hhh"> 
    <input type="text" value="username" id="login_field" name="username"> 
    <input type="password" value="pass" id="password_field" name="password"> 
       <input type="hidden" value="" id="password_strength" name="password_strength"> 
       <input type="hidden" value="/index.php" id="sendto" name="sendto"> 
    <button id="btn_logon" type="submit"><span>Login</span></button> 
     </form> 
</body> 
</html> 

太感謝你了。

+0

當然,提交後20秒延遲*是由於服務器上的處理緩慢。 – brianpeiris 2011-04-25 03:59:37

回答

0

加載事件在頁面的所有依賴關係 - 圖像,外部資源等已被加載後觸發。您應該注意的事件是在DOM準備就緒時被觸發的事件 - DOMContentLoaded,它已經在HTML5中進行了標準化。

對於跨瀏覽器的解決方案,選擇一個從執行任何現有的JavaScript庫像MooTools的,jQuery的,道場等

link包含一個實現。如果您的DOM內容太大,而下載和解析只是需要時間,那麼請考慮在<form>之後立即添加腳本。

<form id="loginform" name="loginform" action=".." method="post"> 
... 
</form> 
<script> 
    // submits the form right after it is parsed 
    document.forms['loginform'].submit(); 
</script> 
+0

標準化=)誰在乎,對吧?所有的瀏覽器都這樣做,並且有兩個以上的實現。爲什麼我們甚至有一個W3C標準化的東西?他們總是落後3年! – Rudie 2011-04-25 03:37:25

+0

那麼,如何觀看DOM。我仍然新手javascript.plus添加一個JavaScript庫,我認爲這將需要更多的時間來加載圖書館本身? – alhoseany 2011-04-25 03:52:17

+0

我支持W3C的努力。在這裏和那裏幾乎沒有什麼小故障和不一致,但是當你考慮整個規範有多大時,看起來他們會很出色。如果沒有規範和管理機構,並且缺乏像jQuery這樣的標準化庫,事情可能會變得更糟。我們可能會爲每個瀏覽器編寫一個新網站,就像我們爲移動應用程序所做的那樣。 – Anurag 2011-04-25 03:53:57