一般有以下几种方式:
成都创新互联-专业网站定制、快速模板网站建设、高性价比交口网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式交口网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖交口地区。费用合理售后完善,十余年实体公司更值得信赖。
defer 属性
HTML 4.01 为 script标签定义了 defer属性。
用途:表明脚本在执行时不会影响页面的构造。也就是说,脚本会被延迟到整个页面都解析完毕之后再执行。
在script 元素中设置 defer 属性,等于告诉浏览器立即下载,但延迟执行。
!DOCTYPE htmlhtmlheadscript src="test1.js" defer="defer"/scriptscript src="test2.js" defer="defer"/script/headbody !-- 这里放内容 -- /body/html
说明:虽然script 元素放在了head元素中,但包含的脚本将延迟浏览器遇到/html标签后再执行。
HTML5规范要求脚本按照它们出现的先后顺序执行。在现实当中,延迟脚本并不一定会按照顺序执行。
defer属性只适用于外部脚本文件。支持 HTML5 的实现会忽略嵌入脚本设置的 defer属性。
2. async 属性
HTML5 为 script标签定义了 async属性。与defer属性类似,都用于改变处理脚本的行为。同样,只适用于外部脚本文件。
目的:不让页面等待脚本下载和执行,从而异步加载页面其他内容。
异步脚本一定会在页面 load 事件前执行。
不能保证脚本会按顺序执行。
!DOCTYPE htmlhtmlhead script src="test1.js" async/scriptscript src="test2.js" async/script /headbody !-- 这里放内容 -- /body/html
4.使用jQuery的getScript()方法
$.getScript("outer.js",function(){//回调函数,成功获取文件后执行的函数
console.log("脚本加载完成")
});
5.使用setTimeout延迟方法
6.让JS最后加载
把js外部引入的文件放到页面底部,来让js最后引入,从而加快页面加载速度
by三人行慕课
1、把js的代码放在body里面,最好是放在页面最后的位置,而不是放在head里面。这样整个页面加载结束的时候才会加载到js。
2、你可以使用js函数动态的修改页面,加载js。下面附上两个函数,可以用来加载js或者css。
/*Title : 包含其它 js 文件。
* Description : 将其它 Js 文件引入本文件中,方便管理、维护。*/
function include_js(path) {
var sobj = document.createElement('script');
sobj.type = "text/javascript";
sobj.src = path;
var headobj = document.getElementsByTagName('head')[0];
headobj.appendChild(sobj);
}
/* Title : 包含其它 css 文件。
* Description : 将其它 css 文件引入本文件中,方便管理、维护。 */
function include_css(path) {
var fileref = document.createElement("link")
fileref.rel = "stylesheet";
fileref.type = "text/css";
fileref.href = path;
}
3、利用ajax加载js。
lazyload.js
延迟加载效果是为了快速展现页面图片,比如很多屏的图片,文件比较大,这个插件目的不是为了节省服务器资源,而是为了浏览体验,如果你拉动到底部,其实也是一样的消耗服务器资源。是有选择性的请求图片,很多人曲解了这个意思,其实插件并没有给你节约带宽,而是腾出来给视觉区域的图片。
有很多图片为主的网站利用这个能大大提高用户体验,但是有一点不好就是对搜索引擎seo优化不友好,因为蜘蛛看到的不是真实地址,那么如何解决类似问题呢?其实这个问题可以利用js避免掉SEO问题。代码如下:
script
$(document).ready(function() {
$("img").removeAttr("src");
});
$(function(){
$("img").lazyload({effect: "fadeIn"});
})
/script
页面图片写法如下
img src="1.jpg" data-original="1.jpg" alt=""
img src="2.jpg" data-original="2.jpg" alt=""
这样效果不影响,只是利用了jQuery的便利,$(document).ready()在文档dom加载完毕就删除了src,所以不会有请求,这样就相当于在我们使用前,是利用js删除的src,而不是我们程序不输入图片。
延迟加载一般是根据当前滚动条的位置来决定何时加载图片。
所以个人觉得,在做图片延迟加载时,不建议直接对img直接筛选
针对主要内容区域进行延迟加载就可以了。
例如 $("#Containter img").lazyload()
这样做的目的就是合理避开你需要滚动的地方