性能分析—白屏、闪屏和卡顿

65 篇文章 0 订阅
订阅专栏

一、关键字

        白屏、闪屏、卡顿、页面崩溃、渲染异常

二、概述

        项目开发、交付过程中,偶尔会遇到白屏、闪屏和卡顿现象。造成此类问题的原因有很多,例如内存不足、显存不足、内存泄漏等,但想要精确定位到具体什么原因导致的性能问题,如果没有相关的排查经验、没有一个明确的排查思路,那此类问题是非常不易排查,且耗时耗力的。

        白屏、闪屏和卡顿问题会导致用户体验很差,客户对此类问题的容忍度一般都非常低,一旦出现,必然希望从速解决,越快越好。是故,如果每次遇到此类问题,都毫无章程的随缘排查,成本太高,效率无法保障。所以,整理一份排查指南,总结以往经验,既拉低人员要求,又降本增效,一劳永逸。

三、异常分析

        总结、分析白屏、闪屏和卡顿的常见原因,及这些问题出现时需要重点排查的指标。

白屏的常见原因

        一般白屏现象主要观察内存和显存的使用情况。浏览器的渲染进程和GPU进程的正常工作均离不开内存和显存。这两个进程只要有一个出问题,就会直接影响前端页面的展示。

        小贴士:渲染进程和GPU进程有什么联系?

        浏览器的渲染进程会将页面中的图形元素发送给GPU进程,GPU进程则将接收到的图形元素渲染成最终的图像,然后将渲染后的图像发送回渲染进程,最终显示在屏幕上。也就是说,GPU进程和渲染进程只要有一个出问题,另一个也会收到波及,最终导致页面无法正常显示。而内存和显存二者都能够影响这两个进程。

1、内存溢出

        前端页面的展示离不开内存,计算机内存不足会对浏览器渲染进程/GPU进程产生负面影响,严重的话会导致渲染进程/GPU进程崩溃,进而导致页面白屏,更准确的说是页面崩溃。

        渲染进程又被称为渲染引擎,其需要借助内存来存储和处理图像或其他页面内容,当内存不足时,将无法正常加载和渲染页面内容。GPU进程也需要借助内存来存储和处理图形数据,以便更快的渲染图形。

        小场景:前端服务正常启动后,直接就无法正常加载、渲染和显示,可优先排查内存是否溢出,若溢出,则需升级硬件配置(增大运行内存)。

        小贴士:什么是内存溢出?

        内存溢出是指程序试图使用的内存超过了可用内存。

2、内存泄漏

        内存泄漏导致的白屏是由于内存耗尽引起的,也就是页面实际耗用的内存超出预期内存。当存在内存泄漏时,随着泄漏的持续,轻则页面出现卡顿、闪屏,严重的会导致内存溢出,进而可能造成渲染进程/GPU进程崩溃,引发页面白屏(页面崩溃)。·  

        小场景:与内存溢出不同,前端服务刚启动时,可以正常加载、渲染和显示页面,但随着时间推移,页面逐渐出现卡顿现象,且运行时间越久,卡顿越明显,严重时甚至页面崩溃,此时可优先排查是否存在内存泄漏(监测内存增长)。

        小贴士:什么是内存泄漏?

        内存泄漏是指程序未正确释放已分配内存,从而导致系统内存的浪费。如果内存泄漏持续发生,最终会导致内存溢出,从而影响系统的正常运行。

3、显存不足,显存溢出

        前端页面的展示离不开显存。显存不足会导致GPU性能下降,会影响浏览器页面的渲染进程/GPU进程,页面无法正常加载所需资源,页面的展示会受到影响,最直接的表现就是页面的渲染和显示速度下降,导致卡顿、闪屏,严重时可造成页面白屏,甚至当显存溢出时,极有可能导致页面的渲染进程/GPU进程崩溃,进而页面崩溃。

        显存溢出比显存不足情节更加严重,根据溢出的程度,可造成页面白屏,甚至页面崩溃。如果溢出的程度较轻,可能只会造成页面白屏。若溢出的程度较重,则可能导致页面崩溃。

        小场景:前端服务正常启动后,直接就无法正常加载、渲染和显示,排除内存溢出后,可优先排查显存是否不足或已然溢出,若显存确实不够,则需升级显卡。

        小场景:基于WebGL的3D场景在高分辨率下展示时,容易出现白屏,是因为在大分辨率场景下,显存溢出,会导致WebGL崩溃,从而导致3D场景无法正常加载,可能导致出现白屏。

        小贴士:显存不足和显存溢出的区别?

        显存不足是指显存容量不足以支撑浏览器进程的正常工作。显存溢出是指程序试图使用的显存超过了可用显存容量。

