资讯专栏INFORMATION COLUMN

关于图片预加载的思考

番茄西红柿 / 1378人阅读

摘要:为了解决这个性能问题,有一个比较好的解决问题就是用去延迟图片预加载。

引子:

很多时候,我们在写html页面的时候,当需要在页面中加入图片时,我们很自然地把图片直接用标签放在了里面,这本来是没有多大问题的。

但是当图片数量很多的时候,问题就来了。Html页面在被解析器解析的时候要不断去寻找图片的路径去加载图片,而这些图片不一定所以都会被用户通过触发一些类似点击的操作所看到。这样,一些不必要的图片预加载就会拉长了页面的加载时间,带来的用户体验是不好的。

为了解决这个性能问题,有一个比较好的解决问题就是用js去延迟图片预加载。那么具体的实现过程是怎样的呢?

我先把我实现的代码放在下面:

<html lang="en">
<head>
         <meta charset="UTF-8">
         <title>Documenttitle>
<style>
  body{position:relative;text-decoration: none;list-style: none;}

  .showpic{position:absolute;height:550px;width:90%;margin-left:80px;background-color: black;}

  .button-box{position: absolute;margin-top:560px;margin-left: 600px;z-index: 5;}

  .preload{position: fixed;height: 100%;width:100%;top:0;background-color: white;display: none;}

  img{position: absolute;margin-left: 30px;margin-top: 3px;}

  button{height: 30px;width:80px;font-size: 10px;}
style>
<script  src="https://code.jquery.com/jquery-1.12.4.js">script>
head>

<body>
         <div class="showpic">
                  <img src="img/pexels-photo-297814.jpeg" id="img">
         div>

         <div class="button-box">
                   <button type="button" value="前一张"  data-control="prev" class="button">前一张button>
                   <button type="button" value="后一张"  data-control="next" class="button">后一张button>
         div>
         <div class="preload">div>

<script type="text/javascript" src="js/preload.js">script>
body>
html>


$(document).ready(function(){

         var imgs = ["img/pexels-photo-297814.jpeg",
                                     "img/pexels-photo-465445.jpeg",
                                     "img/pexels-photo-619948.jpeg",
                                     "img/pexels-photo-620336.jpeg",
                                     "img/pexels-photo-885746.jpeg",
                                     "img/pexels-photo-886109.jpeg",
                                     "img/pexels-photo-888994.jpeg"];

         var  index = 0,
         len =imgs.length;

        $(".button").on("click",function(){

                 if($(this).data(control)=== "prev"){
                           index = Math.max(0,--index);
                 }else{
                           index = Math.min(len-1,++index);
                 }

                 $("#img").attr("src",imgs[index]);

        });

});

 

 

 

 

这个案例我是要实现通过点击按钮实现图片的展示过程。显然,我在

盒子的标签里面只是放了一张图片(避免页面打开是什么也没有),并没有把全部可以展示的图片都放在盒子里面。因为这样势必会加大web浏览器解析html页面的压力。

我把这些图片的所有搜索路径的放在了js代码中,并通过修改src属性的方法来更新标签,其中我还用到了html的data属性来自定义点击按钮的类型,并通过在js中获取这个data值来确定图片路径的更改。

这样的实现,就比较有利于减轻html页面解析过程中对浏览器解析器的压力。

 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/1962.html

相关文章

  • 【译】使用Mobify.js让你图片自动响应化

    摘要:的图像提供了该方案。使用的图像和捕获技术相结合我们能通过一个标签实现图像的自动响应化。调整元素当然不同的浏览器自动化调整图片大小是可行的而自动化的确实不可能。 在Web开发社区,响应式图片已经成为最大的挫败之一。原因也很简单:页面平均大小产品能从去年的1MB达到了惊人的1.5MB。其中图片大小的增长比例就占了页面大小增长的60%或更多,并且这个比例还在不断攀升。 绝大多数的页面是可以...

    lncwwn 评论0 收藏0
  • 前端性能优化

    摘要:端优谈谈关于前端的缓存的问题我们都知道对页面进行缓存能够有利于减少请求发送,从而达到对页面的优化。而作为一名有追求的前端,势必要力所能及地优化我们前端页面的性能。这种方式主要解决了浅谈前端中的过早优化问题过早优化是万恶之源。 优化向:单页应用多路由预渲染指南 Ajax 技术的出现,让我们的 Web 应用能够在不刷新的状态下显示不同页面的内容,这就是单页应用。在一个单页应用中,往往只有一...

    Dean 评论0 收藏0
  • Weex——关于移动端动态性思考、实现和未来

    摘要:什么是动态性今天在移动端,尤其是像手机淘宝这样的中,动态性问题逐渐成为一个比较棘手的问题。在云端实现了天猫前端运营发布系统斑马的对接,在前端开发实现了主会场的界面模块和业务逻辑处理,同时在客户端上对接了手机天猫手机淘宝。 什么是动态性 今天在移动端,尤其是像手机淘宝这样的 App 中,动态性问题逐渐成为一个比较棘手的问题。所谓动态性,就是把移动应用本身的灵活性、迭代更新的周期和成本优化...

    ACb0y 评论0 收藏0
  • Weex——关于移动端动态性思考、实现和未来

    摘要:什么是动态性今天在移动端,尤其是像手机淘宝这样的中,动态性问题逐渐成为一个比较棘手的问题。在云端实现了天猫前端运营发布系统斑马的对接,在前端开发实现了主会场的界面模块和业务逻辑处理,同时在客户端上对接了手机天猫手机淘宝。 什么是动态性 今天在移动端,尤其是像手机淘宝这样的 App 中,动态性问题逐渐成为一个比较棘手的问题。所谓动态性,就是把移动应用本身的灵活性、迭代更新的周期和成本优化...

    heartFollower 评论0 收藏0
  • 前端性能优化(针对内容方面)

    摘要:避免重定向重定向用和状态码,下面是一个有状态码的头浏览器会自动跳转到域指明的。除此之外还有别的跳转方式元标签和,但如果你必须得做重定向,最好用标准的状态码,主要是为了让返回按钮能正常使用。要提高性能,优化这些响应至关重要。 性能优化 减少Http请求: 1.尽量减少HTTP请求数   80%的终端用户响应时间都花在了前端上,其中大部分时间都在下载页面上的各种组件:图片,样式表,脚本,...

    coordinate35 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<