为什么要把JavaScript代码尽量放到网页底部

JavaScript010

为什么要把JavaScript代码尽量放到网页底部,第1张

这个问题有两个考虑:

如果是外部加载的js, 也就是通过src加载的外部js,  这种方式调用的js之所以要放到底部是因为浏览器渲染网页是从上往下,页面是用户能看到的也能直观感受到的,而js代码是用户看不到的,属于“幕后”的东西, 把“幕后”的东西放到最下面,那么用户能看得见的页面加载速度就会更快,让用户感觉页面打开速度很快,提高用户体验。

js一般会用于对页面DOM的操作,如果将js代码放到页面顶部, 基于浏览器从上往下加载的机制,有可能被操作的DOM节点还未加载完毕,JS就去操作DOM了,这明显会导致出错,放到页面底部会保险一些。

主要考虑是第一条, 第二条现在为了百分百保证DOM树渲染完毕执行JS, 基本都用load检测了。

js判断window.scroll 判断滚动到底部的方法是设置一个变量,来检测鼠标位置。

具体的实现方法如下:

$(window).scroll(function() {

如果滚动的高度加上窗口的高度等于页面的高度就是到了底部

if($(window).scrollTop() + $(window).height() == $(document).height()) {

alert("bottom!")//已经滚动到底部

}

})

或者也可以写专用方法检测高度:

function getDocHeight() {

var D = document

return Math.max(

D.body.scrollHeight, D.documentElement.scrollHeight,

D.body.offsetHeight, D.documentElement.offsetHeight,

D.body.clientHeight, D.documentElement.clientHeight

)

}

然后再用以下方法检测:

$(window).scroll(function() {

if($(window).scrollTop() + $(window).height() == getDocHeight()) {

alert("bottom!")

}

})

若要想判断js window.scroll是否滚动到底部,需要用的三个属性值,它们分别是:

scrollTop、clientHeight和scrollHeight;

1、scrollTop为滚动条在Y轴上的滚动距离。

2、clientHeight为内容可视区域的高度。

3、scrollHeight为内容可视区域的高度加上溢出(滚动)的距离。

so,滚动条到底部的条件即为scrollTop + clientHeight == scrollHeight。