【问题标题】:Can we hide javascript loading from the user?我们可以向用户隐藏 javascript 加载吗?
【发布时间】:2009-07-02 16:07:06
【问题描述】:

如果我有一个使用 PHP 生成的页面,然后使用运行的 JS 进行修改:

window.onload=myFunction;

然后用户会看到原始页面,然后随着 js 代码运行并将其自己的位添加到页面上,该页面似乎会四处滑动。

有没有办法避免用户看到这个过程,或者至少让他们不那么明显?也许有一种比 window.onload 更合适的加载 javascript 的方法(一种可以在图像等下载时开始工作的方法)?

【问题讨论】:

    标签: jquery onload


    【解决方案1】:

    我建议首先在 body 上设置一些类来切换某些元素的可见性。

    <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 将准备就绪,您不必等到所有图像都加载完毕。

    【讨论】:

      【解决方案2】:

      好的,我发现了这个 jquery 的小块,它很有效:

      $(document).ready(function() {
        //Call your function here
      });
      

      【讨论】:

      • 你可以使用 $(function(){ //Your code here }); 来缩短它
      猜你喜欢
      • 2010-10-22
      • 2014-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多