4、CPU利用率满载

        CPU利用率达到百分之90左右,甚至满载(100%)时,可能会造成页面白屏,甚至崩溃。因为CPU利用率长时间处于满载状态,导致系统资源不足,可能造成无法正常处理页面上的任务,从而导致页面白屏,乃至崩溃。

        小贴士:造成CPU利用率满载的原因有很多,例如运行程序太多导致资源不足、程序出故障/死循环/内存泄漏/缓存污染/网络阻塞等导致CPU资源被大量占用。

5、GPU利用率满载

        GPU利用率满载会导致GPU资源不足,从而导致页面无法正常加载,可能会导致页面白屏,甚至崩溃。

        小贴士:造成GPU利用率满载的原因有很多,例如GPU内存不足、GPU运行时间过长\运行任务过多、GPU硬件问题等。

6、浏览器内核版本低

        浏览器内核版本过低可能会出现网页代码的不兼容,从而导致页面无法正常显示,严重的引发闪屏、白屏。

7、浏览器没开硬件加速

        浏览器不开硬件加速,也可能会导致页面卡顿、闪屏和白屏问题。

        开启硬件加速可以让浏览器更快速的渲染页面,通常情况下,浏览器默认开启硬件加速,但如果电脑显卡较老或者驱动程序不兼容,可能会导致硬件加速无法开启,从而出现卡顿、闪屏甚至白屏问题。如果出现这些问题,可以尝试升级电脑的显卡驱动程序或在浏览器设置中手动开发硬件加速。

小贴士:谷歌浏览器怎么手动开启硬件加速?

  • 步骤1:打开谷歌浏览器并在地址栏输入chrome://settings
  • 步骤2:在“系统”标题下找到“使用硬件加速模式(如果可用)”并开启它
  • 步骤3:重新启动浏览器以使更改生效

8、其他原因

        当然,能够造成白屏的原因绝对不止以上七种,例如网络影响、带宽瓶颈、浏览器兼容问题、服务器问题、脚本加载失败/脚本报错/脚本阻塞、样式表加载失败/样式阻塞等都有可能造成白屏。

闪屏的常见原因

        闪屏是指屏幕上出现白色或其他颜色的闪烁。闪屏和白屏可以归为一类问题,闪屏是暂时、偶发性的,所以其严重程度比白屏要轻。凡是能造成白屏的因素,在没有引发白屏之前,都有可能造成闪屏。

近期项目中实际遇到过的引发闪屏的因素有两类。

1、谷歌浏览器内核过低

        内核版本过低可能会出现网页代码的不兼容,从而导致页面无法正常显示,可能引发闪屏。

2、页面中的多媒体文件拖慢页面性能

        前端页面中的多媒体文件例如视频、动态图片等,会占用更多的内存和显存,因为它们需要更多的存储空间来存储和处理图像、音视频文件。此外,多媒体文件还需要更多的处理能力来渲染和播放,以及更多的网络带宽来传输。

        小技巧:页面中多媒体文件尺寸保持不变,文件越小,内存和显存消耗越小。页面中多媒体文件大小保持不变,尺寸越小,内存和显存消耗越小。

卡顿的常见原因

        卡顿和闪屏、白屏可以归为一类问题,卡顿的严重程度比闪屏要轻,凡是能造成闪屏、白屏的因素,在没有引发闪屏和白屏之前,都有可能造成卡顿。

近期项目中实际遇到过的引发卡顿的因素有两类。

