如何使用jQuery刷新页面?

2020/09/14 17:01 · javascript ·  · 0评论

如何使用jQuery刷新页面?

用途location.reload()

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

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

即使没有jQuery,这也应适用于所有浏览器:

location.reload();

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

  1. location.reload()
  2. history.go(0)
  3. location.href = location.href
  4. location.href = location.pathname
  5. location.replace(location.pathname)
  6. location.reload(false)

    如果需要再次从Web服务器提取文档(例如,文档内容动态变化的地方),则将参数传递为true

您可以继续执行具有创意的列表:

  • window.location = window.location
  • window.self.window.self.window.window.location = window.location
  • ...和其他534种方式
var methods = [
  "location.reload()",
  "history.go(0)",
  "location.href = location.href",
  "location.href = location.pathname",
  "location.replace(location.pathname)",
  "location.reload(false)"
];

var $body = $("body");
for (var i = 0; i < methods.length; ++i) {
  (function(cMethod) {
    $body.append($("<button>", {
      text: cMethod
    }).on("click", function() {
      eval(cMethod); // don't blame me for using eval
    }));
  })(methods[i]);
}
button {
  background: #2ecc71;
  border: 0;
  color: white;
  font-weight: bold;
  font-family: "Monaco", monospace;
  padding: 10px;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.5s ease;
  margin: 2px;
}
button:hover {
  background: #27ae60;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

我想有很多方法可以起作用:

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

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

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

我在这里使用的方法是Ajax jQuery。我在Chrome 13 上进行了测试。然后将代码放入处理程序中,该处理程序将触发重新加载。URL"",这意味着这个页面

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

window.location = window.location.pathname;

代替

window.location.reload();

因为window.location.reload()如果在由POST请求加载的页面上被调用,则会提示您进行确认。

问题应该是

如何使用JavaScript刷新页面

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

您选择太多了。

您可能要使用

location.reload(forceGet)

forceGet 是布尔值和可选值。

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

如果要强制浏览器从服务器获取页面以摆脱缓存,则将此参数设置为true。

要不就

location.reload()

如果您想快速轻松地进行缓存。

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

  • location.reload(true)

    在实现forcedReload参数为的浏览器location.reload(),通过获取页​​面及其所有资源(脚本,样式表,图像等)的新副本来重新加载。不会从缓存中提供任何资源-从服务器获取新副本,而不在请求中发送任何副本if-modified-sinceif-none-match标头。

    等效于用户在可能的情况下在浏览器中执行“硬重装”。

    请注意,在Firefox(请参阅MDN)和Internet Explorer(请参阅MSDN)中支持传递true但不受普遍支持,也不是W3 HTML 5规范W3 HTML 5.1草案规范WHATWG HTML Living Standard的一部分location.reload()

    在不支持的浏览器(例如Google Chrome)中,location.reload(true)其行为与相同location.reload()

  • location.reload() 要么 location.reload(false)

    重新加载页面,获取一个新的,非缓存的网页HTML本身,以及执行的副本RFC 7234的任何资源再验证请求(如脚本),浏览器已经缓存,即使是新鲜的是RFC 7234只允许浏览器服务他们没有重新验证。

    location.reload()据我所知,确切地说,浏览器在执行调用时应如何利用其缓存我通过实验确定了上述行为。

    这等效于用户只需在其浏览器中按下“刷新”按钮即可。

  • location = location(或无限多种其他可能的技术,涉及location对其属性的分配

    仅在页面的URL不包含虚假/散列的情况下才有效!

    重新加载页面,而无需重新获取或重新验证缓存中的任何 资源。如果页面的HTML本身是新鲜的,这将重新加载页面,而不执行任何HTTP请求。

    从缓存的角度来看,这等效于用户在新标签页中打开页面。

    但是,如果页面的URL包含哈希,则将无效。

    再次,据我所知,这里的缓存行为是不确定的。我通过测试确定了它。

因此,总而言之,您要使用:

  • location = location为了最大程度地利用缓存,只要页面的URL中没有哈希,在这种情况下将无法使用
  • location.reload(true)无需重新验证即可获取所有资源的新副本(尽管它不受普遍支持,并且location.reload()在某些浏览器(如Chrome)中也不会有所不同
  • location.reload() 忠实地再现用户单击“刷新”按钮的效果。

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

因此,如果您只想刷新HTML,它们window.location = document.URL将以更快的速度返回并且流量更少。但是,如果URL中包含井号(#),它将不会重新加载页面。

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

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

由于问题很笼统,让我们尝试总结一下答案的可能解决方案:

简单的普通JavaScript解决方案

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

location.reload();

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

Location.reload()方法从当前URL重新加载资源。它的可选唯一参数是布尔值,当它为true时,它将导致始终从服务器重新加载页面。如果为false或未指定,浏览器可能会从其缓存中重新加载页面。

这意味着有两种方法:

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

location.reload(true);

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

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

并且,如果您想将其与jQuery结合使用以监听事件,我建议您使用“ .on()”方法代替“ .click”或其他事件包装器,例如,更合适的解决方案是:

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

这是一个使用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>

笔记:

  • $.ajax直接使用like $.get('',function(data){$(document.body).html(data)}) 会导致css / js文件被缓存破坏,即使您使用cache: true,这也是我们使用的原因parseHTML
  • parseHTML不会找到body标签,所以您的整个身体需要再增加一个格,我希望这一点知识有一天能对您有所帮助,您可以猜测我们如何为此选择IDdiv
  • http-equiv="refresh"如果万一javascript / server打server出现问题,请使用此方法,然后页面仍会重新加载而无需打个电话
  • 这种方法可能会以某种方式泄漏内存,http-equiv刷新修复了

我发现

window.location.href = "";

要么

window.location.href = null;

还可以刷新页面。

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

您可以使用 JavaScript location.reload() 方法。此方法接受布尔参数。truefalse如果参数为 true; 该页面始终从服务器重新加载。如果是false; 这是默认值或带有空参数的浏览器会从缓存中重新加载页面。

true参数

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

default/ false参数

 <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>

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

window.location.reload();

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

如果您想强制重新加载页面,只需将一个传递给reload方法,如下所示...

window.location.reload(true);

另外,如果您已经在window作用域内,则可以摆脱window并执行以下操作:

location.reload();

location.reload();

要么

window.location.reload();

onclick="return location.reload();"在按钮标签内使用

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

如果您使用的是jQuery并想刷新,请尝试在javascript函数中添加jQuery:

我想在单击oh an时在页面上隐藏iframe h3,对我来说这是可行的,但是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是跨平台的 JavaScript库,旨在简化HTML的客户端脚本。

维基百科

因此,您将了解 , 要么 是基于 所以纯粹 在简单的事情上会更好。

但是,如果您需要 解决方案,这是一个。

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

有很多方法可以重新加载当前页面,但是以某种方式使用这些方法,您可以看到页面已更新,但缓存值很少,因此,请解决该问题,或者如果您希望进行艰难的请求,请使用以下代码。

    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
<i id="refresh" class="fa fa-refresh" aria-hidden="true"></i>

<script>
$(document).on('click','#refresh',function(){
   location.reload(true);
});
</script>

简单的Javascript解决方案:

 location = location; 

<button onClick="location = location;">Reload</button>

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

history.go()

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

location.reload(); //simple refresh

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

location.reload(true);//hard refresh

在JavaScript中最短。

window.location = '';
$(document).on("click", "#refresh_btn", function(event) 
{
     window.location.replace(window.location.href);
});

以下是几行代码,您可以使用这些代码使用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>
本文地址:http://javascript.askforanswer.com/ruheshiyongjqueryshuaxinyemian.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!