你们没登录账号,左下角登录一下账号 再刷新试一下
我是本地开发环境下有问题,发布后没问题。我在HbuilderX中登录了账号,重新跑一下项目,可行,前台也不报错了
我也遇到这种情况了。一点头绪都没有。看来uniapp的坑还是比较多的。用户的两部手机都出现这样的情况。而且每次发布版本后,出错的页面不一样。有时是这个页面报错,有时是那个页面报错。
关键报错,还不是弹出原生的错误,都是封装的错误,让我们怎么排查错误,这个太坑了
回复 9***@qq.com: 这边目前解决了吗
能说一下最后怎么解决的吗?
回复 疾风kkk: 我们之前有一个项目线上也出现锅这样的情况,后面是后端那边启用https + 前端这边设置延长请求超时,后面就没复现过了 ,也不知道到底是不是这个起了作用,如果你这边还没解决的话可以试试。
是缓存的问题。每次更新的时候,把服务器上原来的文件都删除了,重新上载新的打包文件就可以了。
没有用的,如果是缓存问题,多刷新几次基本上是可以显示出来的,而且也不可能每次更新都让用户自己去清理缓存的
我这几天也出现这问题,在内置浏览器和chrome上都不行,换了几个网也不行。
请问这个问题解决了吗
回复 8***@qq.com: 怎么解决
请问你是怎么解决的呀!
能说说怎么解决的吗?
老哥,这问题解决了吗??
欲哭无泪
请问楼主解决了吗?
之前每次更新前端的时候,会直接把所有文件覆盖更新到服务器里,由于每次打包的js或者css等文件名称都是不同的,所以这种覆盖更新会导致旧版本的js、css文件也保留,猜测可能是浏览器缓存访问旧版js文件可以访问到,所以不会刷新缓存。后来更新时先把旧版文件全部删除,再更新,就不会出现这个问题了
删除后再更新也是会
回复 4***@qq.com: 有解决吗?
你们是怎么解决的呀!
哪位老哥能给个思路,遇到这个问题,一点头绪都没有。
我也遇到这个问题了,至今无法解决
我也遇到过次问题,如何解决
我也遇到过这个问题。后面慢慢缩小排查范围,发现是vue一处语法问题。我用了“??”去判断,后面改成“||”就行了。在IOS系统下运行是可以的,Android就不行。推测是浏览器内核不一样,支持的语法不一样。
我两个苹果手机,一个 se 一个是 6 plus ,se显示正常,6plus 显示连接超时,点击屏幕重试。
我敲,一模一样,我也遇到了,“连接服务器超时,点击屏幕重试”,这个情况出现在每次更新后,总有几个用户手机会出现,而且出现这个的页面不固定,针对这个问题有以下几种解决方式,不一定都100%有效,但是可以挨个试一试
因为版本迭代原因,上次使用到的文件或者素材在这次版本更新被删除了,设备运行产品的时候因为缓存原因读不到原先文件素材导致的
解决方案:打包的时候现将之前的文件全部删除,然后把这次的文件上传,不建议直接替换
2.本地图片尽可能放到服务器上,避免包体积过大
看一下这个文章中的情况三:https://ask.dcloud.net.cn/article/37065
在处理 uni-app
连接服务器超时并实现点击屏幕重试的功能时,你可以通过以下步骤来实现:
-
设置请求超时:在发起网络请求时,设置请求的超时时间。
-
处理超时错误:在请求回调中,检查是否发生超时错误。
-
实现重试功能:在发生超时错误时,显示重试按钮,并在用户点击按钮时重新发起请求。
下面是一个简单的代码示例,展示了如何实现这一功能:
1. 设置请求超时
使用 uni.request
发起请求,并设置 timeout
参数。
function fetchData() {
uni.request({
url: 'https://your-server-url.com/api/data',
method: 'GET',
timeout: 5000, // 设置超时时间为5秒
success: (res) => {
console.log('请求成功:', res.data);
// 处理请求成功后的逻辑
},
fail: (err) => {
if (err.errMsg === 'request:fail timeout') {
// 处理超时错误
handleTimeout();
} else {
// 处理其他请求错误
console.error('请求失败:', err);
}
}
});
}
2. 处理超时错误
在超时错误发生时,显示重试按钮。
let retryButton;
function handleTimeout() {
// 隐藏其他内容,显示重试按钮
retryButton = uni.createSelectorQuery().select('#retry-button');
retryButton.boundingClientRect(data => {
if (data) {
uni.showToast({
title: '连接服务器超时,请点击重试',
icon: 'none'
});
// 假设你有一个页面元素 <button id="retry-button">重试</button>
document.getElementById('retry-button').style.display = 'block';
}
}).exec();
}
3. 实现重试功能
在重试按钮的点击事件中,重新发起请求。
<!-- 在你的页面中添加一个重试按钮 -->
<button id="retry-button" style="display:none;" @click="retry">重试</button>
function retry() {
// 隐藏重试按钮(可选)
document.getElementById('retry-button').style.display = 'none';
// 重新发起请求
fetchData();
}
完整代码示例
将上述代码片段整合到你的 uni-app
项目中,确保你的页面结构和逻辑与之匹配。这样,当连接服务器超时时,用户将看到一个重试按钮,点击该按钮可以重新发起请求。
请注意,这只是一个基本的示例,实际应用中你可能需要处理更多的细节和异常情况,比如网络状态检测、多次重试的限制等。