前端信息汇总

1、Sublime Text的插件

如果想让Sublime Text锦上添花,这些插件值得尝试。FTPSync,FTP同步工具;SASS Build,编写CSS的预处理器;Package Control,插件管理;Emmet,高效编写HTML和CSS;SublimeLinter,更新时选择并安装需要经常使用的Linter;SublimeEnhancements,边栏菜单的扩充等;PackageResourceViewer,管理包;Git,在Sublime Text中运行Git命令等;Terminal,使用Sublime Text打开项目文件;CSSComb,给CSS属性进行排序;CanIUse,检查浏览器是否支持代码中的CSS和HTML;Alignment,对齐代码;Trmmer,自动删除不不要的空格;ColorPicker,查看或设置颜色的值;MarkDown Editing,查看或编辑Markdown文件;FileDiffs,查看两个不同文件的差异;DocBlockr,为代码建立文档;Snippets,快速书写代码。

2、JSCity

把源码可视化成建筑物的JS库。

3、Flex布局

W3C提出的布局方案,可以实现各种响应式布局。现在已经得到所有浏览器的支持。

4、Chrome的皮肤插件

搜索"DevTools Theme",下载,输入chrome://flags,找到"Enable Developer Tools experments",勾选复选框,重启浏览器,打开开发者选项,点击小齿轮,Experments项,勾选"Allow custom UI themes"。

5、Chrome插件:Performance-Analyser网页性能分析插件

分析http请求,执行期的时间,占比。

6、Chrome插件:FeHelper

json格式化、html格式化、二维码的生成,等等。

7、Chrome插件:POSTMAN

模拟发送请求,简化版的fiddler。

8、Chrome插件:Visual Event

捕获网页元素的各种事件,对于复杂的事件作用不大。

9、Chrome插件:WhatFont

查看网页字体。不鼠标停留在字体上就会显示该字体的名称。

10、Chrome插件:Speed Tracer

性能分析器,比Profiles还强大。可以跟踪事件、查看CSS样式、找到js中内存泄漏、检测js语法,等等。

11、前端工程师要做的事

● 根据项目特点选择前端技术栈
● 把平面作品实现为HTML/CSS/JavaScript
● 用PS进行图片处理
● 熟悉JavaScirpt,以及框架、组件
● 熟悉前端开发流程:代码检查、精简、模块化CSS、LiveReload,调试
● 跨浏览器、跨设备的解决方法
● 更高效地操作DOM
● 将CSS写得更加清晰
● 代码更易于维护、单元测试
● 大型项目的模块化和组件化
● HTTP协议
● Web容器/HTTP服务器如何工作
● 无状态Web应用的工作原理
● 动态、静态内容如何分离部署(反向代理配置)
● 安全机制如何配置
● 监控机制如何配置

12、Angular JS

可以让你从jQuery各种选择器和回调函数中解脱出来,双向数据绑定和模型是唯一数据来源。不足的地方在于:严重依赖DOM,按DOM中的指令的优先顺序将模版编译,这样让调试和检测执行顺序变得困难;采用一种叫"脏检查"的机制来跟踪数据变化并同步用户界面,任何Angular作用域内的操作都会触发"脏检查",导致随着绑定的增多应用性能会降低;Angular所有的操作都必须经过它的diget cycle遍历监听器,否则组件不能和数据模型同步,这导致了兼容性问题,如果需要使用第三方Js库,需要使用Angular的$apply函数包装它们,这相当于重构每一个JS库只为能够和Angular合作。没有很好地解决依赖注入;陡峭的学习曲线。

13、React

React是最新的开源UI框架,是构建Javascript的新方式,由Facebook和Instagram领导。React可以用来构建UI界面,比如作为MVC中的View。React可以用来编写独立的Web组件。React鼓励数据单向流动,相信组件是被数据驱动的状态机,讨厌DOM并尽力避免开发者与DOM打交道。提供了尽可能少的API实现一个UI组件。

