1

有没有办法在网页加载时进行一些活动?我想要找出的是,以一种非常简单的方式,在页面开始加载时显示图像或消息,如“正在加载...”,然后在页面加载完成后隐藏它或使其消失。用户可以继续在页面上进行交互。

我已经阅读并尝试了使用 document.ready 的 jQuery 方式,但是一旦文档完全加载就会执行。加载方法也是如此。

因此,如果我的页面需要一些时间才能完全加载,是否有一个页面事件会在页面开始加载时触发,我可以在页面准备好时连接一个 after 事件?

我目前正在使用 ASP.NET MVC 来创建应用程序,如果有帮助的话。

这是一个示例页面:

<body>
    <div class=".loading">
        <p>
            <img src="http://sampsonresume.com/labs/pIkfp.gif" />
            Please Wait
        </p>
    </div>
    @RenderBody()

    @Scripts.Render("~/bundles/jquery")
    @RenderSection("scripts", required: false)

    <script type="text/javascript">
        $(document).ready(function () {
            $('.loading').hide();
        })
    </script>
</body>
4

4 回答 4

3

您应该以可见的加载消息开始页面并在加载时将其隐藏event。像这样的东西:

HTML

<div class="loading">loading....</div>

JS

$(window).load(function() {
    $('.loading').hide(); // hide message when finished with load
});

编辑

我已经替换document.readywindows.load文档准备好不等待图像加载。

于 2013-08-20T12:52:10.480 回答
1

如果您正在谈论服务器上的延迟,那么没有任何事件可以让您挂接。唯一的选择是通过 ajax 加载您的页面,然后显示您的加载消息ajaxStart并将其隐藏在ajaxStop.

但是,如果您谈论的是客户端的延迟,那么 Claudio 概述的方法是您唯一的选择。

于 2013-08-20T12:54:01.973 回答
0

这取决于延迟发生的位置。如果它在用户单击按钮后发生在服务器上,我过去使用的一种解决方案是在用户尝试导航到页面后立即显示加载消息,然后再将请求发送到服务器。

$('a.btn').on('click', function () { 
        $("div.page").showLoading();
    });

我在上面的示例中使用了 jquery showLoading 插件,它显示在按钮单击上,这会导致浏览器在服务器执行操作时显示加载图标。

于 2013-08-20T14:03:49.933 回答
0

利用

$(document).ready( function() {
  $('.any_div').hide();
})
于 2013-08-20T12:57:44.510 回答