【问题标题】:javascript: time until page loadjavascript:页面加载前的时间
【发布时间】:2011-01-25 22:51:53
【问题描述】:

我正在使用 javascript 编写动画,并希望在加载所有图像之前打印到用户加载时间。

图像在 html 中设置为:<img src="" />

是否有 javascript 代码可以知道所有页面何时加载?
即直到调用 onLoad() 事件的时间

【问题讨论】:

  • ahmed,@ThiefMaster 想说的是,当一个答案解决了你的问题时,接受它被认为是礼貌的(投票箭头下的大勾号)。这让社区知道您正在积极参与您的问题,并且不打算转储和运行,可以这么说。它当然不是必需的。 (Stack Overflow 上几乎没有必需。)
  • 好的,我不知道有这样的功能......谢谢

标签: javascript jquery html load


【解决方案1】:

你也许可以在页面底部做这样的事情

<span id="imgsMsg"></span>
<script type="text/javascript">
var imgs = document.images;
var len = imgs.length;
var percent = 100;
var count=0;
var messagecontainer = document.getElementById("imgsMsg");
for (var i=0;i<len;i++) {
   imgs[i].onload=function() {
     count++;
     messagecontainer = (percent - Math.floor((100/len)*count))+"% loaded"; // hope my math is correct ;)
   }
}
</script>
</body>

【讨论】:

  • 谢谢它似乎是答案,我会尝试并给你结果
【解决方案2】:

您可能做的最好的事情就是跟踪已加载的图像数量,并将其除以剩余图像的总数。像这样的:

var total_loaded = 0;
$('img').load(function()
{
    total_loaded += 1;
    var load_progress = total_loaded / $('img').length;
    // you can now use load_progress to show the user a rough progress animation
} );

如果您想要“剩余时间”显示,则需要伪造它。例如,您可以跟踪经过的总时间并将其与 load_progress 变量进行比较以获取剩余时间。

【讨论】:

    【解决方案3】:

    这并不难做到,$(window).load:

    var readytime = new Date().getTime();
    $(window).load(function() {
        var loadingtime = (new Date().getTime() - readytime) / 1000; // in seconds
    
        $('#yourTimingField').text(loadingtime + ' seconds');
    });
    

    这测量脚本的这部分和所有子元素的加载之间的时间量。

    【讨论】:

    • 您好,我想在页面加载之前打印用户时间,而不是页面加载后的时间。
    • 示例:20% 直到所有页面加载,40% ..... 50% ..... 100% 页面加载,您可以开始动画
    • @ahmed:最好的方法是使用 Javascript 以编程方式添加图像,然后操作 DOM。
    猜你喜欢
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多