详解微信小程序「渲染层网络层错误」的解决方法


Posted in Javascript onJanuary 06, 2021

问题描述:

情况是这样的,我需要在小程序中通过image标签显示三张我的图片,毫无疑问,其重点部分肯定在image的src属性上,请看思路分析:

我们可以新建一个专门放图片的文件夹,然后将我们项目所需要的图片文件全部放到这里。但是这会引发一个问题:微信官方对上线的小程序有大小的限制,所以如果你只是本地跑跑,那无可厚非,你开心就好;如果要做上线,这种方法的可行度不高;

使用外部链接。成功发布过小程序的小伙伴们都知道,外部链接必须使用https协议,且所使用域名必须设置在request合法域名列表中,这就为我们指明了三个途径:

  • 使用图床来存储我们的图片文件,然后使用其链接就好;
  • 自建网站,但必须使用https协议(下文中所使用外部图片均存储在我自己的服务器上);
  • 使用微信小程序云存储(我认为很香的方法咯)

开发环境基本信息:

微信开发者工具:RC 1.03.2011111

调试基础库:2.14.1

出现bug的代码及报错信息:

<image src="https://www.shipudong.com/otherFiles/MyImage/%E7%9F%B3%E7%92%9E%E4%B8%9C.jpg"></image>
<image src="https://www.shipudong.com/otherFiles/MyImage/%E7%9F%B3%E7%92%9E%E4%B8%9C_hahaCoder.jpg"></image>
<image src="https://www.shipudong.com/otherFiles/MyImage/%E7%9F%B3%E7%92%9E%E4%B8%9C_book.jpeg"></image>

首先,我们明确一点哈,上述三行代码没有一丢丢的语法错误哈~

详解微信小程序「渲染层网络层错误」的解决方法

既然没有语法错误,为什么会报错呢?

究其原因,还是因为异步请求需要一定的时间,而小程序一进页面就开始加载,请求速度没跟上,这时页面显示加载的时候image里面的值是空的,就会出现渲染层、网络层错误。

所以既然是加载速度的原因,我们完全可以让其完全加载完成之后在显示,所以我们可以通过拖延加载时间的方法来解决这个bug,小伙伴们是不是想到了定时器、async等,别,千万别,就是个图片显示的事,用不着大动干戈,小心走火入魔,哈哈哈,接下来我们介绍两种比较性价比比较高的方法。

解决方案:

修改调试基础库版本

在开发环境基本信息一部分中,我们已说明上述报错代码所依赖的调试基础库版本信息,这里我们不需要修改任何代码,只需要修改一下版本信息即可让代码跑通,请看修改信息:

详解微信小程序「渲染层网络层错误」的解决方法

使用微信小程序云开发

关于云开发环境的初始化,这里我们不再赘述,我们直接贴出云函数的实现代码,以及本地获取可用https链接的代码,请看代码:

首先,我们上传三张我们项目所需要的图片文件,请看:

详解微信小程序「渲染层网络层错误」的解决方法

接着我们在我们新建的云函数中编写如下代码,并对其进行增量上传、更新文件(我们所定义的云函数名为ImgURL):

详解微信小程序「渲染层网络层错误」的解决方法

// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
 const fileList = [
  'cloud://hahacoder-2gfmedh2dc1701dd.6861-hahacoder-2gfmedh2dc1701dd-1304334959/石璞东.jpg', 
  'cloud://hahacoder-2gfmedh2dc1701dd.6861-hahacoder-2gfmedh2dc1701dd-1304334959/石璞东_hahaCoder.jpg',
  'cloud://hahacoder-2gfmedh2dc1701dd.6861-hahacoder-2gfmedh2dc1701dd-1304334959/石璞东_book.jpeg'
  ]
 const result = await cloud.getTempFileURL({
   fileList: fileList,
  })
   return result.fileList
}

接着我们在本地js文件中编写如下代码:

data: {
  imgURL:[]
 },
 /**
  * 生命周期函数--监听页面加载
  */
 onLoad: function (options) {
  
  let that = this
  wx.cloud.callFunction({
   name:"ImgURL",
   success(res){
    that.setData({
     imgURL : res.result
    })
   }
  })
 }

