【问题标题】:Reload page asynchronously or setTimeout?异步重新加载页面或setTimeout?
【发布时间】:2013-10-27 14:26:50
【问题描述】:

我有点迷茫。

我有两页;结果和细节。每当用户使用浏览器后退按钮从详细信息导航到结果时,结果页面应该刷新,这样我可以显示用户刚刚在详细信息上看到的产品(就像亚马逊对最近查看的项目所做的那样)

不知道加载页面asynchronously是否更好, 或使用here 所见的 setTimeout(下面的示例有效,但页面会永远刷新)

   if(window.top==window) {
   // you're not in a frame so you reload the site
   window.setTimeout('location.reload()', 3000); //reloads after 3 seconds
   } else {
   //you're inside a frame, so you stop reloading
   }

当我尝试重新加载一个 div 时也不起作用

   $('#div-id').triggerevent(function(){
   $('#div-id').html(newContent);
   });

我也遇到了很多导致this 的示例,但没有成功。 欢迎任何建议。 谢谢

【问题讨论】:

    标签: javascript jquery asynchronous


    【解决方案1】:

    我认为您应该异步重新加载页面。 也许将事件ready 附加到正文会起作用。

      $(function(){
    
        $('body').ready(function(){
          alert('worked');
          //Code to reload the page or data 
        });
    
      });
    

    【讨论】:

    • $('body').ready(function(){ 等同于$(document).ready(function(){ 等同于$(function(){
    【解决方案2】:

    当用户点击返回按钮时应该触发 onload 事件。不是通过 JavaScript 创建的元素将保留它们的值。我建议保留在 INPUT TYPE="hidden" 或 TEXTAREA 设置为 display:none 的动态创建元素中使用的数据的备份,然后使用文本框的值进行 onload 以将动态元素重建为原来的样子。

    如果您不关心重建页面并希望实际重新加载它,那么您可以这样做:

    <input type="hidden" id="refreshed" value="no">
    <script type="text/javascript">
    onload=function(){
    var e=document.getElementById("refreshed");
    if(e.value=="no")e.value="yes";
    else{e.value="no";location.reload();}
    }
    </script>
    

    【讨论】:

    • 这在 Firefox 上运行良好,但在 chrome 上加载页面并且刷新整个页面时,知道为什么吗? @anand4tech
    猜你喜欢
    • 2012-06-01
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    • 2020-01-13
    • 2020-05-06
    • 2017-08-30
    • 2012-06-14
    相关资源
    最近更新 更多