精华内容
下载资源
问答
  • 2016-10-21 14:36:51

    吐丝,大家都很熟悉的一个词,而且大家也常常在用这个功能。即:

    Toast.makeText(MainActivity.this, "吐丝的内容", Toast.LENGTH_SHORT).show();

    这个功能可以用来提示一些信息给用户,很方便。


    • 但是,吐丝有需要优化的地方。比如当你点击一个弹出吐丝的按钮多次,这时候我们需要的是吐丝的内容只提示用户一次;但是这时候却会弹出吐丝内容很多次,你点击了多少次,就弹出多少次;而这样是用户体验很差的,所以比较好的解决方法就是,在短时间内点击了多次吐丝按钮,也只弹出一次吐丝内容提示用户。

    这时候我们可以将Toast的调用封装成一个接口,写在一个公共类Utils中供我们调用。如下:

    package com.example.toastutil;
    
    import android.content.Context;
    import android.widget.Toast;
    
    public class Utils {
    
        public static Toast toast;
        /**
         * 吐丝的方法,可以避免重复吐丝。当你点击多次按钮的时候,吐丝只出现一次。
         * @param context 上下文对象
         * @param string    吐丝的内容
         */
        public static void showToast(Context context, String string) {
            // TODO Auto-generated method stub
            if(toast == null){
                // 如果Toast对象为空了,那么需要创建一个新的Toast对象
                toast = Toast.makeText(context, string, Toast.LENGTH_LONG);
            }else {
                // 如果toast对象还存在,那么就不再创建新的Toast对象
                toast.setText(string);
            }
            // 最后调用show方法吐丝
            toast.show();
        }
    
    
    
    }
    

    上面的代码都有注释,方便大家理解。有不理解的可以评论联系我。


    调用的时候也比较简单,如下所示:

    Utils.showToast(MainActivity.this, "吐丝测试");

    传入两个参数,一个是上下文对象context,一个是你想要吐丝显示的内容。好了,就到这里,一个小的技巧分享给大家!


    这里给出测试的apk,大家可以下载自己测试一下:

    点我下载Toast用户体验优化apk


    每天进步一点点!加油!

    更多相关内容
  • 电信网上营业厅,用户体验优化方案,内容很详细,包括,情感,浏览,交互体验方面着手,希望能够帮助大家
  • 基于用户体验的飞猪APP旅游平台优化研究.pdf
  • 文字溢出省略和用户体验优化

    千次阅读 多人点赞 2021-10-27 14:51:06
    这是我又一次探究文字溢出相关问题,也是我在用户体验道路上踏出的又一小步。 之前提到“文字溢出”瞬间就能想到 ellipsis。再接触的多了一点会同时想到 display: -webkit-box;(多行溢出)。 你一定欣喜若狂,认为...

    这是我又一次探究文字溢出相关问题,也是我在用户体验道路上踏出的又一小步。

    之前提到“文字溢出”瞬间就能想到 ellipsis。再接触的多了一点会同时想到 display: -webkit-box;(多行溢出)。
    你一定欣喜若狂,认为掌握了“宇宙之玄妙”,拥有了“制胜之法宝”。但是如果你就此而去,你仍会时不时的发出疑问:“为什么我的溢出省略没有生效?”

    先说,目前已知的所有相关问题最终都可以归结为一个点上:行内样式与块级样式
    包括一个很可惜的、似乎还没有文章给出具体说明的一个问题 —— flex

    flex与行内元素

    你可能会疑惑,那是因为你只停留在“用”的阶段。
    事实上,早在某一篇文章中笔者就发表过观点:flex会将元素变为既具有行内某些特点又具有行内块部分特性的样式结构。这一点很关键 —— 可以结合position等属性做出意想不到的效果。
    flex1

    笔者后面写过很多“详解”,但再看下来竟都不如这个当初随手画下的说明更清晰。按图中说明稍加思考或实践一下你也会恍然大悟。

    flex与文字溢出

    在我司的一个项目中有这样一个场景(代码来源于真实场景和研究,已做脱敏):
    商家侧某活动已选商品展示如果只有一个商品后面的文字要限制在一定区域,溢出省略效果 ——
    img1

    但笔者接手初期是这样的:
    img2

    的确,多行展示确实能带给用户比单行展示更多的体验感,但上一个前辈用了这个东西: display: -webkit-box;!webkit前缀!所以在文字极多且非webkit的浏览器中是这样的:
    img3

    当然这种场景几乎是很少见的,所以以至于一直保持这样;又当然可以用伪元素伪造“…”去解决,但是效果太生硬。一般不会直接去使用而是优先考虑其它方案(产品的胜利😏)。

    现在问题来了,这是一个flex布局模型,基础结构如下:

    <!-- 当展示只有一个时 -->
    <div class="cisi__list list-single" v-if="total === 1" @click="xxx">
        <div class="cisi__img">
            <img :src="flist[0].imgHead | formatPicSelf(100)" v-img-error-item-self>
                <!-- 提示图标 -->
                <span class="pie__item-tag" v-if="flist[0].statusError">{{flist[0].statusError}}</span>
        </div>
        <div class="cisi__text-line"><span>{{flist[0].itemName}}</span></div>
    </div>
    

    其主要的css结构如下:

    /** 最外面的父元素规定了大体样式和宽高,然后 **/
    .cisi__list {
        margin-top: 8px;
        height: 64px;
    
        display: flex;
        align-items: center;
        cursor: pointer;
    }
    /** ... **/
    .cisi__text-line {
        flex: auto;
        font-family: PingFangSC-Regular;
        font-size: 14px;
        color: #000000;
        letter-spacing: 0;
        line-height: 22px;
        & span {
        	white-space: nowrap;
        	overflow: hidden;
        	text-overflow: ellipsis;
        }
    }
    

    img4

    溢出省略竟然失效!怎么回事?

    要理解省略效果为什么没出现,需要搞清楚这里的尺寸计算规则 —— 最终尺寸、最大最小尺寸。这里cisi__text-line类名的 div 属于 flex 子项,它的最终尺寸由基础尺寸、弹性增长或收缩、以及最小最大尺寸决定!
    在这个例子中,出现了几个情况:

    1. width 属性和 flex-basis 属性都没有设置,因此基础尺寸就是内容尺寸,内容尺寸是最大内容宽度,也就是 div 里面内容在一行显示的宽度;
    2. flex-shrink 属性值是 1(因为默认值是1),内容超出了,因此弹性收缩是执行了的(flex-grow默认是0不会随内容拉伸,父元素设置了宽度整体的宽度无法超过某个值但 span 元素不受限超出了这时外面的 div 就像失去了对子元素的掌控一样)。

    但理论上讲如果弹性收缩执行了应该是出现省略效果的。那问题只能出现这个对子元素失去掌控的 div 上了:

    1. 因为有关宽度的属性都没有设置,因此最小尺寸就是最小内容宽度。就是这里出了问题:如果 div 里面的 span 元素没有设置white-space: nowrap;,那么最小宽度就是1em,即一个中文字符的宽度(因为每个中文字符都是换行点),弹性收缩可以顺利执行。但是这里设置了white-space属性,此时的 span 元素就像一个不会换行的连续英文单词,于是 div 元素的最小尺寸就变成了 span 元素内容在一行中显示的宽度,和上面的“基本尺寸”一样!

    由于最终尺寸计算时的优先级是最小尺寸 > 弹性收缩 > 基本尺寸,而最小尺寸和基本尺寸是相等的,所以弹性收缩无效,最终尺寸就是内容宽度。而单行溢出省略的效果需要内容宽度大于容器宽度,所以没有显示出来。

    所以要想得到正确的效果,我们可以这么做:
    给子元素设置比文字内容宽度小的一个宽度值,或是给父元素(比如这里 span 上的 div)设置一个非常非常小的最小尺寸,使得弹性模型可以正常收缩(使子元素无论如何大于父元素尺寸)

    .cisi__text-line {
        /**...**/
        min-width: 0;
    
        /**...**/    
    }
    

    或者:

    .cisi__text-line {
        /**...**/
        overflow: hidden;
    
        /**...**/    
    }
    

    但是需要注意:设置 overflow 会影响flex-basis或有position属性的布局!

    不知道你是否注意过控制台查看器中的这个部分:
    right1

    这是上面错误显示时的样子。而在我们做出改变后是这样的:
    right2

    和行内元素有什么关系?

    上面的最终效果是这样的:
    end1

    注意:此时并没有省略号效果的出现,而且只有在overflow下才会出现“溢出隐藏”,设置min-width并没有什么作用!

    这时去掉white-space 属性是这样展示的:
    end2

    看到了吗?span 是行内元素,一般单独修饰文字。行内元素的标志就是“只作用于元素本身”,而块级元素通常会将元素所在区域当做一个整体!
    溢出省略效果是针对一个“区域”来说的,你可以理解为“它实际上并不修改元素本身”。

    所以这里需要将 span 改为 p 元素,就能正确呈现效果了!

    由此引出的体验优化思考

    就像案例开头说的一样,多行显示的效果一定要比单行显示的好,哪怕你有一些花里胡哨的搭配。但这里多行溢出的属性兼容性并不好。
    这是一个抉择,兼容性与一定程度上的用户视觉体验相比。
    你可以选择使用单行省略,或是尽可能地优化“用兼容的属性模拟未兼容属性”的美观程度。或是在源头处 —— 设置时限制活动/商品名称的长度,当然,这个也必然是牺牲了 yi 点点用户体验的。

    在这个项目的列表页,笔者采用了另一种方法:
    list1

    列表项是以行为维度的,通过增加行高去解决文字溢出后看不见的效果 —— 也就是强制换行。flex中应该是默认这样的~
    否则,会出现什么效果呢?这就要和flex本身的“缺陷”挂🪝了…

    and 顺便提一下,你觉得下面的三种实现在它们所在的场景中,哪种更合适呢?
    img-end


    相关链接:

    1. 小Tip:关于单行/多行文本溢出隐藏的一些看法
    2. 三探【文字溢出省略】:纯css实现“任意行数”截断处理(新!)
    3. 一种离谱到极致的页面侧边栏效果探究
    展开全文
  • 一、用户体验设计怎么做?   1、概念证明(设计的构思过程)  根据市场调研和研究设想目标,论证可行的商业模式。需确定三项内容:用户需要的内容、用户需要的功能、用户角色的分类   2、设计探索...

    一、用户体验设计怎么做?
     

    1、概念证明(设计的构思过程)

      根据市场调研和研究设想目标,论证可行的商业模式。需确定三项内容:用户需要的内容、用户需要的功能、用户角色的分类

     

    2、设计探索(设计的规划过程)

      把抽象的商业需求,转化为可视化的可操作性的产品原型。需进行功能结构、界面线框等信息架构的设计,其次进行任务分解、工作流程等的交互类设计,最近进行视觉化的风格设计及视觉规范设计。

     

    3、技术编码(设计的具体落实过程)

      区别于传统UI用户体验设计,互联网用户体验设计需进行编码的设计。编码设计需进行结构层的XHTML代码设计、表现控制层的CSS代码设计、行为类代码设计(前端代码设计)。

     

     二、用户体验设计的交付物?
     

    1、交付物一:设计图

      把用户体验设计交付物中的设计图分为三类,概念图、架构图还有流程图。
     


     

    其中概念图内容包括用户模型和功能模型:

      用户模型需要解决用户做什么?该怎么做的问题?
      用户模型定义产品产品用户应该有的功能,列举可能没有的逻辑关系。用户模型图用MindManage制作。如下图所示:
     


     

      功能模型需要表达功能能满足什么?该怎么满足的问题?功能模型图类似产品的远景规划,使用抽象图形来呈现,可以用Photoshop来制作功能模型。如下图所示:
     


     

      概念图交付物的制作工具有:Paper、Viso、Illustrator、MindManaer、Photoshop、Powerpoint。个人喜欢并常用的工具是后面三个。 
     

    用户体验设计中的概念图内容包括逻辑结构和认知结构:

      逻辑结构需要建立层级逻辑关系,用以介绍某产品的功能及他们之间的相互关系。逻辑架构图用的比较多的工具是用CmapTools来制作。

      认知结构需要建立认知逻辑关系。用以介绍用户通过某产品或者平台上可以获取哪些服务,认知逻辑关系图用的比较多的工具是用Illustrator来制作。 

     

    用户体验设计中的流程图内容包括任务流程和界面流程:

      任务流程需要解决功能点之间的交互,用以介绍用户使用某产品的功能时的处理片段。任务流程图用的比较多的工具是用Viso来制作。

      如下图所示:


     

      界面流程需要解决操作点之间的交互。用以介绍用户使用某产品进行操作完成一些列功能的过程。界面流程图用的比较多的工具是用Viso来制作。如下图所示:
     


     

    2、交付物二:原型
     

      把用户体验设计交付物中的原型分为三类,纸质原型、图形原型还有页面原型。
     


     

      纸质原型的优点是制作速度快,没有技术壁垒,讨论时间少以及传达产品感觉不错。缺点是屏幕的真是感觉比较差,不能评估视觉效果,不能在实际系统中制造模拟数据,不适合用于超过3人以上的原型演示。
     

    纸质原型的制作过程:

    卡片纸质原型:



    卡片纸质原型:


     

      图形原型的优点是效果美观,适合打印和归档,不需要纸张。缺点是存在客户端真实状态问题,制作图形原型所花的时间更多,制作需要相关的专业知识,不方便现场测试新想法,改进执行容易被延误,版本不好控制。
     

    Viso制作的图形原型:


     

    Photoshop制作的图形原型:(Axure也可以制作类似高保真的页面原型效果)
     


     

    Illustrator制作的图形原型:
     


     

    Axure制作的图形原型:
     


     

      页面原型的优点是真实的交互状态,有利于评价屏幕变化,有时间作出改进。缺点是制作页面原型需要更多时间,制作有时候用到前端代码编程知识,不方便现场测试新想法,改进执行容易被延误,版本不好控制。

      低保真的页面原型:(区分链接,但不区分颜色,固化布局,固化模块,固化信息条目,固化信息内容规格)如下图所示:
     


     

      高保真的页面原型:(保证与设计图一致,按照风格指南完成结构表现制作,区分信息颜色)如下图所示:
     


     

      页面原型的制作工具个人认为Axure是比较不错的,它既可以完成页面信息架构、页面布局的表现,还可以完成交互细节的体现,不需要你特别懂前端的代码即可完成,当然你需要有相关的代码思维,否则用着个做交互也不容易上手。

     

    3、交付物三:文档把用户体验设计交付物中的文档分为两类,过程文档还有交付文档。

      过程文档内容包括角色定义和页面列表:

      角色定义需要解决的问题是:有目标用户之后,分别对典型角色进行定义,让他们看起来更真实。角色定义的描述参数有:基本属性、关键差异、简单描述、用户目标、商业目标、相关属性。如下图所示:
     


     

      页面列表需要解决的问题是:适合管理原型页面,并编号存档。描述参数有:名称、编号。如下图所示:
     


     

      交付文档内容包括风格指南(CAPT)、脚本说明(YUI)、接口说明:

      风格指南需要解决的问题是:指导低保真原型进行美化、还有维护原则,包括Xhtml和CSS。如下图所示:

      包含结构、配色、排版、样式表
     


     

      脚本说明需要解决的问题是:指导页面前端行为开发的帮助,包括Script&DOM。如下图所示:包含:框架、模块、调用
     


     

      接口需要解决的问题是:方便第三方进行开发、数据获取和使用功能。包含:通用参数说明、通用元素说明、返回状态说明、详细说明等。三、用户体验敏捷设计?  敏捷设计包含:流程与交互、思维导图Mind Map、 任务分解Task analysis、快速引导DashBoard、工作流程Work Flow、网站地图SiteMap、职能与职责、能力要求打分。 流程与交互:保证关键设计图(图形只是辅助说明,根据产品需求适量减少、合并设计图)。

      多用WEB页面原型(直接完成带交互的HTML页面,减少实施过程)

      从低保真原型开始(越保真的原型需要的技巧越多,或耗费时间越多)思维导图Mind Map:
     


     

    任务分解Task analysis:
     


     

    快速引导DashBoard:
     


     

    工作流程Work Flow:
     


     

    网站地图SiteMap:
     


     

      职能与职责:产品经理(PM):提需求和构思,并且全面统筹和协调。

      产品原型设计师(IA、ID、VD) :反复迭代规划、最终完成低保真原型、并且出具风格指南。需掌握两种以上的设计工具。个人推荐photoshop、axure\MindManage

      产品页面工程师(DEV):通过风格指南和低保原型,完善为高保真原型,协助完成质量评估。掌握两种以上编码工具。html\css\javascript、PHP\JAVA\.NET等 能力要求打分:
     


     

    四、用户体验设计的产品评估?
     

      用户体验设计的产品评估主要指启发式的评估。 需要注意的原则是:

      1、可视性原则
      2、不要脱离现实
      3、用户有自由控制权
      4、一致性原则
      5、有预防用户出错的措施(即容错性)
      6、要在第一时间让用户看到
      7、使用起来灵活且高效
      8、易读性
      9、给用户明确的错误信息,并协助方便恢复工作
      10、必要的帮助与提示文档


    启发式评估–导航部分:


      1、清晰指示当前位置
      2、清晰定义首页链接
      3、网站的所有主要部分都能通过首页访问到
      4、如需要的话,应该有一个站点地图
      5、网站结构清晰,没有不必要的层级
      6、如需要的话,应该有一个易用的搜索功能

     

    启发式评估–功能部分:

      1、所有功能都被清晰的表示出来
      2、所有重要功能在不离开网站的前提下都能够使用
      3、没有不必要的插件
     

    启发式评估–控制部分:

      1、用户可以取消所有操作
      2、在每页,用户都可以清晰找到离开本页标识
      3、所有图片链接和文字连接一样清晰可用
      4、网站的流程符合用户操作流程
      5、支持所有主流浏览器
     

    启发式评估–语言部分:

      1、文案简洁
      2、没有术语
     

    启发式评估–反馈部分:

      1、现在发生了什么,应该一直清晰标示出来
      2、如有有必要,用户反馈能收到反馈邮件
      3、如需要安装插件或特定浏览器,必须告知用户
      4、网站用户可以通过邮件或者提交表单来提交反馈意见
      5、如有有必要,需要提供一个在线帮助
     

    启发式评估–一致性部分:

      1、对任何元素都只有一种固定的叫法
      2、链接与其指向页面的标题要匹配
      3、对链接和已访问链接使用规范色彩
      4、一致使用术语的普遍叫法
     

    启发式评估–防止出错部分:

      1、使用朴素的语言来表达错误信息
      2、错误信息需要给出下一步操作提示
      3、错误信息提供清晰的离开标志
      4、错误信息提供详细的帮助信息
     

    启发式评估–视觉部分:

      1、布局清晰
      2、足够的留白
      3、所有图片都有ALT标记
      4、使用标准的模板

    展开全文
  • 基于用户体验蜂窝模型的MOOC学习APP体验优化研究.pdf
  • 阿里云CDN高级技术专家周哲为我们带来了《海量短视频极速分发》的主题分享,带领我们从视频内容采集、上传、存储和分发的角度介绍整体方案,并且重点讲解短视频加速的注意事项和用户体验优化要点。讲解从三个部分...
    2018深圳云栖大会已经圆满落幕,在飞天技术汇-弹性计算、网络和CDN专场中,阿里云CDN高级技术专家周哲为我们带来了《海量短视频极速分发》的主题分享,带领我们从视频内容采集、上传、存储和分发的角度介绍整体方案,并且重点讲解短视频加速的注意事项和用户体验优化要点。

    讲解从三个部分展开:短视频应用场景,阿里云短视频解决方案,阿里云对短视频用户体验优化的相关优化。

    短视频应用场景

    短视频比图片和文字包含更多的信息,在移动互联网普及的今天,短视频应用场景非常广泛。

    一、 社群分享场景
    用户可以录制视频,进行特效编辑处理,上传到服务器,通过社区的方式分享给好友。
    二、 电商场景
    商家可以快速拍摄、制作商品的短片,把商品的介绍视频发给消费者,这样可以提高购买转化率。
    二、 IM聊天场景
    在交流过程中,通过随拍随传的短视频,用户可以更生动的表达观点,更真实的传递情感
    三、 新媒体场景
    区别于传统、单一的图文展示形态,短视频可以快速收集及发布新闻,一键呈现世界
    四、 体育赛事场景
    集成短视频SDK后,用户可以在现场实时拍摄和剪辑,生成具有传播价值的短视频,通过分享来全网同步赛事 


    阿里云短视频解决方案

    阿里云针对短视频的业务场景,提供了一整套技术解决方案。在主播端,提供了视频上传SDK和短视频SDK,在观众端提供视频播放SDK,在服务器端提供点播服务、OSS存储和CDN加速。
     

    对于开发者来说,短视频解决方案的使用流程是这样的:首先主播端使用短视频SDK对用户的视频进行录制、特效处理和剪辑,然后将视频通过上传SDK上传到服务器端,在服务器端先通过点播服务进行转码以及视频处理,然后把处理好的视频存储到OSS上,做持久化保存。在播放端集成播放器SDK,播放器会向CDN请求资源,CDN如果有缓存会把缓存的数据发给客户端。如果CDN缓存没有数据会去OSS中拉取数据,在返回给客户端,并把数据缓存到CDN上。开发者使用这些技术组件,可以快速的开发短视频业务。
     
    下面,我们逐一介绍解决方案的能力与特点。


    解决方案中的视频SDK,包括短视频、上传和播放三个。短视频SDK包含人脸贴图、高级美颜的功能,在用户录制视频之后先进行本地美颜再进行上传,同时也提供专业滤镜、MV特效和裁剪压缩、添加音乐的功能,使视频剪辑大众化;上传SDK通过快速通道可以把视频传输到服务器端,支持断点续传、后台上传、多文件管理等功能;播放器SDK支持Android、IOS、flash、H5等多个平台、加密播放和安全下载等。

    点播和存储服务,点播服务提供视频管理相关的功能,比如视频转码,窄带高清可以在相同的用户观感体验下,节约30%的带宽;云剪辑功能可以在线对视频进行编辑处理;同时点播服务提供丰富的数据统计,开发者利用阿里云提供的API访问实时数据。

    同时,阿里云也在视频领域开放了AI技术,包括内容审核,降低违规风险;智能封面,对视频结构化处理和算法选取最优视频帧作为视频封面;标签预测,通过AI来识别视频中文字、图像、人物等信息,自动生成视频标签等。
    基于短视频业务产生的海量数据,阿里云也提供了高可靠、强安全、低成本的存储服务。


    为了应对短视频大规模的业务需求,阿里云CDN建设了大量的基础设施。

    首先,阿里云CDN拥有全球1200多个节点,分布在全球各个国家和地区,贴近用户部署,使用户更快速的访问视频内容,使视频体验更好。同时,为了面对业务的突发流量,阿里云提供了超过80TB的带宽储备,为持续增长的业务保驾护航。并且,单节点缓存容量超过1PB,通过提供更大的缓存空间,来提升用户访问速度。

     
    介绍完了解决方案之后,周哲老师又为大家介绍了阿里云在短视频领域的一些优化技术。


    短视频用户体验的关键指标

    短视频用户体验的关键指标有首屏时间、播放卡顿和播放错误。

    首屏时间是指在视频稳定播放期间,从用户点击播放到视频开始播放之间的时间差。首屏时间越长,会导致用户提前结束播放。
    播放卡顿是指在播放过程中的不流畅情况,会严重影响用户体验。
    播放错误是指用户播放视频时没有成功播放,或出现异常导致提前中断。

    用户体验优化剖析

    为了解决这些问题,我们对整个架构进行剖析。

    首先,终端用户使用阿里云提供的视频SDK来请求调度服务器,调度服务器返回对应的节点IP,然后播放器通过CDN的节点IP来请求资源,CDN的边缘节点如果有缓存的话可以从本地发给播放器,如果没有缓存就去二级节点进行访问,二级节点没有缓存会去OSS或者用户源站拉取数据。



    阿里云CDN有一级节点、二级节点的缓存,二级节点的作用是:
    第一,做资源收敛,避免相同请求同时回源,减少源站压力
    第二,离边缘节点接近,在边缘节点没命中的时候,能够更快的从二级节点获取到数据
    第三,提供更大的存储空间,提高命中。

    同时,阿里云对于整个播放过程,进行一些用户体验相关的数据打点,通过这些数据来进行分析,得到了一些优化点。

    第一就是播放器,播放器是否优化决定了终端用户的观看质量。首先,我们对播放器SDK做了相关优化,比如,通过减少首次缓冲时间,可以设置在受到视频第一个P帧就开始解码播放;提供动态缓存大小,当出现网络抖动的时候,可以动态增加缓存大小,对数据进行预加载,通过这种方式来降低卡顿率;针对播放错误,播放器SDK实现了网络重试机制,来提供播放成功率。

    第二个优化是针对调度系统,用户在访问边缘节点的时候,访问调度服务器,调度服务器返回的IP地址是不是最优的网络链路,这个很大程度上影响用户对于视频的下载速度。阿里云自研了智能调度系统,可以选择用户到边缘节点的最优链路,来反馈给客户端。

    第三是阿里云提供非常多的网络节点覆盖,让边缘节点距离用户更近,来提升用户访问速度。

    第四个优化点是在用户向CDN服务器获取数据时,当出现网络抖动的时候,会有下载速度降低情况产生,阿里云CDN针对TCP协议栈进行优化,通过更高效的协议栈算法来提升下载速度。


    第五个优化点是开发者可以使用阿里云提供的窄带高清功能,来降低播放视频的带宽。


    第六是用户在访问边缘节点的时候,如果请求在边缘节点MISS会直接回源,应时间变慢,而如果边缘节点命中,用户的下载的速度就和边缘节点缓存服务器的性能具有强关联性了,阿里云针对缓存服务器的性能做了很多优化,通过加大边缘服务器的空间和智能优化,来提升访问速率。

    第七,阿里云也支持全链路监控,来提早发现问题,针对性优化,确保稳定服务


    智能调度系统优化

    这里详细介绍一下智能调度的优化,针对调度系统,阿里云做了五个方面的优化,第一个是精准的IP数据库会持续更新,基于第三方IP库数据、whois平台和淘宝手机用户在访问数据时的一些经纬度信息,会对IP库进行主动探测,基于这些维度的数据,进行计算和生成。IP库数据的准确性会对调度系统提供数据支撑。

    第二个是提供HTTPDNS服务,用户通过localdns请求调度服务器,会遇到第一个问题是:localdns和用户ip位置有不匹配问题,会出现基于localdns调度时,调度系统看到的客户端ip和用户真实ip不一致,导致调度不准确
    第二个问题是:用户查询dns服务器时,在查询过程中会出现dns结果被串改的情况。通过httpdns服务,可以解决由于localdns和ip地址不匹配问题,同时也可以做到dns结果防串改,使调度更精准。播放器基于httpdns对dns查询做预加载,并对结果做缓存,减少dns查询查询带来的首屏时间慢。

    第三点是基于用户体验的自动化调度,会基于用户的客户端IP以及用户到每个节点的网络情况、当前各个节点的状态,来进行计算,通过一些机器学习的方式,来预测用户到哪个节点的网络链路为最优。这样就确保给用户IP地址返回最优的网络链路。

    第四个是大数据分析,选择最优节点。通过当前节点覆盖情况和用户访问流量趋势,进行数据预测,去选择在哪里建点,并且去计算这些节点覆盖哪些用户的网络质量是最优的,为调度系统提供数据支撑。

    最后一点是基于内容调度,通过302做内容粒度的调度,把相同URL调度到同一台机器上,提高命中率。


    缓存性能优化

    阿里云CDN针对缓存系统也做了很多优化。
    通过自研的缓存系统,开发基于裸盘的缓存系统。使用内存、SSD、SATA三级缓存架构,把最热的资源存储到内存中,次热的资源存储在SSD中,冷的资源存储在SATA中,并且通过热点迁移的方式,把SATA中热的资源迁移到内存和SSD中,再通过淘汰算法,把内存和SSD中的冷的资源淘汰到SATA 盘中。通过这种方式,提供内存和SSD的命中率,降低SATA盘的IO读写情况,来存储更多的冷资源,提高边缘节点利用率。同时,自研的文件系统对IO操作做了很多优化,比如说合并IP对齐写入功能,避免内存碎片和磁盘碎片带来的IO性能严重下降。对大文件进行切片存储,分片存储到不同磁盘中,避免因单个视频文件过热导致磁盘性能下降。
    通过以上的优化措施,缓存的平均命中率在95%以上,首字节时间低于10ms。
     


    基于用户体验的TCP协议栈优化

    第一个优化点是基于时间序的丢包发现机制,主要是在TCP协议栈里去分析TCP发包的时间序列,然后能够识别出哪些包丢掉了,快速发现丢包和快速重传。
    第二个优化点是主动丢包发现机制,是指我们在发现包的时候去主动探测,避免通过超时来发现丢包,减少丢包发现的时间,提高进行重传
    第三个是自适应的初始化窗口,针对不同业务场景使用不同初始化窗口大小。
    第四个是更激进的拥塞避免算法,针对网络不好的情况,在协议栈中识别状态,使用更激进的发包策略,解决下载速度慢的问题。
    第五个优化点是使用更小的链接超时时间,来更早的发现丢包。


    基于以上的优化,我们使用第三方检测平台,对某短视频业务1.2M文件,和其他CDN厂商做性能对比测试,相同文件大小从内容下载时间上看,使用阿里云CDN有2%-6%的性能提升。其余数据也表现优异。
     

    欢迎大家来使用阿里云点播服务、CDN和OSS存储,来搭建短视频应用。
    展开全文
  • ACE客户体验优化白皮书-优化独立站用户体验及提高转化率.pdf
  • 在实际的网站项目建设过程中,用户体验度的设计是非常重要的。一个网站无论你后台系统如何健壮、如何高可用、可扩展等,没有一个良好的页面UI设计也是很难吸引到用户的。  因此,当前的互联网Time是一个“靠脸和脑...
  • webApp用户体验优化——quickClick

    千次阅读 2015-11-27 15:42:00
    优化的手段用了很多,图片压缩、cdn加速、ajax操作缓存、客户端数据缓存、弹性滑动等,一系列优化工作完成后,webApp的加载速度着实提高了不少,从原先的首屏1.75s到现在的300ms左右,还有稳定性和用户体验也还算...
  • 摘要作为人与虚拟世界之间的...在本文中,我们将重点探讨 VR 游戏的性能和用户体验优化,介绍我们在《Code51》这款VR电竞游戏中使用的缓解晕动症技术,延长用户的游玩时间,还将介绍《Code51》中的性能优化和差异...
  • 体验购后效果。 还有来自麦肯锡公司的经过改进的模型,它强调的是客户的忠实度并非终点。而是客户在下一个购买点之前回到考虑阶段这一循环过程的起点。 什么是用户行为轨迹图? 用户行为...
  • 摘要抖音 App 每天收到大量的用户反馈,通过 NLP 智能反馈打标模型赋能了反馈数据场景化标签的构建,实现了面向业务视角的体验指标聚合。词聚类算法实时提炼每日反馈热点,快速聚焦问题发现。...
  • 消费者对食品健康认知、餐饮消费体验将越来越高,作为发展时间较长又坚如磐石的刚需市场,餐饮市场一直是炙手可热的一块大蛋糕。在本次消费升级中,针对我国日益增长的消费水平、注重食品健康和感官体验的发展趋势,...
  • 体验优化

    万次阅读 2020-06-03 15:09:11
    这个属性很多时候被忽略了,其实做好了可以很大改善用户体验 添加输入模式: numeric 数字键盘: number tel、email、decimal、url、search和none 等等 Pattern 可接收一个正则,以期得到正确的输入 ...
  • 用户体验。 如果是通过搜索,进入到一篇内容, 搜索关键词需要高亮。 比如,搜索“程序员”出现若干内容链接,打开链接的页面,搜索词“程序员”应该高亮显示。3.修复bug。 生成PDF格式的“小雷文集”时,文件...
  • 近年来“用户体验”被越来越多的提及和讨论,情感化设计,体验式设计,交互设计,UI,UE,UX这些跟用户体验相关的词汇如今也成为了我们谈论产品时的日常用语。确实,产品、用户体验与我们的生活息息相关,也在影响着...
  • 淘宝 Android 端图片体验优化实践

    千次阅读 2022-01-25 00:30:00
    分场景优化 基于以上提出的几类比较明显的限制根因,我们为图片上屏的场景分别制定了优化方案,并通过解决图片加载长尾问题来提升用户体验。 ▐ 统一存储空窗优化 针对磁盘缓存读取阻塞问题,图片库增加存储读取...
  • 用户体验衡量指标分析

    千次阅读 2019-08-23 16:59:59
    本篇主要在分享一些使用体验横标指标上的一些迷思,与介绍工作中常用的一些指标,至于如何透过这些指标帮助UX Designer 在工作中提升重要性,来自证UX 工作能带来的价值部分,可以看一下Nathan 以前写过的一篇古早文...
  • 小程序性能和体验优化方法

    千次阅读 2019-04-29 14:43:41
    直接上图 小程序应避免出现任何 JavaScript 异常 出现 JavaScript 异常可能导致小程序的交互无法进行下去,...请求的耗时太长会让用户一直等待甚至离开,应当优化好服务器处理时间、减小回包大小,让请求快速响...
  • 用户体验

    千次阅读 2017-10-26 16:12:42
    因此,要有一个详细的背景调查,分析目标受众的人属性,分析他们的需要和行业特征,这样才能有的放矢,实现网站用户体验优化的目的。  网站用户体验可分为以下五大类:  1、感官体验:呈现给用户视听上的...
  • 本文主要针对爱奇艺知识播放体验优化方案的实现进行分享。 01 播放场景扩展 为了能够给用户提供更丰富内容和连贯的观看体验,爱奇艺知识也在常规的视频播放场景以外扩展了音频、视频条、音频条、吸顶条、控制台等...
  • 移动app用户体验与性能优化

    千次阅读 2016-03-03 20:51:05
    用户体验与性能优化:  1:内存优化:(包括图片,数据缓存优化,资源垃圾回收优化) 2:界面细节优化与app界面交互流程优化。 3:电量优化(长监听,广播,gps等方面)。 4:网络优化(http接口优化,数据的...
  • 前端性能分析的实际例子:针对Web前端性能进行监控与分析,量化前端用户体验指标,采集网页JS错误及网络请求错误,快速定位Web前端的性能问题,辅助进行Web前端性能优化

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 290,183
精华内容 116,073
关键字:

用户体验优化

友情链接: stm32增量式控制.rar