怎样在微信公众号里做微网站,临安做企业网站的公司,网站开发与维护是学什么,免费网站统计工具最近一个项目上的程序经常出现掉线的情况#xff0c;经排查是该单位的网络不稳定#xff0c;存在网络丢包现象。导致有时候程序运行加载页面失败#xff0c;开机自启动应用时出现请求失败的概率非常大#xff0c;为了解决这个问题我在网上东找西找也没有找到有效的解决办法… 最近一个项目上的程序经常出现掉线的情况经排查是该单位的网络不稳定存在网络丢包现象。导致有时候程序运行加载页面失败开机自启动应用时出现请求失败的概率非常大为了解决这个问题我在网上东找西找也没有找到有效的解决办法最后问了chatGptchatGpt愉快的给我解决了 核心代码
script
var urlhttp://100.87.230.225/test/test;// 测试网络状态地址 请解决跨域问题
var frmUrlhttp://10.87.230.225:5555/app/queue/que-display/showMany?pkC81E728D9D4C2F636F067F89CC14862CisUpdate1;// iframe中加载页面地址如果改地址解决了跨域问题可以和url使用同一个地址
var iframe document.getElementById(iframeid); // 获取iframe元素
var isConnected false;
var intervalId;
function autoReconnect(url) {if (isConnected) return; // 检查iframe页面是否加载成功try{fetch(url).then(response response.text()).then(data {// 如果加载成功则停止重连 清除定时器clearInterval(intervalId);console.log(Connected);iframe.srcfrmUrl;// 重新加载iframeisConnectedtrue;// 设置连接状态标志}).catch(error console.log(Failed to connect, error));}catch(ex){console.log(发生了异常ex.message)}
}intervalId window.setInterval(function(){// 定时执行了了console.log(定时器执行了)console.log(isConnected)if(!isConnected){autoReconnect(url);}
},10000);/script一、测试效果 二、未整改前项目代码
!DOCTYPE html
html langen
headmeta charsetUTF-8 meta nameviewport contentwidthdevice-width, initial-scale1.0title排队叫号系统/titlestyle#iframeid {position: fixed;top: 0;left: 0;width: 100%;height: 100%;border: none;}/stylescriptwindow.onload function SetCwinHeight(){var iframeiddocument.getElementById(iframeid); //iframe idif (document.getElementById){if (iframeid !window.opera){if (iframeid.contentDocument iframeid.contentDocument.body.offsetHeight){iframeid.height iframeid.contentDocument.body.offsetHeight;}else if(iframeid.Document iframeid.Document.body.scrollHeight){iframeid.height iframeid.Document.body.scrollHeight;}}}}/script
/head
bodyiframe idiframeid name iframeid srchttp://10.87.230.225:5555/app/queue/que-display/showMany?pkC81E728D9D4C2F636F067F89CC14862CisUpdate1 frameborder0/iframe
/body
/html三、整改后项目代码
!DOCTYPE html
html langen
headmeta charsetUTF-8 meta nameviewport contentwidthdevice-width, initial-scale1.0title排队叫号系统/titlestyle#iframeid {position: fixed;top: 0;left: 0;width: 100%;height: 100%;border: none;}/stylescriptwindow.onload function SetCwinHeight(){var iframeiddocument.getElementById(iframeid); //iframe idif (document.getElementById){if (iframeid !window.opera){if (iframeid.contentDocument iframeid.contentDocument.body.offsetHeight){iframeid.height iframeid.contentDocument.body.offsetHeight;}else if(iframeid.Document iframeid.Document.body.scrollHeight){iframeid.height iframeid.Document.body.scrollHeight;}}}}/script
/head
bodyiframe idiframeid name iframeid src frameborder0/iframe
/body
script
var urlhttp://100.87.230.225/test/test;// 测试网络状态地址 请解决跨域问题
var frmUrlhttp://10.87.230.225:5555/app/queue/que-display/showMany?pkC81E728D9D4C2F636F067F89CC14862CisUpdate1;// iframe中加载页面地址如果改地址解决了跨域问题可以和url使用同一个地址
var iframe document.getElementById(iframeid); // 获取iframe元素
var isConnected false;
var intervalId;
function autoReconnect(url) {if (isConnected) return; // 检查iframe页面是否加载成功try{fetch(url).then(response response.text()).then(data {// 如果加载成功则停止重连clearInterval(intervalId);console.log(Connected);iframe.srcfrmUrl;isConnectedtrue;}).catch(error console.log(Failed to connect, error));}catch(ex){console.log(发生了异常ex.message)}
}intervalId window.setInterval(function(){// 定时执行了了console.log(定时器执行了)console.log(isConnected)if(!isConnected){autoReconnect(url);}
},10000);/script
/html