让前端飞Web 前端开发

Bom对象&cookie & session &

2018-08-02  本文已影响9人  小7丁

一、window.onload 和 document.onDOMContentLoaded 有什么区别?

二、如何获取图片真实的宽高?

function $(selector) {
  return document.querySelector(selector);
}
$('img').onload = function (){
  console.log(this.width)
  console.log(this.height)
}

三、如何获取元素的真实宽高?

function $(selector) {
  return document.querySelector(selector);
}
console.log(window.getComputedStyle($('.box')).width);

console.log(window.getComputedStyle($('.box')).height);

四、URL 如何编码解码?为什么要编码?

  1. decodeURI()
  2. decodeURIComponent()
  3. encodeURI()
  4. encodeURIComponent()

五、补全如下函数,判断用户的浏览器类型

function isAndroid(){
    return /Android/.test(navigator.userAgent)
}
function isIphone(){
    return /Iphone/.test(navigator.userAgent)
}
function isIpad(){
    return /Ipad/.test(navigator.userAgent)
}
function isIOS(){
    return /(Iphone)|(Ipad)/.test(navigator.userAgent)
}

六、cookie & session &localStorage 分别是什么?

cookie

  1. Cookie 是浏览器访问服务器后,服务器传给浏览器的一段数据。用来记录某些当页面关闭或者刷新后仍然需要记录的信息。

  2. 浏览器需要保存这段数据,不得轻易删除。cookie可以使用 js 在浏览器直接设置(用于记录不敏感信息,如用户名), 也可以在服务端通使用 HTTP 协议规定的 set-cookie 来让浏览器种下cookie,这是最常见的做法

  3. 此后每次浏览器访问该服务器,都必须带上这段数据。所以如果 cookie 太多太大对传输效率会有影响。

session

cookie & session 的不同:

localStorage

  1. localStorage HTML5本地存储web storage特性的API之一,用于将大量数据(最大5M)保存在浏览器中,保存后数据永远存在不会失效过期,除非用 js手动清除。
  2. 不参与网络传输。
  3. 一般用于性能优化,可以保存图片、js、css、html 模板、大量数据。

六、使用 localStorage封装一个 Storage 对象,达到如下效果:

Storage.set('name', '谷') 
Storage.set('age', 2, 30) ;  //设置 name 字段存储的值为'谷'
Storage.set('teachers', ['ruoyu', 'fangfang', 'tom'],  60)

Storage.get('name')   // ‘谷’
Storage.get('age')     //  如果不超过30秒,返回数字类型的2;如果超过30秒,返回 undefined,并且 localStorage 里清除 age 字段
Storage.get('teachers')  //如果不超过60秒,返回数组; 如果超过60秒,返回undefined
var Storage = (function(){
    return {
        set: function(key,value,expireSeconds){
            localStorage[key] = JSON.stringify({
                value: value,
                expired: expireSeconds===undefined?undefined:Data.now() + 1000*expireSeconds
            })
        },
        get: function(key){
            if(localStorage[key] === undefined){
                return
            }
            var o = JSON.parse(localStorage[key])
            if(o.expired === undefined || Date.now() < o.expired){
                return o.value
            }else{
                delete locationStorage[key]
            }
        }
    }
})
上一篇 下一篇

猜你喜欢

热点阅读