首页 > 其他分享 >前端面试总结14-开发环境与运行环境

前端面试总结14-开发环境与运行环境

时间:2022-10-07 16:14:47浏览次数:47  
标签:git 14 渲染 xxx 环境 timer delay 面试 加载

1.git:最常用的代码版本管理工具

常用git命令:

git add .

git checkout xxx

git commit -m "xxx"

git push origin master

git pull origin master

git branch

git checkout -b xxx/git checkout xxx

git merge xxx

 

chrom调试工具:

Elements,NetWork,Console,Application,debugger

 

 

抓包:

移动端h5页,查看网络请求,需要用工具抓包

windows一般用fiddler

MacOs一般用charles

需要将手机与电脑连接到一个局域网,将手机代理到电脑上,手机浏览网页即可抓包

 

运行环境:

页面加载过程

1)DNS解析:域名->IP地址

2)浏览器根据IP地址向服务器发起http请求

3)服务器处理http请求,并返回给浏览器

渲染过程:

1)根据html代码生产DomTree

2)根据Css代码生成CssOM

3)将DomTree 与 CssOM整合形成Render Tree

4)根据Render Tree渲染页面

5)遇到<script></script>停止渲染优先加载执行JS代码,完成再继续

6)直至RenderTree渲染完成

性能优化原则:

1)多使用内存,缓存或者其他办法

2)减少CPU计算量,减少网络加载耗时

3)空间换时间

加载优化:

1)减少资源体积:压缩代码

2)减少访问次数:合并代码,SSR服务器端渲染,缓存

SSR:

(1:服务器端渲染:将网页和数据一起加载,一起渲染

(2:非SSR:先加载网页,然后加载数据,再渲染数据

(3:早先的JSP,ASP,PHP,现在的vue,React SSR

3)使用更快的网络,CDN

渲染优化:

1)CSS放在Head,JS放在body最下面

2)尽早开始执行JS,用DomContentLoaded触发

3)懒加载

4)对dom查询进行缓存

5)频繁DOM操作,合并到一起插入DOM结构

6)防抖与节流

防抖:

function deboundce(fn,delay=500){

let timer = null

return function(){

if(timer){

clearTimeout(timer);

}

timer= setTimeout(()=>{

fn.apply(this,arguments);

timer=null;

},delay)

}

}

节流:

function deboundce(fn,delay=500){

let timer = null

return function(){

if(timer){

return;

}

timer= setTimeout(()=>{

fn.apply(this,arguments);

timer=null;

},delay)

}

}

网络攻击:

Xss攻击:

通过往页面文本内容嵌入<script>脚本,获取cookie(服务器配合跨域)

Xss预防:

替换特殊字符,如<变为&lt;,>变为&gt;前端后端同时替换

 

 XSRF攻击:

通过电子邮件中正文内容隐藏的<img>标签隐藏的src进行信息盗取或商品代付

预防:

使用post接口

增加验证

 

标签:git,14,渲染,xxx,环境,timer,delay,面试,加载
From: https://www.cnblogs.com/qwqxyd/p/16759903.html

相关文章

  • MySQL面试题(三)
    27、索引的底层实现原理和优化B+树, 经过优化的B+树主 要是在所有的叶子结点中增加了指向下一个叶子节点的指针,  因此InnoDB建 议 为大部分表使用默认自增的主键作为......
  • JDK安装及环境变量配置--流程
    jdk安装与配置环境变量1、下载jdkJDK1.8官网链接地址https://www.oracle.com/java/t...点击下载,下载完后安装,直接点击下一步。可更改你要安装的位置(要记住这个位置,后面环......
  • jupyter notebook导入conda环境
    创建conda环境condacreate--namefirstEnv激活环境并安装软件包condaactivatefirstEnvcondainstallscikit-learn安装和配置ipykernelcondainstall-cconda......
  • redis 面试题汇总
    什么是RedisRedis是一个开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API的非关系型数据库......
  • Mybatis用指定的环境Id配置
    如果在mybatis的config文件里面配置了多个JDBC环境该如何使用呢?例如有如下mybatis的配置文件<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfiguration......
  • Java 面试题 10 - 海量数据处理算法
    大数据处理中的分治思想哈希映射:如果数据太大,不能全部放入内存中,就可以利用映射函数将每条数据映射到一个小文件中,例如%1000可以将大文件映射成1000个小文件。相同的......
  • Java 面试题 11 - 分布式系统常见问题
    分布式ID的实现分布式ID需要满足哪些需求?基本需求:全局唯一高性能:生成速度快,对本地资源消耗小。高可用:生成分布式ID的服务要保证高可用性。方便易用:使用方便......
  • Java 面试题 09 - 计算机网络
    TCP&UDPTCP和UDP的区别有什么?TCP面向连接,UDP无连接。TCP提供可靠的传输,在传递数据之前,需要通过三次握手建立连接,在传递数据时,有确认、窗口、重传、拥塞机......
  • Java 面试题 08 - 计算机网络
    进程什么是系统调用?根据进程访问资源的特点,可以把进程的运行状态分为两个级别:用户态:只能读取用户程序的数据;内核态:可以访问几乎一切资源。用户程序基本都运行在用户......
  • 【数据结构和算法】LeetCode,初级算法-14字符串中的第一个唯一字符
    截止到目前我已经写了600多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:​​https://pan.baidu.com/s/1hjwK0ZeRxY......