2011-04-25 27 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