zoukankan      html  css  js  c++  java
  • 每日思考(2020/01/18)

    题目概览

    • 用一个div模拟textarea的实现
    • 使用flex实现三栏布局,两边固定,中间自适应
    • 为什么10.toFixed(10)会报错
    • 前端性能优化方案有哪些

    题目解答

    用一个div模拟textarea的实现

    <style>
        .edit {
             300px;
            height: 200px;
            padding: 5px;
            border: solid 1px #ccc;
            resize: both;
            overflow: auto;
        }
    </style>
    <body>
        <div class="edit" contenteditable="true">
            这里是可以编辑的内容,配合容器的 overflow ,多行截断,自定义滚动条,简直好用的不要不要的。
        </div>
    </body>
    

    使用flex实现三栏布局,两边固定,中间自适应

    <div class="container">
      <section class="left red"></section>
      <section class="middle blue"></section>
      <section class="right red"></section>
    </div>
    
    .container {
       100%;
      height: 100%;
      display: flex;
    }
    
    .left,.right {
      flex: 0 0 auto;
       50px;
      height: 100%;
    }
    
    .middle {
      flex: 1 1 auto;
      height: 100%;
    }
    
    .red {
      background-color: red;
    }
    
    .blue {
      background-color: blue;
    }
    

    为什么10.toFixed(10)会报错

    • 原因: . 发生了歧义,它既可以理解为小数点,也可以理解为对方法的调用。因为这个点紧跟于一个数字之后,按照规范,解释器就把它判断为一个小数点

    • 解决:

      (10).toFixed(10)
      10..toFixed(10)
      10 .toFixed(10)
      10.0.toFixed(10)
      

    前端性能优化方案有哪些

    • 客户端优化
      • 减少http请求次数:CSS Sprites, JS、CSS源码压缩、图片大小控制合适;网页Gzip,CDN托管,data缓存 ,图片服务器。
      • 使用CSS雪碧图(CSS Sprites)CSS Sprites一句话:将多个图片合并到一张单独的图片,这样就大大减少了页面中图片的HTTP请求。
      • 减少DOM操作次数,优化javascript性能。
      • 少用全局变量、减少DOM操作、缓存DOM节点查找的结果。减少IO读取操作。
      • 延迟加载 | 延迟渲染
      • 图片预加载,将样式表放在顶部,将脚本放在底部 加上时间戳。
      • 避免在页面的主体布局中使用table,table要等其中的内容完全下载之后才会显示出来,显示比div+css布局慢
    • 服务端优化
      • 尽量减少响应的体积,比如用 gzip 压缩,优化图片字节数,压缩 css 和 js;或加快文件读取速度,优化服务端的缓存策略。
      • 客户端优化 dom、css 和 js 的代码和加载顺序;或进行服务器端渲染,减轻客户端渲染的压力。
      • 优化网络路由,比如增加 CDN 缓存;或增加并发处理能力,比如服务端设置多个域名,客户端使用多个域名同时请求资源,增加并发量
    • 总结:统一的思路就是尽量向前端优化、减少数据库操作、减少磁盘IO。向前端优化指的是,在不影响功能和体验的情况下,能在浏览器执行的不要在服务端执行,能在缓存服务器上直接返回的不要到应用服务器,程序能直接取得的结果不要到外部取得,本机内能取得的数据不要到远程取,内存能取到的不要到磁盘取,缓存中有的不要去数据库查询。减少数据库操作指减少更新次数、缓存结果减少查询次数、将数据库执行的操作尽可能的让你的程序完成(例如join查询),减少磁盘IO指尽量不使用文件系统作为缓存、减少读写文件次数等。程序优化永远要优化慢的部分,换语言是无法“优化”的。从客户端浏览器、渲染机制、缓存、 网络请求、代码压缩合并、图片格式、服务器代理、数据库的查询等等。
  • 相关阅读:
    Java 高阶 —— try/catch
    Java 高阶 —— native 关键字与 JNI
    python库学习笔记——分组计算利器:pandas中的groupby技术
    编程模式(schema) —— 表驱动法(table-driven)
    python中元组tuple
    .Net Framwork类库
    SMB带宽限制
    WindDbug应用
    Python学习笔记
    Python递归遍历目录下所有文件
  • 原文地址:https://www.cnblogs.com/EricZLin/p/12210282.html
Copyright © 2011-2022 走看看