uniapp运行比较慢是什么原因
更新时间:2023-10-23慢的原因一:图片过大
当我们的uniapp页面中存在大量的图片时,经常会导致页面加载缓慢,时间延长,使得用户的体验不佳。所以我们需要注意压缩我们的图片,减少图片的大小。
图片压缩工具:
https://tinypng.com/
慢的原因二:过多异步请求
在uniapp页面中,我们通常会向后端发送请求,包括获取数据和获取图片等等。因此,我们需要在请求数据时优化代码,减少不必要的请求和重复请求。
一种解决方法是使用uni的请求缓存。我们可以在main.js文件中配置拦截器来使用uni的请求缓存:
Vue.prototype.$http.interceptors.response.use(response=> { uni.hideLoading() if (response.data.code==-2) { uni.showToast({ title: '登录已过期!', icon: 'none' }) setTimeout(()=> { uni.navigateTo({ url: '/pages/login/login' }) }, 2000) } let currentTime=Math.floor(new Date().getTime() / 1000) let requestTime=Math.floor(new Date(response.config.timeStamp).getTime() / 1000) if(response.data.code==0) { if (currentTime - requestTime > 3600) { clearToken() } else { uni.setStorageSync(setTokenKey(), response.data.token) uni.setStorageSync(setUserKey(), response.data.user) } } return response }, err=> { uni.hideLoading() return Promise.reject(err) })
慢的原因三:页面渲染过慢
当我们的页面结构较为复杂时,页面渲染时间会很长,影响用户体验。这时候我们可以使用uni的v-if控制元素的渲染,在需要时再加载元素,使用uni的组件化来拆解我们的页面。这能大大减少页面渲染时间,提高页面的性能。
我们以分页请求数据为例,使用uni的v-if控制我们的数据渲染:
{{ item.name }} {{ loadingText }}
慢的原因四:不规范的代码
在开发人员不规范的代码,如未使用合适的命名,未使用合适的缩进,代码中存在死循环等等。这些问题都会导致代码效率低下,影响页面的性能。所以我们需要注意代码的规范化,保证代码的质量。
以下是一个不规范的代码示例:
function test(){ for(i=0;i<10;i++); { alert(i); } } test();
总结
uniapp运行比较慢的主要原因是图片过大、过多异步请求、页面渲染过慢、不规范的代码。我们可以通过压缩图片、减少异步请求、使用vue的mixin实现页面的懒加载、写出代码规范化来优化我们的uniapp。