使用React的好处是:速度很快,在JavaScript代码逻辑和DOM间引进了一个虚拟DOM,其获取渲染之间的diff,之后在DOM中只改变那些需要改变的;很好的兼容性,提供了一套支持IE8以上的API;模块化,UI组件,每一个模块可以被单独开发、测试,并且能调用其它组件;单向数据流动,FLux是在Javascript应用中创造单向数据层架构;使用纯的Javascript;单页JS Web应用;与其他库兼容良好......

14、如何减少HTTP请求次数

● 合并文件:将多个样式文件和脚本文件合并成一个文件。
● CSS Sprites:将多个图片拼成一副图片,然后通过CSS控制。
● Base64编码:通过编码的字符串将图片内嵌到网页文本中。

15、减少DOM元素数量

通过document.getElementByTagName(‘*‘).length

16、Gzip压缩传输文件

Gzip通常可以减少70%网页内容的大小,包括脚本、样式表、图片等文件,主流服务器都有相应的压缩支持模块。

17、避免图片空的src

图片空的src仍然会使浏览器发送请求到服务器。

18、Cookie优化

Cookie被用来做认证或个性化设置,其信息包含在http报文中。可以在以下几个方面优化:

● 去除没必要的cookie
● cookie的大小减到最小
● 设置合适的domain级别
● 设置合适的过期时间

19、CSS优化

● 将样式表置顶,css放在网页的HEAD中让网页显得加载速度更快。
● 避免css表达式
● 使用外部的css文件
● 压缩css文件
    ○ CSSTidy
    ○ Minify
    ○ YUICompressor(编译集成,包含在Nuget中)
    ○ AjaxMin
    ○ CSSCompressor

20、优化Javascript

● 把脚本置底
● 使用defer,指定脚本在文档加载后执行
● 使用HTML5中的async关键字,让脚本异步执行
● 使用外部的Javascript文件
● 压缩js文件
    ○ Packer
    ○ JSMin
    ○ Closure compiler
    ○ YUICompressor(编译集成,包含在Nuget中)
    ○ AjaxMin

21、js闭包

有权访问另一个函数作用域变量的函数。

function outerFunction(name){
    return innerFunction(arg1, arg2){
        var item1 = arg1[name];
        var item2 = arg2[name];
        if(item1<item2){
            return -1;
        }
        if(item>item2){
            return 1;
        }
        if(item1==item2){
            return 0;
        }
    };
}

var out = outerFunction("name");
var result = out({name:"d",age:18},{name:"e",age:19});

以上,outerFunction函数中的匿名函数有权访问name变量,这个匿名函数就是一个闭包,之所以有权访问name变量,是因为匿名函数有一个scope属性,outerFunction函数也有一个scope属性,另外全局还有一个scope属性,匿名函数的scope属性指向outerFunction函数的scope属性,outerFunction函数的scope属性指向全局的scope属性,scope之间形成了链表。

22、js原型

function Person(){
    this.Name = "hello";
}

var p = new Person();

→实例有一个_proto_属性
→var p = new Person()相当于p._proto_=Person.prototype
→每个对象,比如这里的Person都有一个prototype属性,prototype属性又有一个_proto_属性
→隐式地还包含这样的关系:Person.prototype._proto_ = New Object();

23、Grunt工具

自动完成一些反复重复的任务,比如压缩、编译、单元测试等。Grunt.js依赖于node.js的npm来管理和安装,首先安装node.js。比如:grunt-contrib-imagemin用来压缩图片,grunt-contrib-uglify用来压缩JavaScript文件,grunt-contrib-cssmin用来压缩CSS文件,grunt-contrib-htmlmin用来压缩html代码。

24、Spartan浏览器

微软放弃IE,重新推出的Spartan浏览器。

25、JavaScript的Console

通常用console.log()和console.error()方法,起始有关Console的API还不少,比如console.group(),console.time(),等等。

26、在浏览器中输入地址并且按下回车键后发生了什么?

