代码改变世界

如何减轻图片服务器的IO,提高页面显示速度,减少客户端Receive

2010-06-08 11:29  gio.zhou  阅读(780)  评论(0编辑  收藏  举报

其实就是将图片转为Base64编码然后显示在页面中,先上Code

 

        protected string A
        {
            get;set;
        }

        private void Page_Load(object sender, System.EventArgs e)
        {
            Image _Image = Image.FromFile(@"C:\banner4.jpg");
            System.IO.MemoryStream _ImageMem = new System.IO.MemoryStream();
            _Image.Save(_ImageMem, ImageFormat.Jpeg);
            byte[] _ImageBytes = _ImageMem.ToArray();
            A = Convert.ToBase64String(_ImageBytes);
        }
    <img src="data:image/jpeg;base64,<%=A%>" />

当然缺点也有很多,不然各大网站可能都这样处理了。

个人觉得缺点以下几个:

  1. 原来图片服务器的负担转到了web服务器,但是web服务器的成本肯定高于图片服务器.
  2. 估计是最大的问题,只是少我没有发现如何解决或者解决的方法也是效率极低的。就是IE下无法正常访问。
  3. 至于用户中receive值来说是一样的.原本是www.a.com和img.a.com中输出100KB,但是现在是都由www.a.com输出100kb。

优点:

  1. 免去图片服务器的成本。

不代表这个方式好。这个方式我觉得肯定不好只是个思路而已。