前言

前阵子弄了灰度环境,H5这边需要给灰度环境的接口加上Cookie,配置的期间遇到一些Cookie问题以及白屏在此记录下

1、H5请求接口带不上Cookie

解决方法:前端使用了 webpack 对项目进行打包,其中 crossOriginLoading 这一项配置的是 anonymous,由于配置错了,导致Cookie带不上

`crossOriginLoading`此选项可以启用跨域加载(cross-origin loading) chunk。
`false`- 禁用跨域加载
`anonymous` - 启用跨域加载。当使用 anonymous时,发送不带凭据(credential)的请求。在加载此脚本资源时不会带上用户的 Cookies
`use-credentials`- 启用跨域加载。发送带凭据(credential)的请求。在加载此脚本资源时会带上用户的 Cookies

2、H5白屏,js 代码报错导致的

解决方法:这种报错最明显也是最简单的一种,直接复制链接在网页打开,F12进入开发者模式,观察 console 的报错并解决对应的问题即可

3、H5白屏,CDN问题

解决方法:由于部分CDN加速区域不同,导致各个区域请求 js、css 等资源响应的速度不同,部分可能请求超时,(比如当时有个客户是国外的,打开我们的 H5 链接一直白屏,而我们这边却正常)这种情况只能联系CDN提供方看能否解决,此外也可以用 17测 进行资源请求的测试

4、H5白屏,微信扫码进入页面白屏

解决方法:由于微信有缓存大小的限制,前端若在缓存中存放了太多的数据的话,可能会导致缓存失效,进而白屏,这一点是在清除微信缓存之后无意间找到的解决方法

5、H5白屏,部分苹果手机用户白屏

解决方法:当时由于前端项目比较多,打包的时候得配置好对应的请求域名,相对繁琐且容易出错,这里就使用了 nginx 重写的规则(前端无需写上对应的资源域名),将对应的环境域名拼接到对应的资源前,此时通过浏览器观察可以看到这些资源先通过301跳转,再请求对应域名的资源。后期发现这种做法出现了部分苹果手机用户进入某些页面的时候白屏,这时候猜想可能是不同手机浏览器机制的问题,Safari浏览器的301机制可能跟其他浏览器的不同,又将前端的请求域名通过301跳转的机制换掉之后就解决了

参考:

https://www.cnblogs.com/joyco773/p/9049623.html

https://www.jianshu.com/p/561a8720e762

H5白屏问题的更多相关文章

  1. 荷小鱼 x mPaaS | 借助 H5 容器改善 App 白屏、浏览器兼容等问题

      随着5G.大数据.人工智能技术的应用,各类传统行业纷纷大力推进数字化转型升级. 而受疫情的影响,教育行业也在大幅加速线上化转型进程,各类在线教育应用也在借助各种力量拓张自己的移动端市场领域. 「荷 ...

  2. 提升html5的性能体验系列之一避免切页白屏

    窗体切换白屏的现实问题 HTML5的性能比原生差很多,比如切页时白屏.列表滚动不流畅.下拉刷新和上拉翻页卡顿.在低端Android手机上,很多原生App常用的功能和体验效果都很难使用HTML5技术模拟 ...

  3. 移动 H5 首屏秒开优化方案探讨

    转载bang大神文章,原文<移动 H5 首屏秒开优化方案探讨>,此文仅仅用做自学与分享! 随着移动设备性能不断增强,web 页面的性能体验逐渐变得可以接受,又因为 web 开发模式的诸多好 ...

  4. android studio你可能忽视的细节——启动白屏?drawable和mipmap出现的意义?这里都有!!!

    android studio用了很久了,也不知道各位小伙伴有没有还在用eclipse的,如果还有,楼主真心推荐转到android studio来吧,毕竟亲儿子,你会知道除了启动速度稍微慢些,你找不到一 ...

  5. ionic ios iframe 白屏

    之前碰到一个问题: 在ios下边使用iframe出现白屏问题 android下边正常 原因是ios对app打开外部网页有限制需要取消限制 解决方法 1.确认添加whitelist 插件 2.在conf ...

  6. 解决Unity5+Vuforia+Network本地联机发布到Android上白屏的问题

    Unity5+Vuforia+Network本地联机,在Android下点击联机,然后识别模型就出现白屏,点击屏幕上相应位置的按钮(已白屏,但点击该看不见的按钮)还是能起作用,如跳转到其他场景正常. ...

  7. MUI APP防止登陆页面出现白屏

    最近在用MUI开发APP,总体效果,在IOS上,是完美的,但是在低端的Android手机上,就会出现性能问题,我个人觉得最严重的是,就是首页,就是APP打开的第一个页面,在iOS上,由于性能高,所以, ...

  8. 【小贴士】【stringify神BUG】【localstorage失效】【消灭Safari alert框】【是否延迟加载】【页面10px白屏】

    前言 最近碰到几个恶心问题,也发现一点优化技巧,以及对Hybrid知识的一些整理,这里便一并拿出来做分享了,关于Hybrid的调试,会是我今后一个重点 我的博客首先是学习笔记,方便自己做知识沉淀,以后 ...

  9. ionic 白屏

    昨天在发布新app的时候发现app在高版本的android的时候发现没有问题,在低版本的android 的时候发现存在白屏的情况,在run中alert,不能弹框,run不能运行, 参考这篇文章  ht ...

随机推荐

  1. Git之仓库管理

    介绍以及安装: Git 是一个开源的分布式版本控制软件,用以有效.高速的处理从很小到非常大的项目版本管理. Git 最初是由Linus Torvalds设计开发的,用于管理Linux内核开发.Git ...

  2. 【leetcode】1154. Day of the Year

    题目如下: Given a string date representing a Gregorian calendar date formatted as YYYY-MM-DD, return the ...

  3. linux运维、架构之路-CentOS7

    一.CentOS7介绍 1.CentOS7使用起来最大的变化就是服务管理 2.systemd是linux下的一种init软件,开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化 ...

  4. for-in语句和with语句、break和continue语句

    for-in语句 for-in语句是一种精准迭代语句,可以用来枚举对象的属性,用以遍历一个对象的全部属性. for…in声明用于对数组或者对象的属性进行循环操作: for…in循环中的代码每执行一次, ...

  5. MySQL两个时间相减

    SELECT TIMESTAMPDIFF(MONTH,'2009-10-01','2009-09-01'); interval可是: SECOND 秒 SECONDS MINUTE 分钟 MINUTE ...

  6. php array_shift()函数 语法

    php array_shift()函数 语法 作用:删除数组中第一个元素,并返回被删除元素的值.富瑞联华 语法:array_shift(array) 参数: 参数 描述 array 必需.规定数组. ...

  7. 【bzoj1398】Vijos1382寻找主人 Necklace

    *题目描述: 给定两个项链的表示,判断他们是否可能是一条项链. *输入: 输入文件只有两行,每行一个由0至9组成的字符串,描述一个项链的表示(保证项链的长度是相等的). *输出: 如果两条项链不可能同 ...

  8. window cmd 命令行下创建文件夹和文件

    新建文件夹命令: makedir 文件名 新建文件命令: type null> 文件名.文件类型 链接

  9. Oracle-存储过程实现更改用户密码

    --调用存储过程实现更改DB用户密码 CREATE OR REPLACE PROCEDURE MODUSERPW(USER_NAME VARCHAR2,USER_PW VARCHAR2)ISSQLTX ...

  10. curl_init raw传递json参数

    protected function curl_vm_record($url, $platform, $authorization, $jsonStr) { $ch = curl_init(); cu ...