javascript - 排除预加载的元素

标签 javascript jquery preload pace.js

我使用http://github.hubspot.com/pace/在当前项目上预加载整个页面。

是否可以从预加载中排除某些元素?

例如我希望我的 #header#banner 元素立即可见,并让pace在页面的其余部分完成其工作。

对我来说,“开始”事件没有被触发?

Pace.on("start", function() {
        alert('heee');
    });

无论是在文件内还是在函数外就绪。 Pace.on("done", ... 触发得很好。

更新:我目前的主要问题是......

$(window).load(function(){
    $('body').addClass("page");

    Pace.on('start', function() { 
        alert('start') // not fired
    });

    Pace.on('done', function() {
        alert('done') // fired!
    });
});

最佳答案

根据文档:

“收集器是收集进度信息的代码段。Pace 包括四个默认收集器:

Ajax

监控页面上的所有ajax请求

元素

检查页面上是否存在特定元素

文档

检查文档就绪状态

事件滞后

检查 JavaScript 正在执行的事件循环滞后信号

它们都可以通过同名的配置选项进行配置或禁用。”

paceOptions = {
  ajax: false, // disabled
  document: false, // disabled
  eventLag: false, // disabled
  elements: {
    selectors: ['.my-page']
  }
};

也许

elements: {
   selectors: ['.my-page']
}

可以做到这一点。

更多信息请参见:

“元素

渲染到屏幕上的元素是我们确定页面已渲染的一种方式。如果您想使用该信息源(根本不需要),请指定一个或多个选择器。您可以用逗号分隔选择器以正确处理错误状态,其中进度条应该消失,但我们正在查找的元素可能永远不会出现:“

paceOptions = {
  elements: {
    selectors: ['.timeline,.timeline-error', '.user-profile,.profile-error']
  }
}

这似乎是一个不错的插件!

<小时/>

编辑

要在启动时附加代码似乎应该是:

“如果您使用 AMD 或 Browserify,您可以传递选项来启动:”

define(['pace'], function(pace){
  pace.start({
    document: false
  });
});

关于javascript - 排除预加载的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27488146/

相关文章:

javascript - 使用具有 <img> 标签的 Javascript 动态添加 HTML。如何判断图像何时加载

html - 链接预加载不能避免字体加载重复

javascript - 为什么我隐藏侧边栏的 Greasemonkey JQuery 脚本在 Stack Exchange 网站上有效,但在 Stack Overflow 上无效?

jquery - 如何使用 jQuery 找到最接近的元素

javascript - 根据参数类型扩展函数参数

javascript - 预加载图像和添加类

javascript - 为什么 JavaScript/jQuery 中的 this.value 或 $(this).val() 没有响应?

asp.net - 使用 JQuery 或 AJAX 从数据库填充文本框

javascript - JQuery 动画

javascript - 按键模糊功能