vue h5 首次打开加载缓慢、白屏几秒后才渲染解决方案 --- 加载启动页

news/2024/7/10 2:47:00 标签: vue, 白屏问题, 启动页

首次打开 web app 应用,都会有一个尴尬的问题,就是加载慢、白屏好几秒。

原生APP 都有一个启动页,那么web app为什么就不能实现呢?或者折中一下,快点实现也可以啊!!!

1、分析问题

web app 之所以打开慢,主要还是渲染的问题:DNS解析 – 服务器交互 – 浏览器页面渲染

我们可以通过cdn引入、去除map文件、异步加载、按需引入、压缩等等方法,这里我就不再阐述了,大家可以自行搜索 Vue项目优化

vue_dom__9">2、vue 虚拟dom 替换

我们大家都知道,vue、react 的双向数据绑定,都是通过用虚拟dom,替换真实dom实现的,不了解的同学,可以戳这里Vue学习 – 双向数据绑定~

那么页面首次加载时,真实的dom肯定会先加载完成,然后根据路由,将对应的页面再渲染。

那么是否可以,在index.html里需改一下呢?

3、index.html

<!DOCTYPE html>
<html lang="">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=750, user-scalable=no">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <title><%= htmlWebpackPlugin.options.title %></title>
  </head>
  <body>
    <noscript>
      <strong>页面加载失败~</strong>
    </noscript>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

4、添加动画

在 id 为 app 的标签里面,添加内容

//html
<div id="app">
    <section class="guide-wrap-app" >
      <section class="main">
        <div class="box">
            <p class="b"></p>
         </div>
      </section>
    </section>
 </div>

//css
<style>
	#app {
	  display: block;
	  min-height: 100%;
	  max-width: 750px;
	  margin: 0 auto;
	  width: 100%;
	  //图片自行填写真实地址
	  background: url('~@/assets/img/back-1.png') no-repeat center;
	  background-size: cover;
	  position: relative;
	}
	.guide-wrap-app{
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        z-index: 999;
      }
      .guide-wrap-app .main{
        height: 100%;
      	display: flex;
        align-items: center;
        justify-content: center;
      }
      .guide-wrap-app  .box{
        width: 521px;
        margin: 0 auto;
        height: 28px;
        border-radius: 14px;
        border: 2px solid #fff;
        background-color: #000;
        box-sizing: border-box;
      }
      .guide-wrap-app  .box .b{
        background-color: #FFDE1E;
        height: 24px;
        border-radius: 12px;
        width: 0px;
        -webkit-animation:  widthFn 1s forwards;
        animation:  widthFn 1s forwards;
      }
      
	@keyframes widthFn {
	  from {
	    width: 0;
	  }
	  to {
	    width: 100%;
	  }
	}
</style>

5、总结

写到这里,其实已经完成了,但是还有点不太完美的地方。

就是我们不知道实际加载完成的时间为多少,因此我写的是 1秒的动画时间,其实这到也没问题,因为你可以理解为 ,超出1秒一直为 99%的状态

还有的同学可能会问,需不需要等加载完成后,隐藏该动画。
答案是,不需要,因为咱们是写在 app 标签里的,等实际加载完成后,app里的内容都是替换调


http://www.niftyadmin.cn/n/1558115.html

相关文章

Winform异步解决窗体耗时操作(Action专门用于无返回值,Func专门用于有返回值)...

http://blog.csdn.net/config_man/article/details/25578767 [csharp] view plaincopy#region 调用timer控件实时查询开关机时间 private void timer1_Tick(object sender, EventArgs e) { string sql "SELECT startTime,endTime,AMTusername,AMTpassword,AMTip F…

Linux服务器安装配置Nginx -- 反向代理

Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器&#xff1b;同时也是一个IMAP、POP3、SMTP代理服务器&#xff1b;Nginx可以作为一个HTTP服务器进行网站的发布处理&#xff0c;另外Nginx可以作为反向代理进行负载均衡的实现。 Nginx 安装 1、安装编译工具及…

解决方案:Oracle的 DB Link 问题及2019年4月前升级路线详述

2019独角兽企业重金招聘Python工程师标准>>> 这个问题严重吗&#xff1f; 我想首先回答一下这个问题&#xff0c;可能很多人心存疑惑&#xff0c;这个问题严重吗&#xff1f;有多严重&#xff1f;会影响到我吗&#xff1f; 首先&#xff0c;我们分析这个问题的起因就…

vue h5网页点击按钮 -- 跳到微信小程序 wx-open-launch-weapp;onMenuShareAppMessage 分享图片不显示,且方法已废弃

h5网页点击按钮&#xff0c;唤醒微信小程序是否可以做&#xff1f; 可以&#xff01;&#xff01;&#xff0c;就是有点限制。 通过wx-open-launch-weapp就可以实现&#xff0c;但是限制 微信服务号才可以使用。也就是说必须是微信环境下。 文章最下边&#xff0c;有知识扩展…

Nginx 缓存命中率

# 在http头部显示命中方式 location ~* ^.*\.(js|ico|gif|jpg|jpeg|png)$ {proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_connect_timeout 180;proxy_s…

FinalShell 如何配置私钥--登录跳板机

上一章我们讲过Mac 代替Xshell &#xff0c;超级好用的FinalShell&#xff0c;我们详细的讲解了如何连接服务器以及用密码登录跳板机。 这一章&#xff0c;我们一起学习一下&#xff0c;私钥登录跳板机 一、新建一个SSH连接 二、添写内容 如图按着规则填写就OK了

git 修改分支名称 --- git branch -m

对git不了解的小伙伴可以戳这里&#xff1a; git合并代码 git对大小写文件不敏感 git 强制覆盖远程分支 --force git 大家肯定都用到过&#xff0c;在开发的时候&#xff0c;用它进行版本控制&#xff0c;这里就要提到分支了。 新建分支 // xxx 为分支名 git checkout -b xx…

easy-mock无法使用了,没关系可以fastmock

mock数据对于前端的好处&#xff0c;这里就不说了。 网上虽然有很多使用mock的方法&#xff0c;但是最好的还是在线使用可视化工具最完美 相信有些小伙伴也都用过easy-mock&#xff0c;包括我自己也用了好多年&#xff0c;但是前段时间突然发现进不去了&#xff0c;所以又换了…