→输入地址,按下回车键
→和回车键有关的电流回路闭合
→电流进入键盘的逻辑电路系统
→逻辑电路系统获取到回车键的码值是13
→键盘控制器将码值编码传输
→浏览器获取输入的地址信息
→浏览器把接收到的协议和自带的协议比较,选择使用HTTP或HTTPS协议进行传输
→浏览器检查域名是否在缓存中,如果缓存中没有当前域名就调用gethosbynme库函数
→检查域名是否在本地的Hosts里
→向DNS服务器发送一条DNS查询请求
→对DNS服务器进行ARP查询
→查看路由表,看看目标IP地址是否在路由表中
→查询网络接口的MAC地址,再次发送一个2层的ARP请求

如果主机和路由器直接相连,路由器返回一个ARP Reply。

如果主机链接到一个集线器,集线器会把ARP请求向所有端口广播,返回ARP Reply。

如果主机连接交换机,交换机检查本地CAM/MAC表,看看哪个端口有我们要找的MAC地址,返回ARP Reply。

→主机收到ARP Reply
→使用53端口向DNS服务器发送UDP请求,如果响应包太大,会使用TCP请求
→浏览器得到目标服务器的IP地址和端口号
→浏览器调用系统的socket函数,请求一个TCP流套接字
→流进入传输层。请求封装城TCP segment,目标端口被加入头部,源端口从系统获取
→TCP segment被送到网络层
→在网络层,目标IP以及本机IP加入头部,封装城TCP packet
→TCP packet进入链路层
→链路层在封包中加入frame头部,里面包含内置网卡的MAC地址以及网关(本地路由)的MAC地址,至此TCP封包已经组装完毕,准备发送。
→传输TCP封包

对于大部分家庭和小型企业来说,封包从本地计算机触发,经过本地网络,再通过调制解调器把数字信号转换成模拟信号,进行传输。到达目的地,通过调制解调器,把模拟信号转换成数字信号。

对于使用光纤的,信号一直是数字的,封包直接传送到目的地。

27、发送TCP封包的具体过程

→客户端选择一个初始序列号(ISN),将设置了SYN位的封包发送给服务端
→服务端接收到SYN包
→服务端选择初始序列号(ISN)
→服务端设置SYN位,表明自己选择了一个初始序列号(ISN)
→服务端把客户端的ISN加1复制到ACK域,并且设置ACK位,表明自己接收到了客户端的一个封包
→客户端发送下一个封包
→客户端把自己的序列号加1
→客户端让自己的ACK加1
→客户端设置自己的ACK位
→客户端发送N个Bytes,将自己的SEQ序列号也增加N
→服务端接收到N个Bytes
→服务端发送一个ACK包,将ACK的值设置为接收到的数据包的最后一个序列号
→客户端关闭,发出一个FIN包
→服务端确认这个FIN包,并且发送自己的FIN包
→客户端使用ACK包确认接收到了FIN包

28、TLS握手

→客户端发送hello信息到服务端,消息中包含了TLS版本,可用的加密和压缩算法
→服务端想客户端发送一个hello信息,消息中包含了TLS版本,可用的加密和压缩算法、服务器的公开证书(包含公匙,客户端使用公匙加密接下来的握手过程)
→客户端根据自己的信任CA列表,验证服务端的证书是否有效
→如果服务端的证书有效,客户端生成一串伪随机数(会被用于生成新的对称密匙),使用服务器的公匙加密它
→服务端使用私匙解密来自客户端的随机数
→服务端使用上面的随机数生成自己的对称主密匙
→客户端发送一个Finished信息给服务端
→客户端使用对称密匙加密这次通讯的一个散列值
→服务端生成自己的hash值,然后解密客户端发来的信息,检测这2个值是否对应,如果对应,向客户端发送一个Finished信息,也使用协商好的对称密匙加密
→接下来整个TLS绘画都使用这个对称密匙进行加密

时间: 2024-10-06 19:23:05

前端信息汇总的相关文章

最热web前端技术汇总