最后,我们来到wxml页面,通过列表渲染来展示这三张图片,请看代码:

<view class="image" wx:for="{{imgURL}}" wx:key="index">
 <image src="{{item.tempFileURL}}" mode="scaleToFill"></image>
</view>

嗯,最后完美显示了出来,好帅呀?

详解微信小程序「渲染层网络层错误」的解决方法

到此这篇关于详解微信小程序「渲染层网络层错误」的解决方法的文章就介绍到这了,更多相关小程序 渲染层网络层错误内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
利用jQuary实现文字浮动提示效果示例代码
Dec 26 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
Dec 13 Javascript
javascript实现随机显示星星特效
Jan 28 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
Mar 09 Javascript
微信小程序中的swiper组件详解
Apr 14 Javascript
ZeroClipboard.js使用一个flash复制多个文本框
Jun 19 Javascript
关于页面刷新vuex数据消失问题解决方案
Jul 03 Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
Oct 04 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
May 28 Javascript
微信小程序绘制图片发送朋友圈
Jul 25 Javascript
vue路由传参的基本实现方式小结【三种方式】
Feb 05 Javascript
vue实现PC端分辨率适配操作
Aug 03 Javascript
JavaScript 中的六种循环方法
Jan 06 #Javascript
JavaScript的一些小技巧分享
Jan 06 #Javascript
详解Vue2的diff算法
Jan 06 #Vue.js
如何利用JavaScript编写一个格斗小游戏
Jan 06 #Javascript
vuex的使用步骤
Jan 06 #Vue.js
一篇文章看懂JavaScript中的回调
Jan 05 #Javascript
原生js中运算符及流程控制示例详解
Jan 05 #Javascript
You might like
PHP输出控制功能在简繁体转换中的应用
2006/10/09 PHP
PHP读取网页文件内容的实现代码(fopen,curl等)
2011/06/23 PHP
php中限制ip段访问、禁止ip提交表单的代码分享
2014/08/22 PHP
简述php环境搭建与配置
2016/12/05 PHP
js cookies实现简单统计访问次数
2009/11/24 Javascript
测试JavaScript字符串处理性能的代码
2009/12/07 Javascript
jQuery Dialog 弹出层对话框插件
2010/08/09 Javascript
jQuery.query.js 取参数的两点问题分析
2012/08/06 Javascript
js 获取(接收)地址栏参数值的方法
2013/04/01 Javascript
如何使用json在前后台进行数据传输实例介绍
2013/04/11 Javascript
js实现简单的星级选择器提交效果适用于评论等
2013/10/18 Javascript
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
jQuery和AngularJS的区别浅析
2015/01/29 Javascript
可以浮动某个物体的jquery控件用法实例
2015/07/24 Javascript
js获取新浪天气接口的实现代码
2016/06/06 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
2017/04/20 Javascript
vue.js实现价格格式化的方法
2017/05/23 Javascript
react-native动态切换tab组件的方法
2018/07/07 Javascript
JavaScript实现表单注册、表单验证、运算符功能
2018/10/15 Javascript
jQuery实现合并表格单元格中相同行操作示例
2019/01/28 jQuery
用JavaScript实现贪吃蛇游戏
2020/10/23 Javascript
[52:27]2018DOTA2亚洲邀请赛 3.31 小组赛B组 paiN vs Secret
2018/04/01 DOTA
python僵尸进程产生的原因
2017/07/21 Python
Python第三方库face_recognition在windows上的安装过程
2019/05/03 Python
Python处理mysql特殊字符的问题
2020/03/02 Python
雅诗兰黛澳大利亚官网:Estée Lauder澳大利亚
2019/05/31 全球购物
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
一些.net面试题
2014/10/06 面试题
母亲节演讲稿
2014/05/27 职场文书
供电工程专业求职信
2014/08/09 职场文书
班主任开场白
2015/06/01 职场文书
吧主申请感言怎么写
2015/08/03 职场文书
青年岗位能手事迹材料(2016推荐版)
2016/03/01 职场文书
Nginx搭建rtmp直播服务器实现代码
2021/03/31 Servers
MySQL中InnoDB存储引擎的锁的基本使用教程
2021/05/26 MySQL
Go中使用gjson来操作JSON数据的实现
2022/08/14 Golang