canvas代替imgage,可以有效的提高大图片加载的速度!

//加载zepto插件
<script>
     //定义图片的数量
     var total = 17;
     //获取屏幕的宽度
     var zWin = $(window);
     //定义渲染图片的方法
     var render = function(){
          //图片的间距
          var padding = 2;
          //图片存放位置的宽度
          var winWidth = zWin.width();
          //计算图片的宽度,以一行排列4张图为例,共有3个padding,取它的整数
          var picWidth = Math.floor(winWidth - padding * 3)/4);
          //定义图片的节点
          var tmpl = ‘‘;
          //循环获取这些图片,i=1从显示第一张图起
          for(var i = 1; i < total; i++){
               //不是所有图片都有padding-top,因此要重新定义padding
               var p = padding;
               //图片的src
               var imgSrc = ‘img/‘ + i + ‘.jpg‘;
               //判断是不是第一张图片,第一张图片是没有padding-top
               if(i%4 == 1){
                   //如果是第一张
                    p = 0;
               }
               //图片的宽高都设为一样,并将图片地址通过canvas画出来
               tmpl += ‘<li style="width:"‘ + picWidth + ‘px;height:‘ + picWidth + ‘px;padding-top:‘
                         + padding + ‘px"><canvas id = "cvs_" + i + ‘"></canvas></li>"‘;

               //首先要,new一个图像的对象,用于存储图片信息
               var imageObj = new Image();
               //为这个对象指定唯一的标识
               imageObj.index = i;
               //加载这个对象
               imageObj.onload = function(){
                    //定义canvas的绘图环境,并指定canvas的id为唯一标识,一张图片一个ID
                    var cvs = $(‘#cvs_‘ + this.index[0].getContext(‘2d‘));
                    //定义这个canvas的宽高
                    cvs.width = this.width;
                    cvs.height = this.height;
                    //调用canvas的绘图方法,this为当前图像,后面两个0,代表canvas的偏移量:X,Y,可以手动调整
                    cvs.drawImage(this,0,0);
               }
               //给这个图像对象添加地址引用
               imageObj.src = imgSrc;
          }
     }
</script>
时间: 2024-11-06 22:32:19

canvas代替imgage,可以有效的提高大图片加载的速度!的相关文章

Android自助餐之大图片加载

Android自助餐之大图片加载 原理 使用BitmapFactory.decodeStreeam()方法,该方法会调用native层代码来创建bitmap(两个重载都会调用) 使用带BitmapFactory.Options参数的方法,改参数可指定生成bitmap的大小 思路 根据View尺寸或Window尺寸来确定bitmap的尺寸 将确定好的尺寸放入BitmapFactory.Options 调用BitmapFactory.decodeStreeam()生成bitmap 步骤 根据图片路径

把大图片加载进内存

把图片加载进内存,要对图片进行缩放,否则内存溢出 代码: 1 package com.example.loadimage; 2 3 import android.os.Bundle; 4 import android.app.Activity; 5 import android.graphics.Bitmap; 6 import android.graphics.BitmapFactory; 7 import android.graphics.BitmapFactory.Options; 8 i

Android 大图片加载 避免OOM

文章来自郭大神:======= 转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9316683 本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工,英文好的朋友也可以直接去读原文. http://developer.android.com/training/displaying-bitmaps/index.html 高效加载大图片 我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状.

Android BitmapFactory.Options 解决大图片加载OOM问题

当我们在Android使用bitmap加载图片过程中,它会将整张图片所有像素都存在内存中,由于Android对图片内存使用的限制,很容易出现OOM(Out of Memory)问题. 为了避免此类问题我们可以采用BitmapFactory.Options或是使用第三方的图片加载库.如Fresco.Picasso等. BitmapFactory.Options 读取图片尺寸.类型 如文档所示: 如果BitmapFactory.Options中inJustDecodeBounds 字段设置为true

[Aaronyang] 写给自己的WPF4.5 笔记6[三巴掌-大数据加载与WPF4.5 验证体系详解 2/3]

我要做回自己--Aaronyang的博客(www.ayjs.net) 博客摘要: Virtualizing虚拟化DEMO 和 大数据加载的思路及相关知识 WPF数据提供者的使用ObjectDataProvider 和 XmlDataProvider WPF验证 第一:使用自带的属性SET抛出异常,前台捕捉到异常,描红 第二:我们可以自定义验证规则,替代刚开始的异常捕捉验证 第三:我们可以使用INotifyDataErrorInfo方式,增加异常,并实现了验证通知和还原非法值 第四:我们使用了Er

提高网站页面加载速度的方法

我们在访问一些网站时,总是感觉页面加载的速度不够快,这是什么原因导致的呢?作为网站的开发者又能做哪些优化,来提高页面的加载速度呢? 工具/原料 网页开发工具 方法/步骤 1 优化图像.图像能吸引访客的注意,但是每一张图片都需要从服务器下载到访客的电脑中,这无疑增加了页面的加载时间.因此,必须优化图像.优化方法包括适当减小图片尺寸,降低图片的颜色深度. 2 去掉不必要的插件.一些免费的插件能够增强网页的功能,但是如果添加了过多的插件,就会增加服务器的负担和页面加载时间.在构建页面时,去掉不必要的插

DevExpress ChartControl大数据加载时有哪些性能优化方法

DevExpress ChartControl加载大数据量数据时的性能优化方法有哪些? 关于图表优化,可从以下几个方面解决: 1.关闭不需要的可视化的元素(如LineMarkers, Labels等): Series.View.LineMarkerOptions.Visible =false. 2. 关闭图表的滚动与缩放功能,手动调整范围,这样将大大减少所需计算的个数. 3. 将 ChartControl.RefreshDataOnRepaint属性设为false 4. 将 ChartContr

asp.net中TreeView的大数据加载速度优化

由于数据量太大,加载树时间很长,所以进行了优化 前台 .aspx <asp:Panel ID="Panel2" runat="server" Height="600px" ScrollBars="Auto"> <asp:TreeView ID="TreeView1" runat="server" ForeColor="Black" OnTreeNod

touchweb手机网站图片加载方法(canvas加载和延迟加载)

一.canvas图片加载 关于canvas加载,我的方法是,将文章中所有用到图片的地方,都用canvas代替,给canvas一个data-src,里面存放img的路径,通过canvas方法渲染图片.因为图片渲染需要时间,一般会给canvas一个背景,背景可以用gif图片.图片渲染好了之后把背景去掉. 我的canvas代码如下: canvasload: function () { //canvas加载图片 var imglength = $("#您的id").find("can