Web前段技术发展很快,主流技术日新月异,想想自己刚毕业那会用的asp技术,现在已经很少有主流网站在使用了. 再到后来的J2EE框架,然后SpringMVC大行其道,但是最近各种js框架被广为传播,Html5的推出很是丰富了移动互联网的发展,此文对当前最新的几种web前端技术进行的汇总,让大家更多地了解,然后取其所长,避其所短,快速推出简约大方,维护方便,性能良好的个人网站. JavaScript MV*框架 在相当长的一段时间里,每个程序员都要学会如何利用JavaScript来编写弹出一个警告

Khronos 在GDC上的信息汇总:Vulkan,OpenXR,WebGL,glTF

Khronos 在GDC上的信息汇总:Vulkan,OpenXR,WebGL,glTF 游戏开发者大会,旧金山– The Khronos? Group, 一个由领先硬件和软件公司组成的组织,在游戏开发者大会(GDC)上发布了主要API更新和新工作组成立的消息.在本周,我们将有一系列Khronos赞助的活动,The Khronos Group在加速跨平台API的开发,并为开发者们带来了最新的硬件功能.Khronos 一如既往地致力于搭建在整个业界广泛使用的开放标准的合作社群,最近在GDC发布的AP

ASP.NET获取请求的url信息汇总

ASP.NET获取请求的url信息汇总 最近做项目需要处理一个用代码获取当前网站的域名或ip信息的问题,于是尝试了ASP.NET中各种获取url信息的方法,在此总结一下: 在Global.asax文件中的 Application_BeginRequest 方法中,加入以下代码,利用日志文件记录各种方法得到的信息 HttpApplication app = sender as HttpApplication; logger.Debug("Request.ApplicationPath:"

小学 学生学籍信息汇总处理代码

将每个学生填写的信息在检查后自动汇总到一个新的excel表格. #-*- encoding: utf-8 -*- '''   小学  学生学籍信息汇总 (带身份证号码有效性检查)   版权:GPL   owner:[email protected] ''' import os #import xlrd import xlwt from xlrd import open_workbook   from xlutils.copy import copy   import re import trac

postfix报错信息汇总

postfix_编译时make: *** [xsasl_cyrus_server.o] Error 1 make: *** [update] //如果编译出错,检查出错情况,一般是有包忘了装,要不是参数路径错误: [注释]: xsasl_cyrus_server.c:598: error: 'SASL_OK' undeclared (first use in this function) xsasl_cyrus_server.c:600: warning: format '%s' expects

DB2错误信息汇总

DB2错误信息(按sqlcode排序) sqlcode sqlstate 说明 000 00000 SQL语句成功完成 01xxx SQL语句成功完成,但是有警告 +012 01545 未限定的列名被解释为一个有相互关系的引用 +098 01568 动态SQL语句用分号结束 +100 02000 没有找到满足SQL语句的行 +110 01561 用DATA CAPTURE定义的表的更新操作不能发送到原来的子系统 +111 01590 为2型索引设置了SUBPAGES语句 +117 01525 要

2020前端面试汇总

?01 前言 工作了这么久,一直没有自己的一个技术知识沉淀,这一次去找了很多前端面试题,再加上自己的工作经验,进行一次汇总,强烈要求自己掌握以下内容,不仅要知其然,还要知其所以然.让自己以后在面试或者工作中做到"心中有佛,不虚场合". 02 目录 下面是这篇文章的目录结构,一般比较简单的问题我就一笔带过了,主要是分享一下比较有难度的知识点,答案来自网上,如果有版权问题我会删除.还有本文只是给出一个大概的知识点,如果想要深入学习还要靠自己去查一下哦! 如果答案有错误,欢迎指正! 计算机基

web前端链接汇总

JavaScript https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Inheritance_and_the_prototype_chain Web前端技术栈 http://www.zhihu.com/question/33179506 不定期汇总...................................................................

前端资源汇总[转载]

JavaScript 框架/库 Animations vivus:可以动态描绘 SVG 的 JS 库, 支持多种动画 Web Animation:Javascript 实现的 Web Animation API scrollReveal.js:使元素以非常酷帅的方式进入画布 (Viewpoint) snabbt.js:一个利用 Javascript 和 CSS transform 的 animation 库 matter-js:2D 物理效果引擎,碰撞.弹跳等 parallax:一个用于响应智能