js问题整理(二)
IOS端滑动不流畅的问题
在安卓端滑动非常流畅,但是在IOS端,滑动非常卡顿,
OK,很简单,使用overflow-x:auto;谷歌模拟器一切正常,安卓正常,可是打完包在IOS上,滑动效果慢到完全跟随手指的移动而移动,这样是肯定不行的经过百度发现了解决之道;
-webkit-overflow-scrolling: touch;
在body标签中添加ontouchstart
兼容性问题
1.在IE8之下,input里的placeholder里面的值会被直接传递到后台
2.window环境下不会区分路径的大小写,不会有影响,但是在linux环境下会报504的错误
MUI的mui.openWindow使用问题
在这个方法中默认使用nativeui,当你不希望使用这个模块的时候你需要从ma’nifest.json中移除nativeui模块
同时
mui.openWindow({ //运行这个方法需要在mainifest.json中添加一个控件
/*步骤 打开manifest.json-》模块权限配置 添加NativeUI 原生*/
url:'detailPage.html',
id:'info',
extras:{
aparticle_id:$(".jx_infoImg").attr("aparticle_id"), //文章id
aparticle_time:$.attr("aparticle_time"), //时间
aparticle_comment:$(".jx_infoImg").attr("aparticle_comment"),
aparticle_commend:$.attr("aparticle_commend"), //点赞数
aparticle_laud:$(".jx_infoImg").attr("laud")
},
waiting:{
autoShow:false, //必须
}
})
谈谈PC端性能优化的问题
- 代码层面:避免使用css表达式,避免使用高级选择器
减少全局变量,减少dom操作次数 避免全局查询,多个变量一起声明,避免使用空的src,空的src会重新加载页面,影响速度和效率,避免在html结构中写style标签
- 利用缓存,使用外部js和css文件以便缓存,添加Expires头,减少DNS查找
- 减少HTTP请求,css合并,图片精灵等技术
- 压缩文件,开启gzip
移动端性能优化
适当的使用touch代替click事件
避免使用css3阴影
少使用float,float在渲染时计算量比较大
尽量使用css3动画
PC端的优化在移动端仍然适用
堆和栈的区别
堆先进先出,栈先进后出
http2.0
- 采用服务器推的概念,允许服务器主动向客户端缓存推送数据,提高性能
- 提供更多的加密支持
- 采用头压缩,请求和响应的header信息只会占很少的带宽
谈谈你对语义化的理解
- 当页面样式丢失时页面结构清晰
- 有利于seo优化,有助于爬虫爬取信息
- 提高代码的可读性
Doctype的作用
放在html结构的最前面,高速浏览器以何种方式来解析文档
new的时候都干了啥
- 创建一个空的对象
- 注入属性和方法
JS的同源策略
同源策略是一种安全协议,协议域名端口想同
为什么要有同源策略
如果没有限制,黑客就能把银行的登陆页嵌套进一个iframe这样的话当你登陆的时候你,对方就能轻松的 获取到你的账号和密码,危险
vue的双向数据绑定
vue中主要采取数据劫持 的方式实现双向数据绑定 通过object。defineProtype来劫持属性的setter和getter
比较vue和react
都使用了虚拟dom,提高了性能
都是组件化的开发模式
vue适合小型的web应用的开发
1 和 Number(1)的区别
var a = 1 是一个常量, 而Number(1) 是一个函数,
当1 === Number(1) 做判断的时候也是拿Number的执行结果进行对比,
cookie是如何在服务器端和客户端进行传递的
在http2.0中添加了服务器推的概念 ,允许服务器主动向客户端缓存推送数据,提高性能
客户端可通过document.cookie = 获取到cookie
在js中进行判断,有的话,通过get或者post推向服务器端
找到:“I love China”中最长的单词,输出各单词的长度
function word(){
var str = "I love china"
arr = str.split(" ") //把一个字符串分割成字符串数组。
arr.sort(function(a,b){
return a.length - b.length
})
}
word()
concat() 方法用于连接两个或多个数组。
XML和json的区别
- 数据体积 json的体积更小,传递更快
- 数据交互方面 json与js交互更加方便,更容易被解析处理
- 数据描述,json对数据的描述比xml差
- 传输速度,json的传输速度远远快于xml
meta标签的作用
用来指定关于html文档的信息
htm和html
二者是相同的,
很久以前doc的平台有个8.3约束,后缀只能是3个字符,现在已经不存在这个问题了
在linux系统之中打开htm打开的是源码
变量常驻内存会带来什么问题
内存泄漏,在程序结束结束的时候,变量才会被释放
内存泄露是指一块被分配的内存既不能使用,又不能回收,直到浏览器进程结束。 长期堆积的内存泄漏也将导致内存溢出。内存溢出指没有足够的内存去让程序运行
jsonp
用来处理跨域的一种解决方式
优点:兼容性好,在古老的浏览器中也能运行
缺点:不能够处理POST请求,支支持GET
标准盒模型和怪异盒模型
标准盒模型:一块的总宽高 = width + margin + padding+ border
怪异盒模型:总宽高 = width + maigin(左右))width已经包含padding和border
重排和重绘
重排:修改了元素的宽高,或者其他属性,浏览器需要重新计算元素的几何属性,浏览器会使所渲染书中受影响的部分失效,并且重新渲染树,
重绘:重排完成之后,浏览器会重新绘制受影响部分到屏幕中
变量提升
变量提升的这个概念,只适合变量的声明,并不适用于变量的赋值