zoukankan      html  css  js  c++  java
  • 工作总结2

    1.在移动端中,直接使用focus是的input获取焦点会有问题,建议使用autofocus+click事件,另外iOS中异步事件中使用click或者focus完全无效
    2.防止页面被键盘挤压,提前将页面高度设死
    3.闭包三种解决方案

    //利用setTimeout的第三个参数
    for(var i = 0; i <= 5; i++){
        setTimeout(function timer(j){
            console.log(j)
        }, 1000, i)
    }
    //普通闭包
    for(var i = 0; i <= 5; i++){
        (function(j){
            setTimeout(function timer(){
                console.log(j)
            }, 1000)
        }(i))
    }
    //利用let定义变量
    for(let i = 0; i <= 5; i++){
        setTimeout(function timer(){
            console.log(i)
        }, 1000)
    }
    

    4.操作元素的class
    (1)可以直接使用dom.className来获取该元素的class,得到的是个字符串,你可以对这个字符串进行拼接。

    <div class="a b"></div>
    div.className => "a b"
    div.className+=" c"//添加类c,注意这里开头有空格,不然会变成<div class="a bc"></div>
    

    (2)使用classList属性
    image.png
    如图,dom.classList得到的是个DOMTokenList对象,类似数组但不是数组。他有如下方法
    image.png
    具有对象的方法(keys),并且是个可迭代对象(forEach, entries)。
    添加add,删除remove,查找contains,等等
    5.base的使用
    base64弊端
    根据 base64 的编码原理,大小比原文件大小大 1/3尽管图片请求少了,但是 HTML 文件本身尺寸会变大,会影响首屏加载,所以要权衡代码看起来会有点丑,大量编码字符(当然也可以通过构建工具动态插入)base64 无法缓存,要缓存只能缓存包含 base64 的文件,比如 HTML 或者 CSS,这相比直接缓存图片要弱很多,一般 HTM 会改动频繁,所以等同于得不到缓存效益
    优势
    减少 HTTP 请求,适合小尺寸的图片。
    6.判断一个函数是否为async函数
    Object.prototype.toString.call(fn);如果输出"[object AsyncFunction]"那就是async函数,否则是普通函数
    7.关于setTimeout异步理解
    setTimeout是把要执行的内容延迟执行,js是单线程,所以它在执行的过程中,如果有异步操作那么就会把这个操作放到一个事件队列中,不会去等待,而它自己就不断的进行事件循环,等到异步完成了,就会执行异步中的内容,当然到底是不是在下一次eventloop中就不好说了,但是一般来说js执行都很快的。在node中setTimeout设置时间为0,其实内部回设置为1。

  • 相关阅读:
    优化-IO
    优化-cpu
    优化-内存
    系统优化
    snort -- 入侵检测系统
    tripwire--入侵检测系统
    sudo
    selinux
    pptpd
    C++ 内联函数
  • 原文地址:https://www.cnblogs.com/Upton/p/7832561.html
Copyright © 2011-2022 走看看