浏览器常见的兼容问题
Ie6.0横向margin加倍
解决方法:display:inline;
在各个浏览器下图片会有空隙
解决方法:让图片浮动
Li之间会有间距
解决方法:用vertical-align:middle
Opacity定义元素的透明度
解决方法:filter:alpha(opacity:80)//ie支持该属性
Opacity:0.8//支持css3的浏览器
z-index不起作用的bug
Ie6下 首先讲讲第一种z-index无论设置多高都不起作用情况。这种情况发生的条件 有:1、父标签position属性为relative;2、问题标签含有浮动(float)属性。
网站性能优化
代码部署
代码的压缩和合并
避免不必要的重定向加上(/)
编码
使用结构清晰,简单,语义化标签
避免空的src和href
不要再html中缩放图片
Css
精简css选择器
把css放在顶部
避免@import方式引入样式
使用css3动画取代JavaScript动画
避免使用css表达式
Js
减少引用库的个数
使用require.js异步加载js
Js放在页面底部引入
避免全局查找
减少属性查找
使用原声方法
用switch代替复杂的if else语句
使用事件委托
使用array和join的方法来代替字符串
iOS和安卓适配问题
设置安卓的适配一般使用通用的度量单位dp 根据dp和px的换算来计算每个型号的 适配,1dp可以换算成若干个px在不同机型上大小不一样。
他是根据屏幕的密度来计算的,所以dp也叫做密度无关像素
mdpi区间的手机,dp=px。
hdpi区间的手机,1dp=1.5px。
xhdpi区间的手机,1dp=2px。
xxhdpi区间的手机,1dp=3px。
安卓开发里面对各个分辨率分等级(m-dpi,h-dpi,xh-dpi)等
iPhone虽然机型不多,但是经过几次更新换代,屏幕也从最早的3GS(320*480)进化到了现在的iPhone6 plus(1920*1080)。屏幕密度越来越大,如果直接用px的话,还是会出现同样px的UI元素,在不同机型上的大小不一样的问题。于是iOS很机智的选择了点(point)这个和dp几乎一模一样的虚拟单位。
在3GS上,1point=1px。
在iPhone4上,1point=2px。
在iPhone5上,1point=2px。
在iPhone6上,1point=2px。
在iPhone6 plus上,1point=3px。
面向对象开发
面向对象的三个特性:继承、封装、多态
原型和原型链
原型:每一个函数都有一个属性叫portotype这个属性的属性值是一个对象,默认的只有一个叫constructor属性,该属性但会的是函数本身。
原型链:每个对象都有一个内部属性__proto__,原型的值可以是一个对象,也可以是null,如果他的值是一个对象,则这个对象也一定有自己的原型,这样就形成了原型链
实现继承的方式,闭包
继承:原型链继承:将父类的实例作为子类的原型
构造函数继承:使用父类的构造函数来增强子类实例,等于是复制父类的实例 属性给子类
实例继承:在子类的构造函数中继承实例化一个父类,必须用return
闭包:
三个特性:函数套函数
内部变量可以访问外部变量
参数和变量不会被垃圾机制回收
gulp的5个api
Gulp.src() 这个方法来读取你需要操作的文件
Gulp.dest() 这个方法是用来写文件的
Gulp.task() 这个方法用来定义任务,内部使用的是Orchestrator
Gulp.watch() 这个方法用来监视文件的变化,当文件发生变化后,我们可以利用 它来执行相应的任务,例如文件压缩等
Gulp.pipe() 这个方法是管道的意思,只关注改变的东西
webpack基本使用
现在的网页大部分都有很多的外部引入js文件,导致网页加载速度慢,webpack 开发就是为了简化这种情况的
webpack可以使用npm命令行来安装
它分为单个打包和多个打包
单个打包:在终端里面通过webpack js路径添加一个js把前面js文件打包到自定义创建 的文件。
多个打包:把所有的文件打包到一个,用webpack然后写一个入口路径 再指定一个出口 文件路径。
Webpack -p是进行代码压缩 生产环境下的编译打包
Webpack -w 监听文件的改动 自动编译
babel配置将es6转换成es5
重点:因为现在很多浏览器对es6支持比较弱所以要通过
webpack里面的babel配置来把它编译成es5
编译需要是三个核心的模块babel-loader babel-core babel-preset-es2015 -D
然后写一个es6语法 导入模块 export default{}
然后从入口entry.js里面引入 import 名字 from 模块路径;
配置es6就是先装下三个模块然后下一下配置项就ok了
http协议
对客户端和服务器端之间数据传输的格式规范,格式简称为‘超文本传输协议’
特征:支持客户/服务器模式;简单快速;灵活;无连接;无状态。
http请求:
Get:用于请求访问已经被url识别的资源,可以通过url给服务器传参
Post:用于传输信息给服务器,保密工作好。
Put:传输文件
Delete:删除文件,与post相反,删除对应url位置的文件
三次握手过程
发送http请求
响应http请求并得到html代码
浏览器解析html代码
浏览器对页面进行渲染
http协议有什么组成
请求行:包含请求方法,url http版本信息
请求首部字段
请求内容字段
1状态行:包含http版本,状态码,状态码的原因短语
响应收不字段
响应内容字段
状态码:
200:请求正常
3开头的:重定向
4开头的:请求发生错误,找不到资源
5开头的:服务器错误,
node.js
Nodejs它的亮点就是效率高,运算速度快,单线程事件驱动,通过回调函数,异步进行操作。
搭架一个简单的服务器
引入http模块
创建服务器 http.createServer((req,res)=>{
console.log(有人来了);
});
给该服务器设置一个监听端口server.listen(8080);
两个参数,
req(request) 请求
Consol.log(req.url) 请求过来的路径信息
res(response)响应
res.write() //这里得东西会打印到浏览器上
res.end() //输出结束
npm基本指令
Npm install 下载模块
Npm uninstall 卸载模块
Npm init 初始化
Npm date 更新模块
Npm -v 查看版本
Npm root -g 查看安装全局的路径
Npm root 查看当前安装路径
Npm remove 移除
10.混合式开发打包工具是什么?
11.项目介绍
12.主要实现的是什么? (1)活动页面(2)webApp的一些功能通过安卓给的一个窗口然后可以吧html嵌套进去
网友评论