题
如果我有一个使用PHP生成的页面,然后使用JS进行修改,该页面使用:
运行<代码>的window.onload = myFunction的; 代码>
然后用户看到原始页面,当js代码运行时,它会显示为四处闪烁,并将自己的位添加到页面上。
有没有办法避免用户能够看到这个过程,或者至少让他们不那么明显?也许有一种更适合加载javascript的方法而不是window.onload(一个可以开始工作,因为图像等正在下载)?
解决方案
我建议首先在身体上设置一些类,这将切换一些元素的可见性。
<body class="loading"> .... </body>
然后,当脚本完成加载时,您可以删除此类并显示所需的所有内容。你甚至可以使用“加载”这个类可以显示一些奇特的背景,就像Mozilla中旋转的圆点一样。
另外一些项目使用另一种加载脚本的方法而不是“onLoad”。首先,你创建一个全局数组,比方说,命名为“domReady”。
window.domReady = [];
当你需要添加一些将在页面加载时运行的函数时,你只需将它推入这个数组:
window.domReady.push( function foo(){ alert('Hey!'); } );
在文档的最后一行,您将放置将运行所有推送过程的函数:
for (procedure in window.domReady) {
window.domReady[procedure].call();
}
由于它将是结束标记之前文档的最后一行,因此DOM将准备就绪,您不必等到所有图像都被加载。
其他提示
好的,我发现了一个jquery的小块,它起作用了:
$(document).ready(function() {
//Call your function here
});
不隶属于 StackOverflow