1、页面中存在多媒体图表组件(数量多或文件大或尺寸大,或多方面都占)

        当浏览器内存和显存消耗过大时,可能会造成页面卡顿。而多媒体文件例如视频和动态图片对内存和显存消耗很大,所以页面中存在视频和动态图片时,很容易出现卡顿现象。

        小技巧:通过控制多媒体文件的大小和尺寸来降低内存和显存的消耗

        小技巧:不需要在当前可视区展示的图表,暂时将多媒体资源移除,从而减少资源资源开支

2、页面中组件很多、很碎

        页面中组件很多、很碎,交互也很多,可能会造成脚本臃肿,当浏览器加载脚本时,会消耗大量CPU和内存资源,导致页面卡顿。

重点需排查指标

        出现卡顿、闪屏和白屏时,如下指标都是需要重点监测的。

测试机器采集时间内存占用GPU内存(显存)CPU利用率  GPU利用率FPS      是否打开硬件加速  当前启用显卡
测试机110:30xxxxxxxxxxxxxxxxxxxxx
11:00xxxxxxxxxxxxxxxxxxxxx
11:30xxxxxxxxxxxxxxxxxxxxx
测试机210:30xxxxxxxxxxxxxxxxxxxxx
11:00xxxxxxxxxxxxxxxxxxxxx
11:30xxxxxxxxxxxxxxxxxxxxx

1、什么是FPS?怎么检查?

        FPS是每秒帧数,即每秒钟展示的图像数。帧数越高,画面越流畅,反之亦然。大部分前端页面60帧及以上用户体验非常流畅,低于30帧则很容易出现卡顿。查询FPS很简单,打开F12调试工具,使用快捷键Ctrl+Shift+P,搜索FPS,选中第一项,在页面左上角会显示实时的FPS。

 

2、内存、显存、CPU利用率、GPU利用率怎么检查?

        使用浏览器任务管理器、计算机任务管理器即可查询上述指标。

        如下图所示为计算机任务管理器,可观察到CPU利用率、GPU利用率、GPU内存占用情况(GPU内存的使用情况可以准确反映显存的使用情况)。

        如下图所示为浏览器任务管理器,可观察页面渲染进程实际的内存占用和GPU内存占用情况(显存占用情况)。 

3、谷歌浏览器怎么手动开启硬件加速?

  • 步骤1:打开谷歌浏览器并在地址栏输入chrome://settings
  • 步骤2:在“系统”标题下找到“使用硬件加速模式(如果可用)”并开启它
  • 步骤3:重新启动浏览器以使更改生效

4、显卡

        当电脑同时拥有集成显卡和独立显卡时,默认情况下会启用集成显卡,因为集成显卡可以提供基本的图形处理能力,且更节能,若需要更高性能的图形处理能力,需手动切换到独立显卡。

        当电脑出现卡顿、闪屏甚至白屏时,检查显卡,若当前启用集显,可切换为独显后,进行复测。

        小贴士:怎么查看计算机当前启用的是集显还是独立显卡?

        按下“Win+X”组合键打开“任务管理器”,点击“性能”选项卡,观察左侧的侧边栏,如果有多个显卡,则会看到名叫“GPU 0”和“GPU 1”(或者更多)的选项卡。点击每个GPU选项卡,观察右侧窗格中的GPU使用率,如果该显卡正在使用,则会看到GPU使用率波动。

        如下图蓝色框选内容所示,集成显卡通常被标识为Intel,而独立显卡通常被标识为NVIDIA或AMD。

四、案例分析

        收集工作中遇到的页面卡顿、闪屏和白屏场景,列出排查步骤或解决方案,以供参考。

案例1

项目说明
案例描述页面不包含任何3D场景。访问时,页面初始加载正常,随时间推移,页面依次出现卡顿、闪屏,最终整个页面白屏甚至崩溃
确定目标能够准确定位异常原因,尽可能缩小异常排查范围
重要信息初始加载正常、随时间推移出现问题,猜测存在内存泄漏或显存泄漏
提出假设内存泄漏(建议同步观察内存、显存、CPU利用率、GPU利用率)

使用工具:浏览器任务管理器、计算机任务管理器

        如下图所示可观察到CPU利用率、GPU利用率、GPU内存占用情况(GPU内存的使用情况可以准确反映显存的使用情况)

如下图所示可观察页面渲染进程实际的内存占用和GPU内存占用情况(显存占用情况)。

