javascript - 使用 JS 或 jQuery / Ajax 刷新 div 或页面一次
问题描述
因此,我只想为我正在开发的 Flask Web 应用程序重新加载 div 或网页一次,但由于我不太了解 JS,所以我被困在循环中,而不是只刷新一次。
我为什么要这样做?
在进入这个页面之前,用户输入数据并进行计算,然后通过 Selenium,它会做一个网站截图,这个过程需要很长时间,所以当用户点击输入时,它会进行计算,然后在该页面上重定向到新页面一次通过 ajax 调用 selenium 函数在后台提交的 fx,加载 gif 而不是屏幕截图。
目标是,一旦 ajax 路由完成,div 或页面仅重新加载一次以替换 gif 并显示屏幕截图(我通过 Jinja 中的 if/else 完成)希望如果不让我知道,这是有道理的。
这是我要处理的 div
<div id="siteimg" class="c">
{% if a.imgofsite != "" %}
<img class="c" src="{{ url_for('static', filename = '' + a.imgofsite ) }}" style="overflow: hidden;">
{% else %}
<img class="c" src="{{ url_for('static', filename = 'img/load.gif') }}" style="overflow: hidden;">
<h5 class="c" style="overflow: hidden;">RENDERING SCREENSHOT</h5>
{% endif %}
下面是我用来提交表单然后调用它的 JS。
<script type="text/javascript">
function img_load() {
$.ajax({
type: 'POST',
url: '/siteimage/{{ a._id }}',
});
}
</script>
<script>img_load();</script>
我尝试过的:这让我处于一个连续的循环中
location.reload(true);
当我将它添加到 ajax 调用块时,这没有给我任何响应
function refresh() {
setTimeout(function () {
location.reload()
}, 100);
}
这也让我处于一个连续的循环中
$("#siteimg").load(location.href + " #siteimg");
解决方案
如果您使用浏览器sessionStorage
来跟踪页面是否在第一次访问后重新加载,该怎么办。
在您的 html 末尾插入以下 js:
<script type="text/javascript">
if (!sessionStorage.getItem('reloaded')) {
// Page was not reloaded until last visit: do some stuff
sessionStorage.setItem('reloaded', true); // remeber the following reload for the next time
setTimeout(function () {
window.location.reload();
}, 100);
}else{
// Page was reloaded: clear your flag for the next visit
sessionStorage.removeItem('reloaded');
}
</script>
如果您选择显示用户通知重新加载的模式(我认为这是一种好的做法),您应该将setTimeout
值从100
增加到 Maybe 2500
。
您可以在这里尝试(带有额外的控制台输出): http: //fiddle.bplaced.net/53414316/
编辑:
再次阅读您的问题后,您需要的是一个ajax
请求。重新加载您的网站只是一种解决方法。
尽管我的解决方案应该满足您的要求-安德森的回答是您应该寻找的。
推荐阅读
- php - php info 不同于 server 和 info.php
- omnet++ - OMNet++中peek命令的作用是什么
- c# - Specflow 3.3 中 NullValueRetriever 功能的替换
- powershell - 如何使用 Invoke-RestMethod 从 Powershell 发布
- google-chrome - 在 Chrome devtools 中多次加载字体
- python - Python 调用 boost .so 文件库未加载错误
- ssis - 将文件上传到 SFTP 后 WinSCP 挂起
- react-native - 错误:没有为关键的 Add Grocery Item 定义路由。必须是以下之一:“屏幕”堆栈操作
- typescript - 设计与数据源无关的模型
- oracle - 如何更改 tnsping 使用的参数文件?