每日思考(2019/12/19)

题目概览

  • 常见的浏览器内核都有哪些?并介绍下你对内核的理解
  • 说说你对css盒子模型的理解
  • 简要描述下JS有哪些内置的对象
  • Web实时消息推送技术有哪些方式

题目解答

常见的浏览器内核都有哪些?并介绍下你对内核的理解

  • 概念:内核主要分为渲染引擎和 JS 引擎。前者负责页面的渲染,后者负责执行解析 JavaScript。
    之后,由于 JS 引擎越来越独立,现在所说的浏览器内核大都指渲染引擎
  • Trident: 由微软开发,即熟知的 IE 内核
  • Gecko: 使用 C++ 开发的渲染引擎,包括了 SpiderMonkey 即熟悉的 FireFox
  • Presto: Opera 使用的内核
  • Webkit: 前端使用最多的 Chrome 和 Safari 使用的内核

说说你对css盒子模型的理解

  • css盒模型由两个盒子组成,外在的控制是否换行的盒子,以及内在的控制元素内容的盒子。比如:display: inline-block, 则它的外在的盒子就是inline也就是不占据一行,而block则表示内部的元素具有块状特性。所以,display: inline其实就是display: inline-inline的缩写,display: block就是display: block-block的缩写。
  • 每一个内在的盒子有: width/height, padding, border, margin这几个控制盒子大小的属性。其中 width/height控制元素内容大小,padding则控制元素内容到border线内侧距离,border则是元素外围边框大小,而margin则是控制与其他元素的间距,它的背景透明。
  • 对于早期,计算一个元素的占据大小,需要通过width +2* padding + 2*border来计算,css3中提出了box-sizing:border-box,通过这样设置,就可以使元素最终的宽高就是设定的width/height, 浏览器会根据width/height, padding, border的大小来自动调整内部元素的大小。

写一个获取当前url查询字符串中的参数的方法

//方式一:split
function urlParam() {
  const search = window.location.search;
  search = search.substr(1, search.length);
  const res = {};
  if (!search) return res;
  search.split('&').map(item => {
    const [key, value] = item.split('=');
    res[key] = decodeURIComponent(value);
  });
  return res;
}
//方式二:正则
function urlParam(){
    const param = {};
    location.search.replace(/([^&=?]+)=([^&]+)/g,(m,$1,$2)=> param[$1] = $2);
    return param;
}

Web实时消息推送技术有哪些方式

方式 类型 技术实现 优点 缺点 试用场景
轮询(polling) client→server 客户端循环请求 1.实现简单 2.支持跨域 1.浪费带宽和服务器资源 2.一次请求信息大半是无用(完整http头信息) 3.有延迟 4.大部分无效请求 适于小型应用
长轮询(long-polling) client→server 服务器hold住连接,一直到有数据或者超时才返回,减少重复请求次数 1.实现简单 2.不会频繁发请求 3.节省流量 4.延迟低 1.服务器hold住连接,会消耗资源 2.一次请求信息大半是无用 WebQQ、Hi网页版、Facebook IM
iframe流 client→server 在页面里嵌入一个隐蔵iframe,将这个iframe的src属性设为对一个长连接的请求,服务器端就能源源不断地往客户端输入数据。 1.数据实时送达 2.不发无用请求,一次链接,多次“推送” 1.服务器增加开销 2.无法准确知道连接状态 3.IE、Chrome等一直会处于loading状态 Gmail聊天
WebSocket client?server new WebSocket() 1.支持双向通信,实时性更强 2.可发送二进制文件 3.减少通信量 1.浏览器支持程度不一致 2.不支持断开重连 网络游戏、银行交互和支付

原文地址:https://www.cnblogs.com/EricZLin/p/12070894.html

时间: 2024-08-30 14:18:12

每日思考(2019/12/19)的相关文章

白盒测试实践(小组作业)——每日例会记录12.19

工作进展: 针对评审过程中发现的缺陷,用excel文档来记录(阶段二完成). 对工程中用FindBugs检测出现的缺陷和评审中发现的缺陷进行分析对比,撰写静态代码检查报告.(阶段三完成) 工作计划:编写单元测试脚本并执行测试(阶段四任务)

《Vue.js实战》一书 p117 练习 1& 2 (2019.12.19)

