如何使用JavaScript刷新页面?


这适用于所有浏览器:

location.reload();

使用location.reload()。

例如,要在单击id为“something”的元素时重新加载:

$('#something').click(function() {
    location.reload();
});

reload()函数接受一个可选参数,该参数可以设置为true,以强制从服务器而不是缓存重新加载。该参数默认为false,因此默认情况下页面可以从浏览器的缓存中重新加载。

我想有很多方法会奏效:

window.location.reload();history.go(0);window.location.href=window.location.html;

问题应该是,

如何使用JavaScript刷新页面

window.location.href = window.location.href; //This is a possibility
window.location.reload(); //Another possiblity
history.go(0); //And another

你被宠坏了。

要使用jQuery重新加载页面,请执行以下操作:

$.ajax({
    url: "",
    context: document.body,
    success: function(s,x){
        $(this).html(s);
    }
});

这里我使用的方法是Ajax jQuery。我在Chrome 13上测试了它。然后我将代码放入将触发重载的处理程序中。URL为“”,表示此页面。

编辑:不幸的是,我必须很快记下这个答案,因为问题已经改变,用户似乎不太清楚他们在问什么。一些用户评论说,刷新与重新加载页面不同;查看此问题的修订[https://stackoverflow.com/posts/5404839/revisions]据我所知,最初的问题是用AJAX刷新页面,这是ASYNCHRONOUS。。。,刷新页面应该意味着向页面获取新的和更新的内容。无论如何,这个答案很快就会消失/

如果当前页面是通过POST请求加载的,您可能需要使用

window.location = window.location.pathname;

而不是

window.location.reload();

因为如果在POST请求加载的页面上调用window.location.reload()将提示确认。

使用JavaScript刷新页面有多种无限方式:

location.reload()历史记录.go(0)location.href=位置.hreflocation.href=位置.pathnamelocation.replace(location.pathname)location.reload(false)如果我们需要从再次打开web服务器(例如文档内容动态更改),我们会将参数传递为true。

您可以继续列表中的创意:

window.location=窗口位置window.self.window.self.window.window.location=窗口位置…和其他534种方式

var方法=[“location.reload()”,“history.go(0)”,“location.href=位置.href”,“location.href=位置.路径名”,“location.replace(location.pathname)”,“location.reload(false)”];var$body=$(“body”);for(var i=0;i<methods.length;++i){(函数(cMethod){$body.append($(“<button>”{text:c方法}).on(“单击”,函数(){eval(cMethod);//不要怪我使用eval}));})(方法[i]);}按钮{背景:#2ecc71;边框:0;颜色:白色;字号:粗体;字体系列:“Monaco”,monospace;填充:10px;边界半径:4px;光标:指针;过渡:背景色0.5s轻松;边距:2px;}按钮:悬停{背景:#27ae60;}<script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js“></script>

jQueryLoad函数还可以执行页面刷新:

$('body').load('views/file.html', function () {
    $(this).fadeIn(5000);
});

您可能想使用

location.reload(forceGet)

forceGet是一个布尔值,也是可选的。

默认值为false,从缓存中重新加载页面。

如果您希望强制浏览器从服务器获取页面,以清除缓存,请将此参数设置为true。

或者只是

location.reload()

如果您想快速方便地使用缓存。

window.location.reload()将从服务器重新加载,并将再次加载所有数据、脚本、图像等。

因此,如果您只想刷新HTML,window.location=document.URL将返回得更快,流量更少。但如果URL中有散列(#),则不会重新加载页面。

由于问题是一般性的,让我们尝试总结出答案的可能解决方案:

简单的纯JavaScript解决方案:

最简单的方法是以适当的方式放置单线解决方案:

location.reload();

很多人在这里缺少的是,因为他们希望得到一些“点”,reload()函数本身提供了一个布尔值作为参数(详细信息:https://developer.mozilla.org/en-US/docs/Web/API/Location/reload).

Location.reload()方法从当前网址。它的可选唯一参数是布尔值true,导致页面始终从服务器重新加载。如果是的话如果为false或未指定,则浏览器可以从隐藏物

这意味着有两种方式:

解决方案1:强制从服务器重新加载当前页面

location.reload(true);

解决方案2:从缓存或服务器重新加载(基于浏览器和配置)

location.reload(false);
location.reload();

如果你想将它与jQuery结合起来监听事件,我建议使用“.on()”方法而不是“.click”或其他事件包装器,例如,更合适的解决方案是:

$('#reloadIt').on('eventXyZ', function() {
    location.reload(true);
});

具有不同缓存相关行为的三种方法:

location.reload(true)在实现location.reload()的forcedReload参数的浏览器中,通过获取页面及其所有资源(脚本、样式表、图像等)的新副本来重新加载。不会从缓存中提供任何资源-从服务器获取新副本,而无需发送任何副本(如果修改后或没有与请求中的标头匹配)。相当于用户在可能的情况下在浏览器中进行“硬重新加载”。请注意,Firefox(请参阅MDN)和Internet Explorer(请参阅MSDN)支持将true传递到location.reload(),但不受普遍支持,也不是W3 HTML 5规范、W3 HTML 5.1草案规范和WHATWG HTML生活标准的一部分。在不支持的浏览器中,如Google Chrome,location.reload(true)的行为与location.reload()相同。location.reload()或location.reload(false)重新加载页面,获取页面HTML本身的新的、未缓存的副本,并对浏览器缓存的任何资源(如脚本)执行RFC 7234重新验证请求,即使它们是新的。RFC 7234允许浏览器在不重新验证的情况下为它们提供服务。据我所知,在执行location.reload()调用时,浏览器应该如何使用其缓存并没有具体说明或记录;我通过实验确定了上述行为。这相当于用户只需按下浏览器中的“刷新”按钮。location=位置(或无限多其他可能涉及指定位置或其财产的技术)仅当页面的URL不包含fragid/hashbang时才有效!重新加载页面,而无需重新蚀刻或重新验证缓存中的任何新资源。如果页面的HTML本身是新的,这将重新加载页面,而不执行任何HTTP请求。这相当于(从缓存角度)用户在新选项卡中打开页面。但是,如果页面的URL包含哈希,则这将无效。同样,据我所知,这里的缓存行为没有具体说明;我通过测试确定了这一点。

总之,您希望使用:

location=缓存的最大使用位置,只要页面的URL中没有哈希,在这种情况下,这将不起作用location.reload(true)在不重新验证的情况下获取所有资源的新副本(尽管它不受普遍支持,并且在某些浏览器(如Chrome)中的行为与location.reloadlocation.reload()忠实地再现用户单击“刷新”按钮的效果。

下面是一个使用jQuery异步重新加载页面的解决方案。它避免了window.location=window.location引起的闪烁。这个示例显示了一个连续重新加载的页面,就像在仪表板中一样。它经过战斗测试,正在时代广场的信息显示电视上运行。

<!DOCTYPE html>
<html lang="en">
  <head>
    ...
    <meta http-equiv="refresh" content="300">
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
    <script>
    function refresh() {
      $.ajax({
        url: "",
        dataType: "text",
        success: function(html) {
          $('#fu').replaceWith($.parseHTML(html));
          setTimeout(refresh,2000);
        }
      });
    }
    refresh();
    </script>
  </head>
  <body>
    <div id="fu">
      ...
    </div>
  </body>
</html>

笔记:

直接像$.get(“”,function(data){$(document.body).html(data)})那样使用$.ajax会导致css/js文件被缓存破坏,即使您使用cache:true,这就是我们使用parseHTML的原因parseHTML不会找到一个body标签,所以你的整个身体都需要放在一个额外的div中,我希望这些知识有一天能帮助你,你可以猜到我们是如何为那个div选择id的使用http equiv=“refresh”,以防javascript/服务器打嗝出现问题,然后页面仍然会重新加载,而不会接到电话这种方法可能会以某种方式泄漏内存,http equiv刷新修复了

我找到了

window.location.href = "";

or

window.location.href = null;

还进行页面刷新。

这使得移除任何哈希值后重新加载页面变得非常容易。当我在iOS模拟器中使用AngularJS时,这非常好,因此我不必重新运行应用程序。

您可以使用JavaScript location.reload()方法。此方法接受布尔参数。正确或错误。如果参数为真;页面总是从服务器重新加载。如果是假的;这是默认设置,或者使用空参数浏览器从其缓存中重新加载页面。

带真参数

<button type="button" onclick="location.reload(true);">Reload page</button>

带默认/假参数

 <button type="button" onclick="location.reload();">Reload page</button>

使用jquery

<button id="Reloadpage">Reload page</button>
<script type="text/javascript">
    $('#Reloadpage').click(function() {
        location.reload();
    }); 
</script>

在按钮标记中使用onclick=“return location.reload();”。

<button id="refersh-page" name="refersh-page" type="button" onclick="return location.reload();">Refesh Page</button>

您不需要jQuery中的任何东西,要使用纯JavaScript重新加载页面,只需在location属性上使用reload函数,如下所示:

window.location.reload();

默认情况下,这将使用浏览器缓存(如果存在)重新加载页面。。。

如果您想强制重新加载页面,只需传递一个true值来重新加载方法,如下所示。。。

window.location.reload(true);

此外,如果您已经在窗口范围内,您可以删除窗口并执行以下操作:

location.reload();

简单的Javascript解决方案:

 location = location; 

<buttonClick=“location=location;”>重新加载</button>

如果您正在使用jQuery并希望刷新,请尝试在javascript函数中添加jQuery:

我想在单击oh an h3时从页面中隐藏iframe,对我来说这是有效的,但我无法单击允许我查看iframe的项目,除非我手动刷新浏览器。。。不理想。

我尝试了以下方法:

var hide = () => {
    $("#frame").hide();//jQuery
    location.reload(true);//javascript
};

将简单的Jane javascript与jQuery混合使用应该会奏效。

// code where hide (where location.reload was used)function was integrated, below    
    iFrameInsert = () => {
        var file = `Fe1FVoW0Nt4`;
        $("#frame").html(`<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/${file}\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen></iframe><h3>Close Player</h3>`);
        $("h3").enter code hereclick(hide);
}

// View Player 
$("#id-to-be-clicked").click(iFrameInsert);

下面是一些代码行,您可以使用jQuery重新加载页面。

它使用jQuery包装器并提取本地dom元素。

如果您只想在代码上获得jQuery的感觉,而不关心代码的速度/性能,请使用此选项。

只需从1到10中选择适合您的需求,或者根据模式和之前的答案添加更多内容。

<script>
  $(location)[0].reload(); //1
  $(location).get(0).reload(); //2
  $(window)[0].location.reload(); //3
  $(window).get(0).location.reload(); //4
  $(window)[0].$(location)[0].reload(); //5
  $(window).get(0).$(location)[0].reload(); //6
  $(window)[0].$(location).get(0).reload(); //7
  $(window).get(0).$(location).get(0).reload(); //8
  $(location)[0].href = ''; //9
  $(location).get(0).href = ''; //10
  //... and many other more just follow the pattern.
</script>

这里所有的答案都很好。由于问题指定了如何使用jquery重新加载页面,我只是想为未来的读者添加更多内容。

jQuery是一个跨平台JavaScript库,旨在简化HTML的客户端脚本。~维基百科~

因此,您将了解jquery或jquery的基础是基于javascript的。因此,在简单的事情上,使用纯javascript要好得多。

但如果您需要jquery解决方案,这里有一个。

$(location).attr('href', '');

它是JavaScript中最短的。

window.location = '';

use

location.reload();

or

window.location.reload();

有很多方法可以重新加载当前页面,但使用这些方法,您可以看到页面更新,但不会有很少的缓存值,因此要克服这个问题,或者如果您希望发出硬请求,请使用以下代码。

    location.reload(true);
    //Here, it will make a hard request or reload the current page and clear the cache as well.


    location.reload(false); OR location.reload();
    //It can be reload the page with cache

可能最短(12个字符)-使用历史

history.go()

你可以用两种方式写。第一种是重新加载页面的标准方式,也称为简单刷新

location.reload(); //simple refresh

另一种叫做硬刷新。在这里传递布尔表达式并将其设置为true。这将重新加载页面,销毁旧缓存并从头开始显示内容。

location.reload(true);//hard refresh
<i id="refresh" class="fa fa-refresh" aria-hidden="true"></i>

<script>
$(document).on('click','#refresh',function(){
   location.reload(true);
});
</script>
$(document).on("click", "#refresh_btn", function(event) 
{
     window.location.replace(window.location.href);
});

你们可能需要使用

    location.reload(forceGet)

forceGet是一个布尔值,也是可选的。

默认值为false,这将重新加载缓存的页面。

您可能需要使用

 location.reload()

或可能需要使用

location.reload(forceGet)

forceGet是一个布尔值,也是可选的。

如果您希望强制浏览器从服务器获取页面,以便同时清除缓存,请将此参数设置为true

这对我有用。

function reload(){
    location.reload(true);
}

您应该使用以下代码

window.location.reload();