设计实验、验证假设、定位目标

  • 有条件的话,建议准备多台计算机,控制变量,同步测试,多轮测试,直至验证假设,并定位目标
  • 假设实验人员为非开发人员,不具备深入代码层检测能力。
  • 以复现问题为首要目标,复现后,再尽可能的缩小排查范围(不断排除干扰项)

        假设两台同样硬件条件的计算机参与测试,设计信息记录表如下,信息采集间隔根据实际情况设定。

测试机器采集时间内存占用GPU内存(显存)CPU利用率GPU利用率其他指标
测试机110:30xxxxxxxxxxxxxxx
11:00xxxxxxxxxxxxxxx
11:30xxxxxxxxxxxxxxx
测试机210:30xxxxxxxxxxxxxxx
11:00xxxxxxxxxxxxxxx
11:30xxxxxxxxxxxxxxx

第一轮测试:

        描述:以复现问题为主要目标,测试机1和测试机2部署、运行并访问相同的前端服务,观察、记录信息。

        结论:假设一轮测试已复现出卡顿、闪屏现象,且明显观察到内存占用升高,其他指标正常,则确定为内存泄漏

第二轮测试:

        描述:以找出内存泄漏位置为主要目标,采用二分法。测试机1和测试机2分别部署一套前端服务,要求,测试机1删除页面一半内容,保留一半内容,例如保留左侧内容。测试机2同样删除一半,保留一半,例如保留右侧内容(两台测试机保留的内容不要重复)。观察、记录信息。

        结论:二轮测试结束后,观察两台测试机数据,内存没有增长的则表示观测图表正常,将内存出现异常的测试机观测图表继续二分,进行第三轮测试

第三轮测试:重复第二轮步骤

协调开发资源

        经上述实验,确定为内存泄漏,且可将异常范围圈定在几个组件或功能之间,此时可以申请研发介入,进一步的定位代码层面问题,并优化。

案例2

项目说明
案例描述页面通过iframe嵌入3D场景,同时存在视频和动态图片。访问页面时,有轻微卡顿、偶发闪屏,长时间运行下依旧如此
重要信息很稳定出现异常,异常不受运行时间影响或影响很小忽略不计
以往项目内存不足或显存不足,或二者都有的情况都遇到过

使用工具:浏览器任务管理器、计算机任务管理器(与案例1相同)

解决方法1:尽可能减小视频和动态图片的文件大小、实际分辨率

        文件大小协调设计师处理。

        保证展示尺寸不变,降低实际分辨率,可设置低分辨率,然后使用scale放大到原尺寸。

解决方法2:检查3D场景分辨率,保证展示效果的前提下,尽可能降低实际分辨率

        降低3D场景的分辨率可以减少图像处理和渲染所需的计算量,从而有效降低内存和显存的消耗。保证展示尺寸不变,降低实际分辨率,可设置低分辨率,然后使用scale放大到原尺寸。

解决方案3:将视频文件和动态图片在页面中的层级调高,减小对其他组件的影响

解决方案4:将当前不展示的视频文件和动态图片移除,需要展示的时候动态添加

解决方案5:升级内存和显存

        很稳定的出现异常,时间因素影响忽略不计,说明内存和显存不存在泄漏问题,观察内存和显存使用情况,若发现内存或显存不够,以上四种方案都不采用的情况下,可直接升级硬件配置。

案例3

项目说明
案例描述页面通过iframe嵌入3D场景,初始访问正常,随时间推移,页面出现卡顿闪屏,最终iframe窗口崩溃,但主页面正常
确定目标能够准确定位异常原因,尽可能缩小异常排查范围
重要信息1.随时间推移出现异常,且异常慢慢加重   2.iframe窗口崩溃   3.主页面正常
提出假设3D场景存在内存泄漏或显存泄漏,主页面本身无异常

使用工具:浏览器任务管理器、计算机任务管理器(与案例1相同,不多赘述)

设计实验、验证假设、定位目标

  • 有条件的话,建议准备多台计算机,将主页面和3D场景分开单独测试
  • 假设实验人员为非开发人员,不具备深入代码层检测能力
  • 以复现问题为首要目标

        假设三台同样硬件条件的计算机参与测试,设计信息记录表如下,信息采集间隔根据实际情况设定。