(最近学了下angular的教程,又回过头来看 vue.js实战一书...) 练习1 :在输入框聚焦时,增加对键盘上下按键的支持,相当于加1 和减 1 练习2 :增加一个控制步伐的prop--step,比如设置为10 ,点击加号按钮, 一次增加10 . ps:只添加了少量代码,即完成了此2练习! -----------------------------------------------------------------------------------------------------

12.17 Nginx负载均衡;12.18 ssl原理;12.19 生产ssl密钥对;12.20 Nginx配置ssl

扩展: 针对请求的uri来代理 http://ask.apelearn.com/question/1049 根据访问的目录来区分后端web http://ask.apelearn.com/question/920 12.17 Nginx负载均衡 1. 安装dig命令: [[email protected] ~]# yum install -y bind-utils 2. 用dig获取qq.com的ip地址: [[email protected] ~]# dig qq.com 3. 创建ld.co

TCL 中upvar 用法 (摘自http://www.cnblogs.com/kane1990/archive/2011/12/19/2293981.html)

可以用 upvar 命令模拟传引用调用的行为,这对数组特别有用.如果a是一个数组,就不能像myproc $a这样把它传给过程myproc,因为并没有 对应整个数组的值:只有对应各个数组元素的值. 但是可以把数组名传给过程,myproc a,然后使用upvar命令在过程中访问数组的元素. 下面是在过程中使用upvar的简单示例,输出一个数组的内容: proc printArray {name} { upvar $name a foreach el [ lsort [ array names a]]

2017.12.19 2周2次课

2017.12.19二周第二次课 2.10 环境变量PATH echo用来输出PATH的值.PATH前面的$是变量的前缀符号 1.你的命令在上述几个目录里面,在输入命令时就不用输入绝对路径,直接使用.因为在输入命令时,系统会在上述的几个目录里去寻找这个命令.当然也可以输入绝对路径 Copy命令[ls]到目录tmp下,并改名[ls2],二者实现的功能一样 直接输入命令[ls2],确不行.因为命令[ls2]不在"/usr/local/sbin:/usr/local/bin:/usr/sbin:/us

12.19&12.20 -基础命令练习二

12.19&12.20 基础命令练习二 第1章 Linux开机启动过程 linux启动过程 1.开启开关 2.bios开机自检 3.mbr引导 4.grub菜单 选择内核 5.加载内核 6.启动init进程  init进程是linux启动的时候运行的第一个进程 7.从/etc/inittab读取运行级别 8.根据/etc/rc.d/rc.sysinit 初始化系统 (设置主机名 ip地址) 9.根据运行级别启动对应的软件(开机自启动软件) 10.运行mingetty 显示登录界面 第2章 PAT

12.17 Nginx负载均衡;12.18 ssl原理;12.19 生产ssl密钥对;12.20 N

12.17 Nginx负载均衡:12.18 ssl原理:12.19 生产ssl密钥对:12.20 Nginx配置ssl 扩展: 针对请求的uri来代理 : http://ask.apelearn.com/question/1049 根据访问的目录来区分后端的web : http://ask.apelearn.com/question/920 nginx长连接 : http://www.apelearn.com/bbs/thread-6545-1-1.html nginx算法分析 : http:/

12.17Nginx负载均衡12.18ssl原理12.19生成ssl密钥对 20Nginx配置ssl

12.17Nginx负载均衡查看域名的IP,用dig命令首先安装 一下dig命令yum install -y bind-utils这时候就可以查看到qq.com的ipb 没有更改配置文件前只能访问默认页,更改配置文件之后,加载配置文件再访问curl x127.0.0.1:80 www.qq.com 就不一样了,进入主页了.只不过反馈回来的是网页的原码nginx不支持代理https,新版本 的也只支持http tcp12.18 ssl原理12.19 生成ssl密钥对需要安装 一个包,查看一个命令需

12.17 Nginx负载均衡 12.18 ssl原理 12.19 生成ssl密钥对 12.20 N

12.17 Nginx负载均衡 [[email protected] ~]# yum install -y bind-utils[[email protected] ~]# dig www.qq.comANSWER SECTION:www.qq.com. 73 IN A 59.37.96.63www.qq.com. 73 IN A 14.17.42.40www.qq.com. 73 IN A 14.17.32.211[[email protected] ~]# curl -x127.0.0.1: