如果我有一个使用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
});
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top