测试机器测试内容采集时间内存占用GPU内存(显存)CPU利用率GPU利用率
测试机1主页面+3D场景10:30xxxxxxxxxxxx
11:00xxxxxxxxxxxx
11:30xxxxxxxxxxxx
测试机2单独运行主页面10:30xxxxxxxxxxxx
11:00xxxxxxxxxxxx
11:30xxxxxxxxxxxx
测试机3单独运行3D场景10:30xxxxxxxxxxxx
11:00xxxxxxxxxxxx
11:30xxxxxxxxxxxx

测试机1:

        目标:以复现问题为主要目标,观察、记录信息。

        结论:一段时间后,出现卡顿,继续一段时间,出现闪屏,继续一段时间,iframe窗口崩溃,主页面正常,则判断确实存在资源泄漏。根据记录表,观察内存和显存的占用情况,确定是内存泄漏,还是显存泄漏,还是二者皆有。

测试机2:

        目标:移除3D场景,单独测试主页面(根据出问题的现象,可初步判断主页面本身没有问题,但仍需测试,用数据再验证一遍)

        结论:持续运行一段时间,主页面无异常,采样数据平稳,无较大波动,则说明主页面确实无异常

测试机3:

        目标:移除主页面,单独测试3D场景

        结论:一段时间后,出现卡顿,继续一段时间,出现闪屏,继续一段时间,3D场景白屏或崩溃。观察记录表,你会发现,测试机3出现问题的时间要比测试机1晚,但仍会出现,这是因为单独访问3D场景,没有页面与之竞争资源,所以坚持的时间可能会更久。

协调开发资源

        结合测试机123的情况,可得出结论,确定3D场景存在内存泄漏或显存泄漏,此时可以申请研发介入,进一步的定位代码层面问题,并优化。

        小贴士:页面中通过iframe嵌入存在资源泄漏的3D场景,出现异常时,为什么会出现仅iframe窗口白屏或崩溃,而主页面正常的现象?

        通过iframe嵌入第三方页面时,主页面和子页面是两个独立的页面,各自拥有独立的GPU进程和渲染进程,二者之间资源隔离,使用的内存和显存资源并非共享,它们之间的数据交互也是通过消息传递实现的,而非共享内存空间。

        这种设定是出于安全考虑,因为iframe嵌入的第三方页面可能来自不可信的源,因此为了保护主页面安全,不允许它们直接共享内存和显存。主页面和子页面会竞争计算机的内存和显存资源,所以才会出现实验中测试机1可能会比测试机3更快出现问题的情况。

案例4

项目说明
案例描述页面通过iframe嵌入3D场景,初始访问正常,随时间推移,页面出现卡顿闪屏,慢慢的,最终整个浏览器页面崩溃
重要信息1.随时间推移出现异常,且异常慢慢加重   2.整个浏览器页面崩溃
提出假设主页面和3D场景均可能存在内存泄漏或显存泄漏

        案例4与案例3相似,唯一区别是案例4并非是仅iframe窗口崩溃,而是整个页面崩溃。

        此时,主页面和3D场景均可能存在资源泄漏情况。主页面崩溃不能直接断定是主页面单方面出现资源泄漏,因为子页面资源泄漏严重或脚本报错的时候,也是有可能造成主页面崩溃的。所以,主页面和3D场景需要分别单独测试。

案例5

项目说明
案例描述主页面通过iframe嵌入3D场景,在分辨率3840*2160的屏上投放,3D场景直接无法正常加载

原因解释

        基于WebGL的3D场景对分辨率有要求,水平最高不要超过3840,垂直不要超过1080,超出范围后,资源消耗加大,不能保证正常显示。分辨率越小,资源消耗越低。所以在保证显示效果的前提下,应尽量降低分辨率。

        小贴士:基于WebGL3D场景为什么不支持高分辨率下展示?

        WebGL需要大量的内存和显存来存储和渲染高分辨率的图像,如果内存和显存不足,很容易发生溢出,导致页面崩溃。

解决方案1

pixelRatio属性默认值为1,可以直接通过减小该属性值来降低3D场景的分辨率。

