热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用CDN和AJAX加速WordPress中jQuery的加载

这篇文章主要介绍了使用CDN和AJAX加速WordPress中jQuery的加载的方法,注意一下WordPress中以及CDN的Google连接在内地的网络问题,需要的朋友可以参考下

确定要放在Head部分 ?

事实上最好的情况是,js文件都不要在部分进行加载,否则会影响到head部分的载入速度,直接导致网站的内容(body)载入延迟。如果你确定你不需要在head部分载入jQuery,请将载入代码移动到前,准确的说是第一个会用到jQuery函数的Javascript代码前。

当然,如果你需要head部分加载jquery,也请确保所有的js文件,包括jquery,都要放在调用CSS文件的代码之后,来实现同步下载。这也是Google官方给出的建议。例如下面的加载不推荐:





而是应该使用:





确定不要异步加载 ?

异步加载不会阻塞网页的载入,而非异步加载则会在加载本身js之前短暂阻塞浏览器的网页载入。这可能影响浏览体验。

如果你的加载代码是


那么你需要知道这可不是异步加载的方式,这是一种同步加载。如果你不需要在页面加载后及时的调用jquery函数,你完全可以用异步加载的方式,使得网页onload之前才加载jquery,大大加快载入速度。这样的代码看起来像是Google Analytics的代码。

(function(doc){

var j =doc.createElement("script");

j.type = "text/Javascript"; j.async = true; j.src = "jquery.js";

var s = doc.getElementsByTagName("script")[0];

s.parentNode.insertBefore(j, s);

})(document);

但是经我观察,大多数的时候我们需要同步加载,尤其是你还需要引入jQuery插件的时候。

使用哪个版本的jQuery ?

wordpress总是自带最新的jQuery库,每一个版本的使用方法总有细微的不同。越新的jQuery版本,性能提升也越高。不过,某些jquery插件可能不太兼容太新的插件,而它自己也没有推出更新。也许有些你会使用的方法函数,到了新版本发现已经被改变,曾经能工作的现在已经不能了。对于这种情况,应该遵从这样的原则,那就是在确保兼容性的同时,做到使用尽可能新的jQuery库。

例如你以前使用1.6.2版本的jquery,到了现在你发现2.X某些函数有改变,你又不愿意去变更代码,就最好逐个调试,例如你发现1.7.2的兼容性就不错。这个时候就可以抛弃1.6.2,可以用1.7.2版本的jQuery去替换掉2.X的新版。

使用哪个jQuery CDN库 ?

jQuery实在是太大了!如果你的网站速度不是飞快,jquery肯定会影响到你的页面加载速度。好在百度、新浪、微软、Google等公司都推出了公共js库,方便网站主调用来缩短下载时间,而它们本身有着超快的CDN服务器,节约了下载时间。

目前用的比较普遍的是Google提供的jquery库:


当然,百度在国内的访问速度是不可小视的:


新浪的CDN同样速度飞快:


不跟风,你也可以选择微软的jquery CDN:


你可以直接更改上面出现的版本号来选择不同的版本。哪一个最快呢?如何选择呢?

如果你的网站访客来自海外的不少,建议选用Google,如果主要访客是国内,选择百度也没问题。但是百度在海外的访问速度可不及Google。

而且因为大多数的网站选择了Google的CDN,由于缓存原理,来访你的网站,可能google的CDN更快。

如果你不是确定自己的网站下载速度飞快,我建议最好选用上述的公开CDN来节省加载时间,同时也节省了流量。

真的要用jQuery吗?

如果你的网站只是需要用带jquery一个很小的函数,为什么要下载这么大的文件呢?为什么不可以jquery-free?

例如你可以考虑zepto.js,其设计目标“以最小的体积,做到最大兼容jQuery的API”。它在gzip压缩后仅仅为10KB。

另外,jQuery有着模块设计,可以选择自己只是需要的模块。你可以参考jquery builder。

加载jQuery的正确方式

说了那么多,加载jquery的正确方式是什么?

首先选好哪个CDN,或者你自己的网站托管js文件,并确定调用的位置在头部还是body,下面以Google的jquery库为例,普通的加载方式是


然而Google的服务在国内间歇性中断,所以我可以照顾一下国内访客,这么写:





这样子即可实现如果jQuery未能加载成功,则自动加载百度的jquery库,做到万无一失了。


推荐阅读
  • 最近学习了关于使用最为流行的jquery发送请求,在实践中以最为简单的聊天室作为测验的辅助工具,对相关网页开发有一个初步的认识,希望大家能够一起学习进步。首先介绍一下 ... [详细]
  • 如何压缩网站页面以减少页面加载时间
    本文介绍了影响网站打开时间的两个因素,即网页加载速度和网站页面大小。重点讲解了如何通过压缩网站页面来减少页面加载时间。具体包括图片压缩、Javascript压缩、CSS压缩和HTML压缩等方法,并推荐了相应的压缩工具。此外,还提到了一款Google Chrome插件——网页加载速度分析工具Speed Tracer。 ... [详细]
  • 本文介绍了DataTables插件的官方网站以及其基本特点和使用方法,包括分页处理、数据过滤、数据排序、数据类型检测、列宽度自动适应、CSS定制样式、隐藏列等功能。同时还介绍了其易用性、可扩展性和灵活性,以及国际化和动态创建表格的功能。此外,还提供了参数初始化和延迟加载的示例代码。 ... [详细]
  • angular.element使用方法及总结
    2019独角兽企业重金招聘Python工程师标准在线查询:http:each.sinaapp.comangularapielement.html使用方法 ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • 前言:关于跨域CORS1.没有跨域时,ajax默认是带cookie的2.跨域时,两种解决方案:1)服务器端在filter中配置详情:http:blog.csdn.netwzl002 ... [详细]
  • 关于extjs开发实战pdf的信息
    本文目录一览:1、extjs实用开发指南2、本 ... [详细]
  • 入门Java需熟练掌握哪些技术呢?
    Java工程师无疑是当下令人艳羡的工作之一,因此,每年都有大批大批的朋友想要报名Java工程师学习Java也就不奇怪了。那么入门Java掌握哪些技术能力 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • Netty源代码分析服务器端启动ServerBootstrap初始化
    本文主要分析了Netty源代码中服务器端启动的过程,包括ServerBootstrap的初始化和相关参数的设置。通过分析NioEventLoopGroup、NioServerSocketChannel、ChannelOption.SO_BACKLOG等关键组件和选项的作用,深入理解Netty服务器端的启动过程。同时,还介绍了LoggingHandler的作用和使用方法,帮助读者更好地理解Netty源代码。 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • jQuery :nthchild前有无空格的区别
    :nth-child(index)子元素过滤选择器的描述是:选取每个父元素下的弟index个子元素,index从1开始。然后,我写了如下h ... [详细]
author-avatar
徐小倩是你叫的
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有