var hash = 0
if (str.length == 0) return hash
for (i = 0i <str.lengthi++) {
char = str.charCodeAt(i)
hash = ((hash<<5)-hash)+char
hash = hash &hash// Convert to 32bit integer
}
return hash
}
个人认为如果它已经被浏览器下载到缓存,而且尚未过期,那么浏览器会优先使用缓存的,虽然浏览器也会向服务器发送文件请求,但如果请求的文件自上次被下载以来没有变更过,实际是不会重复下载的,服务器会返回一个信号,通知浏览器直接使用缓存中的文件,即可起加速作用,又可节省带宽.如果没有人为干预,浏览器和服务器通常可以自动完成上述过程,不用特别的设计.