pixelRatio=0.25 // 表示将分辨率缩小为原来的四分之一
pixelRatio=2 // 表示屏幕的分辨率是原来的两倍

小贴士:pixelRatio是什么意思?

        pixelRatio是设备像素比(物理像素/逻辑像素),表示屏幕上一个逻辑像素占用多少个物理像素,默认值为1。pixelRatio可以用来衡量屏幕的分辨率,以便确定图像的清晰度和显示效果。

        同一个页面,pixelRatio数值越大,分辨率越高,渲染效果越清晰,内存和显存消耗越大。

        同一个显示屏,同一个前端页面,我们通过代码降低分辨率,指的是降低物理分辨率,即减少屏幕上的物理像素数量,从而使图像变得模糊。

解决方案2

        3D场景不做变动,主页面嵌入3D场景时,在保证展示效果的前提下,通过降低3D场景实际分辨率的方式,从而降低内存和显存的消耗(设置小的分辨率,然后通过scale放大)。

五、注意事项

方法论

  • 遇到卡顿、闪屏、白屏问题时,不要上来就想着怎么解决,请首先保证能把问题稳定复现出来,用数据说话
  • 要学会设计实验,控制变量,不断缩小排查范围

谷歌浏览器

  • 确保浏览器开启硬件加速

电脑显卡

  • 电脑同时拥有集显和独显,默认启用集显,当页面出现卡顿、闪屏甚至白屏时,检查显卡使用情况,确保独显开启

