日期:2014-05-17  浏览次数:20594 次

关于网页上加载数据量比较大的情况下的一个问题
大家好,
我目前的任务是要在浏览器上操作多幅图像的像素数据。现假设我在后台有50幅图的像素数据,512*512,我想把50副图的像素数据下载到本地后通过js对图像进行直接操作,目前我将像素数据组成字符串通过json返回到浏览器了,方法比较笨,因为是新手,请见谅。一个像素的值大概是4位的,中间用“,”隔开。那相当于一个像素有5个字节,那总共是512*512*50*5
=62M左右。 显然是没法满足要求的。

我想知道有什么方法可以尽可能快的下载50副图的像素数据吗?图像数据该以什么样的形式来传递呢?

还有我想知道关于网页图像加载的内部机制是什么,是浏览器从服务器端获得图像数据(比如BMP)后,然后就跟应用程序一样在浏览器上某个位置画BMP像素吗?传过来的是完整的BMP图像数据吗?

谢谢

------解决方案--------------------
楼主去看看慵懒加载。先加载图像以外的数据,用户拖动滚动条,再加载需要的图像。
------解决方案--------------------
1、JS无法控制用户本地资源,这是安全机制,要是JS都能控制用户电脑上的资源,那还得了?
2、只要图像是从服务器端传递到客户端浏览器的,第一次内容肯定都是网络传输,没有什么办法飞快的传递,这依赖服务器的网速和客户端网速。从体验来讲,一般是加载一幅图展示一副,不需要全部加载完再展示。了解下瀑布流。
3、图像从服务器下载下来后,到你本地,浏览器根据html标签标准负责展示。
------解决方案--------------------
图片就是一个 URL 链接,也可以用 Base64编码的图像数据,但是一般情况下用链接就可以了。
这么多的图片,一次性加载会需要很久,会让浏览器界面显示忙的状态也不好,所以用动态加载,需要哪一个图片的时候就加载哪一个,如修改图片的<img src="xx">的src就可以加载了。