var img =new Image();//实例化一个图片的对象
img.src = url;//将要显示的图片加载进来
这两句就是预加载。
写明了这两句浏览器就会自动下载图片的数据到硬盘缓存(如果缓存中有就不下载,直接用缓存),但是没有显示在浏览器上。然后把一个<img>标签的src设置成url就显示出来了。
我们通常的<img>标签是显示的提醒浏览器要显示一张图片,浏览器自己去相关地址取。
另外
注意下img.complete兼容性并不好,但是用在这里可以减少非IE浏览器的url请求

解决方案 »

  1.   

    刚百度看了下浏览器缓存
    浏览器缓存(Browser Caching)是为了节约网络的资源加速浏览,浏览器在用户磁盘上对最近请求过的文档进行存储,当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样就可以加速页面的阅览。
    默认就有了 为什么还要代码写 这个地方我怎么想也想不明白
      

  2.   

    刚百度看了下浏览器缓存
    浏览器缓存(Browser Caching)是为了节约网络的资源加速浏览,浏览器在用户磁盘上对最近请求过的文档进行存储,当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样就可以加速页面的阅览。
    默认就有了 为什么还要代码写 这个地方我怎么想也想不明白
    缓存的生成必须依靠网站获取撒
    万一缓存里没有就会去网站上拿。就算缓存里有,浏览器也要请求,跟网站的图片做比照,如果没有远程服务器端的图片没有被改变(这牵扯到一个ETag),就直接用缓存里的图。不过就算这样,也是发起了url请求,消耗了服务器的资源。