▓神来棋牌A9602点com ▓拥有多年专业标准化的网络服务的经验,神来棋牌凭借对互联网产品的深耕经验及对App的持续研究,神来棋牌app已成为国内最专业、服务最好的平台App,龙城棋牌平台欢迎您!神来棋牌,神来棋牌APP,神来棋牌平台,神来棋牌注册开户,神来棋牌官方಻
当前位置:主页 > Web前端 > 正文

神来棋牌娱乐Web前端Gzip有从1-10的十个等级

10-06 Web前端

通过上面的路径可以看出浏览器分为请求、传输、渲染三部分来实现用户的访问,本文就从这三个部分来浅析如何提升WEB前端性能   浏览器为了减少请求传输,实现了自己的缓存机制。浏览器缓存就是把一个已经请求过的Web资源拷贝一份副本存储在浏览器中,当再次请求相同的URL时,先去查看缓存,如果有本地缓存,浏览器缓存机制会根据验证机制(Etag)和过期机制(Last-Modified)进行判断是使用缓存,还是从服务器传输资源文件。具体流程如下图所示   浏览器的请求有些是并发的,有些是阻塞的,比如:图片、神来棋牌娱乐CSS、接口的请求是并发;JS文件是阻塞的。请求JS的时候,浏览器会中断渲染进程,等待JS文件加载解析完毕,再重新渲染。所以要把JS文件放在页面的最后   JS也可以通过两种方式由阻塞改成并行:一种是通过创建标签,插入DOM中;另一种是在标签中增加async属性   每种浏览器对同一域名并发的数量有限制,IE6/7是2,IE9是10,其他常见的浏览器是6,所以减少资源请求数量和使用多域名配置资源文件,能大大提高网站性能   1、通过打包工具,合并资源,减少资源数量。就是开发版本是很多个资源文件,部署的时候,按类合并成几个文件来输出。在实现模块管理的同时,实现统一输出   除了减少请求数量,也可以使用CDN镜像,来减少网络节点,实现快速响应。使用了CDN的请求,会根据用户所处的地理位置,找寻最近的CDN节点,如果请求是新的,则从资源服务器拷贝到节点,然后再返回给客户端。如果请求已经存在,则直接从节点返回客户端   通过上面我们了解的缓存机制,如果我们部署上线的时候,是需要刷新缓存的。普通缓存通过强刷就能改过来,而CDN缓存则需要通过改变URL来实现。同时我们不可能要求用户按着Ctrl来刷新,所以通过打包工具,在部署的时候,统一更改URL是最有效的方式。而不常变更的库文件,比如echart、jquery,则不建议更改   Gzip有从1-10的十个等级。越高压缩的越小,但压缩使用的服务器硬件资源就越多。根据实践,等级为5的时候最均衡,此时压缩效果是100k可以压缩成20k   浏览器在加载了html后,就会一边解析,一边根据解析出来的结果进行资源请求,并生成DOM树。而加载完毕的CSS,则被渲染引擎根据生成好的DOM树,来生成渲染树。等所有资源解析完毕计算好layout后,向浏览器界面绘制。随着用户操作,JS会修改DOM节点或样式,重新绘制和重新排列。重新绘制指的是绘制DOM节点对应的渲染节点,重新排列是指重新计算这些节点在浏览器界面的位置。很显然,重排是非常耗性能的。我们要做的是减少重排的次数   生成DOM树的时候,我们可以通过减少DOM节点来优化性能。最初都是用table布局,节点深度和数量相当复杂,性能很差。同样CSS作为层叠样式表,层级也不可太深,不然遍历的成本很高。另外CSS的expression属性相当耗性能,能不用则不用。动画效果能用CSS写的就不用JS写,渲染引擎不一样,性能损耗也不一样   上面说的是解析渲染的过程,我们再接着说说用户交互操作的过程。用户操作就会导致重绘和重排,重排一定会引起重绘,而重绘不一定会引起重排。到底怎样会引起重排呢?简单的定义,DOM结构的变化,以及DOM样式中几何属性的变化,就会导致重排。几何属性顾名思义,就是宽、高、边框、外补丁、内补丁等俗称盒模型的属性。同时还有offset之类的边距属性   1、如果需要多次改变DOM,则先在内存中改变,最后一次性的插入到DOM中   3、由于position的值为absoute和fixed时候,是脱离文档流的,操作此类DOM节点,不会引起整页重排。所以动画元素设置position使其脱离文档流   4、当DOM节点的display等于none的时候,是不会存在于渲染树的,所以如果有比较复杂的操作,先使其display等于none,等待所有操作完毕后,再将display设成block,这样就只重排两次   以上就是浏览器如何把资源变成肉眼所见的页面的,除了上述根据浏览器流程而总结出来的性能优化,我们还需要看看java作为程序,需要的优化。先来看看java的垃圾回收机制   Java的引擎会在固定的时间间隔,将不再使用的局部变量注销掉,释放其所占的内存。而闭包的存在,将使引用一直存在,无法被释放掉。全局变量的生命周期直至浏览器卸载页面才会结束。所以一般来讲,内存溢出就是由于全局变量的不释放和闭包引起。为了防止内存溢出,我们可以做的方法有   5、通过浏览器自带的工具profiles,来检查内存活动情况。如果是波浪型的,说明正常。如果是倾斜式渐进上涨的,说明有内存不会被释放,需要检查相应的函数   毫无疑问,由于函数内的返回是异步的,所以返回只能是undefined,而不是想要的data。于是为了实现返回data,就把ajax的async属性设置成了false,由异步改为同步,来获取到data。然而最大的问题来了,同步是会中断渲染进程的,也就是请求返回的等待中,整个页面是卡死的,用户操作也不会有响应。这个问题真正的解决方案是返回promise对象,而不是把异步改成同步。返回搜狐,查看更多 神来棋牌 神来棋牌app 神来棋牌手机版官网 神来棋牌游戏大厅 神来棋牌官方下载 神来棋牌安卓免费下载 神来棋牌手机版 神来棋牌大全下载安装 神来棋牌手机免费下载 神来棋牌官网免费下载 手机版神来棋牌 神来棋牌安卓版下载安装 神来棋牌官方正版下载 神来棋牌app官网下载 神来棋牌安卓版 神来棋牌app最新版 神来棋牌旧版本 神来棋牌官网ios 神来棋牌我下载过的 神来棋牌官方最新 神来棋牌安卓 神来棋牌每个版本 神来棋牌下载app 神来棋牌手游官网下载 老版神来棋牌下载app 神来棋牌真人下载 神来棋牌软件大全 神来棋牌ios下载 神来棋牌ios苹果版 神来棋牌官网下载 神来棋牌下载老版本 最新版神来棋牌 神来棋牌二维码 老版神来棋牌 神来棋牌推荐 神来棋牌苹果版官方下载 神来棋牌苹果手机版下载安装 神来棋牌手机版 神来棋牌怎么下载



相关推荐:



版权保护: 本文由 主页 原创,转载请保留链接: http://www.furiku.comhttp://www.furiku.com/html/185.html

博客主人YeLongCu
男,文化程度不高性格有点犯二,已经20来岁至今未婚,闲着没事喜欢研究各种代码,资深技术宅。
  • 文章总数
  • 47255访问次数
  • 建站天数
  • 友情链接