iframe加载时白块及刷新白色背景问题解决
08-16
在使用iframe时,iframe背景为白块,刷新时也会闪过白块。如果刷新时间长,就会一直出现白块,让人很烦恼,通过网上搜资料,测试很多依然没有效果,最终解决方法如下所示,注意主要针对IE浏览器测试。
闪屏和引导页的功能全面
04-03
闪屏和引导页的功能全面源码,功能简介:闪屏: 渐变的透明度 判断网络,无网络弹出对话框设置网络 判断第一次进入 仅第一次进入进入引导页。引导页: 全自动的添加 page页和指示器 只需要设置显示的图片即可 方便了后期维护 自动创建桌面快捷方式 到最后一页自动添加按钮 主页:清除配置,现在引导页的源码很多 我的源码区别在于 只要设置图片就行了 指示器 viewpage页都是自动添加的 这样在以后升级版本 时 如果引导页数目发生变动 只需要替换图片就行了 本人代码全部详细注释 希望能对初学者带来帮助!
前端会造成内存泄漏的操作有哪些?页面卡住的原因
qq_17335549的博客
01-07 620
如果你发现前端页面卡住了,打开开发者工具也很卡,刷新页面也无效、或者关闭 tab页也很费劲,多半是有内存泄漏。内存泄漏其实就是浏览器的内存被占用很多,导致页面奔溃。
Java web应用性能分析服务端慢之前端页面
最新发布
为无为,事无事,味无味。
04-19 1035
大多数的卡顿场景,都是由于页面渲染掉帧导致的。因此针对页面的更新渲染,不管是 DOM 渲染还是 Canvas 渲染,需要注意将帧率保持在 50~60 FPS 的范围内,这样用户的体验会流程很多。当然,如果我们的代码里有死循环和回调嵌套,造成页面直接卡死,也是卡顿的一种情况,但这就又是另外一个故事。参考下面文章关于前端页面慢的原因,小结如下:1、过多的http请求解决办法:减少http请求。
页面出现长时间白屏的原因?和如何优化?
weixin_58645763的博客
11-10 3037
网页出现白屏排除网络等其他原因的话,是由阻塞解析和阻塞渲染造成的。 一般都是因为css加载或者js加载造成。 css加载会造成阻塞渲染,如果把引入css(link标签)放在head里面,因为加载时间过长,会出现白屏现象。 js加载会造成阻塞渲染,如果把引入js放在前面,也可能会因为加载时间过长,出现白屏现象。 解决办法 在引入js标签中添加async或者defer实现异步加载可避免上面的现象。 async和defer的区别是 async的存在不影响dom的解析和其他资源的加载,特例独行,不保证
【学习笔记】网页出现白屏可能的原因与优化方法
qq_37704442的博客
07-20 5125
【学习笔记】网页出现白屏可能的原因与优化方法
Vue3 这种方式优化白屏时间超级好用,我不允许你还不知道!
DuyiZiChen的博客
06-13 974
前端优化之白屏问题是一个非常重要而又常见的问题,我们需要根据不同场景采取不同策略。本文介绍了其中一种场景和优化方法,即利用 defer 函数来控制组件何时进行渲染,让页面内容逐步展现出来。从而提高用户感知效率和体验。当然还有其他优化方法和技巧。比如使用骨架屏、预加载、懒加载、代码分割等等。前端优化是一个永无止境而又充满乐趣和挑战性的领域,希望本文能给你提供一些启发和参考。文章的最后,子辰向大家重点推荐一下我们渡一的《大师课》,本文读者,大家可以来免费领取这套课程包含事件循环V8引擎原理。
前端如何解决白屏问题
lihui61357457的博客
10-15 6172
【代码】前端如何解决白屏问题。
前端白屏出现的原因及一些解决方式
weixin_53058401的博客
11-27 9580
前端白屏出现的原因及一些解决方式
vue 项目首页加载速度优化以及解决首页白屏问题
热门推荐
郝峰vip的博客
12-14 1万+
Vue项目优化首页加载速度达到秒开以及解决首页白屏问题
前端白屏的检测方案,让你知道自己的页面白了
weixin_45821809的博客
02-24 4102
前端白屏的检测方案
性能优化】作为一名前端工程师,网页白屏了该怎么做
qq_53512708的博客
03-01 831
上周面试被问到这个问题,磕磕绊绊地答了一点,写个博客记录一下解决的主要思路。
闪屏1.bat
12-30
闪屏慎用! 关闭方法自查
Android闪屏效果实现方法
01-05
在这个方法里传递一个Runnable对象和一个延迟的时间。该方法实现了一个延迟执行的效果,延迟的时间由第2个参数指定,单位是毫秒。第一个参数是Runnable对象,里面包含了延迟后需要执行的操作。demo代码如下: Java...
Android实现闪屏及注册和登录界面之间的切换效果
09-01
主要介绍了Android实现闪屏及注册和登录界面之间的切换效果,实现思路是先分别实现闪屏、注册界面、登录界面的活动,再用Intent将相关的活动连接起来,实现不同活动之间的跳转,对android 实现闪屏和界面切换感兴趣...
Android实现闪屏页效果
01-20
本文实例为大家分享了Android实现闪屏页效果的具体代码,供大家参考,具体内容如下 1.效果图 2.闪屏页逻辑及布局 2.1 activity_splash.xml <?xml version=1.0 encoding=utf-8?> <FrameLayout xmlns:...
页面首次进入时可能会有白屏的问题
czlj1998的博客
10-01 846
如果页面中的脚本和样式表是通过同步加载的方式加载的,当某个脚本或样式表下载和执行时,会阻塞后续资源的加载和渲染,导致白屏。:当页面中的资源(如CSS、JavaScript、图片等)过多或者过大时,浏览器需要更长的时间来加载这些资源,导致页面出现白屏。:如果页面中的JavaScript代码在页面加载过程中执行的时间过长,会导致页面无法正常渲染,出现白屏。针对这些原因,可以采取相应的解决方案,例如:优化资源加载、异步加载脚本和样式表、优化JavaScript代码、合理设置缓存策略等,以减少白屏问题的发生。
前端性能优化——页面加载白屏时间长的原因有什么,页面白屏如何优化?
qq_42445025的博客
06-25 1133
浏览器下载HTML后,首先解析头部代码,进行样式表下载,然后继续向下解析HTML代码,构建DOM树,同时进行样式下载。因为JavaScript 会阻塞 DOM 生成,而样式文件又会阻塞 JavaScript 的执行,所以在实际的工程中需要重点关注 JavaScript 文件和样式表文件,使用不当会影响到页面性能的。JavaScript 会阻塞 DOM 生成,而样式文件又会阻塞 JavaScript 的执行,所以在实际的工程中需要重点关注 JavaScript 文件和样式表文件,使用不当会影响到页面性能的。
前端白屏问题_H5白屏问题
weixin_39569753的博客
12-19 2680
前言前阵子弄了灰度环境,H5这边需要给灰度环境的接口加上Cookie,配置的期间遇到一些Cookie问题以及白屏在此记录下1、H5请求接口带不上Cookie解决方法:前端使用了 webpack 对项目进行打包,其中 crossOriginLoading 这一项配置的是 anonymous,由于配置错了,导致Cookie带不上`crossOriginLoading`此选项可以启用跨域加载(cross...
DialogFragment闪屏
09-21
对于DialogFragment闪屏的问题,可能有几个原因导致。首先,闪屏可能是由于DialogFragment的创建和显示过程中的延迟引起的。在DialogFragment显示之前,可能会有一些耗时的操作,如数据加载或其他处理逻辑。这些操作可能会导致DialogFragment在显示之前出现短暂的闪屏。 另一个可能的原因是DialogFragment的动画设置不正确。如果你设置了进入和退出动画,并且这些动画执行时间太长,也会导致闪屏。你可以尝试减少动画的执行时间或更改为更简单的动画效果来解决这个问题。 最后,闪屏可能与设备性能或资源占用有关。如果设备性能不足或存在内存压力,DialogFragment的创建和显示过程可能会受到影响,从而出现闪屏。在这种情况下,你可以考虑优化代码、减少资源占用或调整相关配置以改善性能

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • Vue—babel.config.js配置文件详解 43146
  • Vue—组件实例之$once 21133
  • Vue—组件实例之$createElement 16290
  • a标签详解 12684
  • Java—java.util.calendar类详解 12465

分类专栏

  • Vue 付费 57篇
  • CSS 27篇
  • 前端大类 8篇
  • Java 3篇
  • 谷歌内核的浏览器 1篇
  • npm 3篇
  • Node 1篇
  • ES6 5篇
  • Ionic 111篇
  • ElementUI 3篇
  • Vue-Vant 3篇
  • ant-design-vue 5篇
  • Git 3篇
  • Angular 21篇
  • Layui 1篇
  • TypeScript 4篇
  • JavaScript 65篇
  • Html 28篇

最新评论

  • npm—常用命令

    Rorschach09: 查看npm的registry配置项,应该是 npm config get registry 吧

  • Vue—babel.config.js配置文件详解

    Binbin?????: 人都傻了表情包

  • table组件—列同时使用ellipsis和fixed导致的错位问题

    v15179462375: 博主这个方法没试成功。下面这个有效:https://blog.csdn.net/Fs670267542/article/details/123628887?spm=1001.2101.3001.6650.6&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-6-123628887-blog-120975030.235%5Ev31%5Epc_relevant_default_base3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-6-123628887-blog-120975030.235%5Ev31%5Epc_relevant_default_base3&utm_relevant_index=12

  • npm—解决内存溢出的问题

    完 颜氏抗打: 示例写的是内存大小为3072,如果项目比较大,可以在package.json中的limit写为10240

  • npm—解决内存溢出的问题

    完 颜氏抗打: 如果接下来报错"node --max-old-space-size=10024不是内部或外部命令", 请在node_modules下搜索"%_prog%",替换为%_prog% 即替换去掉冒号

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • Javascript常用代码片段-03
  • 单点登录SSO
  • 谷歌浏览器调试技巧
2024年1篇
2023年14篇
2022年2篇
2021年21篇
2020年130篇
2019年183篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司长春seo网站推广果洛关键词排名包年推广推荐宿州设计网站公司保山网络营销报价辽阳网站推广系统哪家好株洲建网站多少钱红河网站优化软件多少钱张北网站排名优化哪家好通化SEO按天计费湛江推广网站公司天津营销网站多少钱光明网站排名优化价格玉树模板推广白城百度爱采购庆阳营销网站诸城SEO按天计费推荐南澳网站关键词优化报价益阳网站优化软件哪家好吉祥网络营销亳州网站制作公司临夏百度网站优化排名多少钱中山网站排名优化报价保定百度竞价包年推广张北网站推广方案价格绵阳建站报价吉祥关键词排名报价抚顺百度竞价常州建网站推荐平湖建网站公司舟山百度竞价推荐歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化