zoukankan      html  css  js  c++  java
  • JS应用MD5散列计算头像URL

         当前个人档案的头像面临访问量过大的问题,目前的解决方案是把上传和显示头像的功能独立出来成为一个新的站点并把此站点转放到另外一台的Web服务器上,以提高其响应能为。同时,因为原来的对头像的获取是通过aspx加载真实的头像(jpg)然后显示出来的,这样的处理方式在大访问量的情况之下对性能是有影响的,所以现在当独立到新的站点时就取消了这样的功能,把原来头像URL如:http://profile.csdn.net/billok/picture/1.jpg 转换为真实的访问地址"http://avatar.profile.csdn.net/1/c/5/1_billok.jpg"

        其中的“/1/c/5/"是对用户名进行MD5生成的,在asp.net中这个很简单,不过对于一些纯用JS生成的URL就需要使用JS进行MD5运算了。提取JS的MD5,是有现成的类库的,只要引用一下md5.js就可以很方便的使用了,剩下的工作就是对Avatar的URL进行封装一下就可以了。

    /*JS获取用户头像真实URL*/
    var AvatarHost = "avatar.profile.csdn.net";

    function Avatar1(userName) {
        
    return GetAvatarUrl(AvatarHost, userName, 1false);
    }

    function Avatar2(userName) {
        
    return GetAvatarUrl(AvatarHost, userName, 2false);
    }

    function Avatar3(userName) {
        
    return GetAvatarUrl(AvatarHost, userName, 3false);
    }

    function Avatar4(userName) {
        
    return GetAvatarUrl(AvatarHost, userName, 4false);
    }

    function AvatarICO(userName) {
        
    return GetAvatarUrl(AvatarHost, userName, 1true);
    }

    function GetAvatarUrl(userName, type, getIcon) {
        
    return GetAvatarUrl(AvatarHost, userName, type, getIcon);
    }

    function GetAvatarUrl(host, userName, type, getIcon) {
        
    var url = "http://";
        
    //添加域名
        url += host;
        
    //添加MD5计算的路径
        url += MakeAvatarPath(userName);
        
    //计算图片大小
        if (getIcon == true) {
            url 
    += "_";
        }
        
    else {
            url 
    += type + "_";
        }
        
    //添加用户名
        url += userName;
        
    //添加图片类型
        if (getIcon == true) {
            url 
    += ".ico";
        }
        
    else {
            url 
    += ".jpg";
        }

        
    return url;
    }
    function MakeAvatarPath(userName) {
        
    var hash = hex_md5(userName.toLowerCase()); //转成小写,并计算MD5值
        var hashArray = hash.split(""); //把字符串转为字符数组

        
    var x = "/" + hashArray[0+ "/" + hashArray[1+ "/" + hashArray[2+ "/";
        
    return x
    }

    调用过程也很简单,这就不多说了,看一下下面的调用例子:

    Code

  • 相关阅读:
    听闻 kubernetes,快速了解一番
    处理器 趣事 CPU/GPU/TPU/DPU/BPU
    记录
    硬盘
    图 总结 AI
    C# 加密、解密PDF文档(基于Spire.Cloud.SDK for .NET)
    Spire.Cloud 私有化部署教程(二)- Ubuntu 18.04 系统
    Spire.Cloud 私有化部署教程(一)
    C# 将PDF转为Word、Html、XPS、SVG、PCL、PS——基于Spire.Cloud.SDK for .NET
    C# 设置、删除、读取Word文档背景——基于Spire.Cloud.Word
  • 原文地址:https://www.cnblogs.com/chenjunbiao/p/1760198.html
Copyright © 2011-2022 走看看