Bom对象&cookie & session &

作者: 小7丁 | 来源:发表于2018-08-02 16:09 被阅读9次

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

  • window.onload事件触发时,页面上所有的DOM,样式表,脚本,图片,flash都已经加载完成了。

  • document.onDOMContentLoaded事件触发时,仅当DOM加载完成,不包括样式表,图片,flash。
    两者触发时机不同,window.onload触发的更晚。

    • 两事件的作用都是:当我们给一些元素绑定函数时,会出现绑定处理函数运行完了,但是元素还没有加载的情况。而window.onload事件和document.onDOMContentLoaded事件就是为了避免这种情况。
    • 保证在元素加载完成之后再处理绑定函数。
      document.onDOMContentLoaded加载机制更加合理。因为大多数客户可以允许图片,flash等的加载。

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

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 如何编码解码?为什么要编码?

  • URL 编码的原则就是使用安全的字符(没有特殊用途或者特殊意义的可打印字符)去表示那些不安全的字符。

    • 首先需要把该字符的 ASCII 的值表示为两个16进制的数字,然后在其前面放置转义字符("%"),置入 URL 中的相应位置。(对于非 ASCII 字符, 需要转换为 UTF-8 字节序, 然后每个字节按照上述方式表示)
  • javaScript提供四个URL的编码/解码方法。

  1. decodeURI()
  2. decodeURIComponent()
  3. encodeURI()
  4. encodeURIComponent()
  • URL只能使用ASCII字符集通过因特网进行发送,也就是说URL中只能包含英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号,所以URL中包含中文的部分必须编码之后使用。

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

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

  • session是一次浏览器和服务器的交互的会话,session是存在服务器的,用于区分会话和不同用户的访问。
  • 用户在输入用户名密码提交给服务端,服务端验证通过后会创建一个session用于记录用户的相关信息,这个 session 可保存在服务器内存中,也可保存在数据库中。
    • 创建session后,会把关联的session_id 通过setCookie 添加到http响应头部中。
    • 浏览器在加载页面时发现响应头部有 set-cookie字段,就把这个cookie 种到浏览器指定域名下。
    • 当下次刷新页面时,发送的请求会带上这条cookie, 服务端在接收到后根据这个session_id来识别用户。

cookie & session 的不同:

  • cookie是存在浏览器的,根据请求的路径自动发送的,服务器端可以对其进行处理
  • session是存在服务器的,用于区分会话和不同用户的访问
    cookie 是存储在浏览器里的一小段「数据」,而session是一种让服务器能识别某个用户的「机制」,session 在实现的过程中需要使用cookie。

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]
            }
        }
    }
})

相关文章

  • Bom对象&cookie & session &

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

  • 网页设计 - 收藏集 - 掘金

    免费且又精致的 HTML/CSS 站点模板 - 前端 - 掘金&amp;amp;amp;amp;amp;l...

  • 焦点领动【功能升级】2020年4月第一周:新增全站AMP功能

    新增全站AMP功能 【AMP简介】AMP:Accelerated Mobile Pages,意思是移动页面加速。A...

  • BOM对象、cookie、session

    1.window.onload 和 document.onDOMContentLoaded 有什么区别? wind...

  • Cookie & Session

    Cookie 为什么要有Cookie?Http协议是一种无状态的协议,服务器无法从网络连接上确定用户身份。所以为了...

  • Session & Cookie

    因为Http协议是无状态的,服务端不知道用户上一次做了什么操作或者请求了什么接口。简单来说就是浏览器发送了两次请求...

  • session & cookie

    cookie 客户端(浏览器)保存信息的技术http协议是无状态的,每次都是基于一个请求一个响应.每次请求和响应都...

  • Cookie & Session

    Cookie HTTP无状态。Cookie记录用户访问状态。存放在客户端。 用户的通行证。 后台的response...

  • Cookie & Session

    阅读原文 cookie.php 为cookie示例session.php 为session示例demo验证cook...

  • Cookie & Session & Local

    Cookie 一、什么是Cookie?1、Cookie 是浏览器访问服务器后,服务器传给浏览器的一段数据2、浏览器...

网友评论

    本文标题:Bom对象&cookie & session &

    本文链接:https://www.haomeiwen.com/subject/brzrvftx.html