• 每日思考(2020/01/14)


    题目概览

    • 网页上的验证码是为了解决什么问题?
    • 对图片格式的了解及使用场景
    • 写一个方法判断字符串是否为回文字符串

    题目解答

    网页上的验证码是为了解决什么问题?

    • 目的
      • 防止机器行为,确定是人为操作,比如登陆、发帖等
      • 保护服务器,比如12306买票的时候,各种抢购的时候
    • 类型
      • 图形验证码
      • 字符验证码 文字+混淆 如早期的7456这种结果的验证码
      • 复杂字符验证码 复杂文字+混淆 如加入中文等本土化的增加识别难度
      • 计算验证码 数字+运算符+混淆 如1+2=? 需要识别表达式增加识别难度
      • 精确识别 文字+混淆文字 如选出 优贝在线 中的 贝字,或者选出所有的筷子,所有的红绿灯(12306)
      • 滑动拼图验证 图像+滑块+图像凹槽 如常见的滑动拼图,提供商有易盾之类的
      • 拼图验证 图像+打乱 需要用户去拼合完成。teamviewer 和 google
      • 物理验证
      • 手机短信验证码
      • 手机语音验证码

    对图片格式的了解及使用场景

    • GIF
      • 优点:GIF是动态的;支持无损耗压缩和透明度
      • 缺点:详细的图片和写实摄影图像会丢失颜色信息;在大多数情况下,无损耗压缩效果不如 JPEG 格式或 PNG格式;GIF 支持有限的透明度,没有半透明效果或褪色效果
      • 适用场景:主要用于比较小的动态图标
    • PNG
      • 优点:PNG格式图片是无损压缩的图片,能在保证最不失真的情况下尽可能压缩图像文件的大小;图片质量高;色彩表现好;支持透明效果;提供锋利的线条和边缘,所以做出的logo等小图标效果会更好;更好地展示文字、颜色相近的图片。
      • 缺点:占内存大,会导致网页加载速度慢;对于需要高保真的较复杂的图像,PNG虽然能无损压缩,但图片文件较大,不适合应用在Web页面上。
      • 适用场景:主要用于小图标或颜色简单对比强烈的小的背景图。
    • JPG/JPEG
      • 优点:占用内存小,网页加载速度快。
      • 缺点:JPG格式图片是有损压缩的图片,有损压缩会使原始图片数据质量下降,即JPG会在压缩图片时降低品质。
      • 适用场景:由于这种格式图片对色彩表现比较好,所以适用于色彩丰富的图片。主要用于摄影作品或者大的背景图等。不合适文字比较多的图片。
    • SVG
      • 优点:SVG是矢量图形,不受像素影响,在不同平台上都表现良好;可以通过JS控制实现动画效果。
      • 缺点:DOM比正常的图形慢,而且如果其结点多而杂,就更慢;不能与HTML内容集成。
      • 适用场景:主要用于设计模型的展示等。
    • WebP
      • 优点:WebP格式,谷歌(google)开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的2/3,并能节省大量的服务器宽带资源和数据空间。
      • 缺点:相较编码JPEG文件,编码同样质量的WebP文件需要占用更多的计算资源。
      • 适用场景:WebP既支持有损压缩也支持无损压缩。将来可能是JPEG的代替品。

    写一个方法判断字符串是否为回文字符串

    //回文字符串:即字符串从前往后读和从后往前读字符顺序是一致的
    
    function isPalindrome(s) {//方法一
      if (s.length === 1) return true
      const str = s.replace(/[^a-zA-Z0-9]/g, "").toLowerCase()
      const strReverse = str.split('').reverse().join('')
      return str === strReverse
    }
    
    function palindRome(str){//方法二
        var len = str.length;
        var str1 = "";
        for(var i=len-1; i>=0;i--){
            str1+=str[i];
        }
        console.log(str1 == str)
    }
    
  • 相关阅读:
    unexpected inconsistency;run fsck manually esxi断电后虚拟机启动故障
    centos 安装mysql 5.7
    centos 7 卸载mysql
    centos7 在线安装mysql5.6,客户端远程连接mysql
    ubuntu 14.04配置ip和dns
    centos7 上搭建mqtt服务
    windows eclipse IDE打开当前类所在文件路径
    git 在非空文件夹clone新项目
    eclipse中java build path下 allow output folders for source folders 无法勾选,该如何解决 eclipse中java build path下 allow output folders for source folders 无法勾选,
    Eclipse Kepler中配置JadClipse
  • 原文地址:https://www.cnblogs.com/EricZLin/p/12194691.html
Copyright © 2020-2023  润新知