打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
InstantClick.js -让页面提前加载200ms-快速响应!让你的网站与众不同
  •  · 前言
  • 2 · 使用方法
  • · 下载instantclick.js
  • · 使用
  • · 查看效果
  • · 扩展
  • · 实例

    前言

    加速网站加载的方式有很多,在@Roc的推荐下,我找到了这个InstantClick.js,仔细查看了官网的英文文档,发现InstantClick.js有个很好的实现思路(how-it-works)。

    在访问者点击一个链接之前( 鼠标测试:test yourself here ):

    • 悬停 hover (hover->click之间200ms左右)
    • 鼠标按下 Mousedown (Mousedown->click之间100ms左右),
    • Touchstart 手机触碰

    这两个事件之间通常有200ms的间隔,InstantClick 利用这个时间间隔预加载页面。这样当你点击页面的时候,其实页面已经加载到本地了,呈现当然也就会很快。

    当然InstantClick 也使用了 Pjax: pushState 和 Ajax 技术

    同时我试用了下,的确效果不错。如果你的博客需要实现Pjax,InstantClick会是个不错的选择。

    使用方法

    下载instantclick.js

    下载地址:instantclick.min.js仅仅2.5Kb,很小

    使用

    1. <script src="instantclick.min.js" data-no-instant></script>
    2. <script data-no-instant>InstantClick.init();</script>

    • data-no-instant的含义是,这个JS只会运行一次,需要根据自己的情况,设置
    • 如果想避免不必要的预加载,关闭hover,启用Mousedown是个不错的选择,moursedown意味着已经点击链接

    查看效果

    打开chrome console,查看network视图,会在每次hover时,都可以先加载页面,在click时展示结果页面。

    由于没有一个好的截动画软件,所以没有gif动画展示

    扩展

    InstantClick也提供了几个事件可以设置。

    1. change 页面更改完毕,即click触发加载后
    2. fetch 页面开始预加载
    3. receive 页面预加载完毕,即:hover或mousedown触发的预加载,但不一定会change,因为用户不一定click

    实例

    因为使用ajax,所以google ga不会统计PV,所以增加change方法

    1. <script src="instantclick.min.js" data-no-instant></script>
    2. <script data-no-instant>
    3. /* Google Analytics code here, without ga('send', 'pageview') */
    4. InstantClick.on('change', function() {
    5. ga('send', 'pageview', location.pathname + location.search);
    6. });
    7. InstantClick.init();
    8. </script>

  • 本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
    打开APP,阅读全文并永久保存 查看更多类似文章
    猜你喜欢
    类似文章
    【热】打开小程序,算一算2024你的财运
    提升页面加载速度:InstantClick
    如何让页面自动加载js文件
    WordPress速度优化——图片延时加载
    JS的location.href如何跳出框架打开新页面—常用代码—js
    使用 instant.page预加速Gridea博客 | kveln's blog
    Javascript js中页面的重新加载
    更多类似文章 >>
    生活服务
    热点新闻
    分享 收藏 导长图 关注 下载文章
    绑定账号成功
    后续可登录账号畅享VIP特权!
    如果VIP功能使用有故障,
    可点击这里联系客服!

    联系客服