不中断当前正在运行的Javascript,重新加载页面

3

有没有一种方法可以重新加载页面,而不会重置当前在页面上运行的Javascript代码(例如,通过Chrome开发控制台运行)?

我的情况是我需要自动重新加载页面并运行代码。但是,每当我使用window.location.reload()刷新页面时,它会停止我当前在页面上运行的任何Javascript。

有没有办法让我继续刷新页面但保持运行相同的代码?


4
您可以对其进行框架或使用Ajax更新页面而无需重新加载。 - undefined
1
您不能刷新页面,但可以使用ajax从服务器加载新内容并更新页面。为什么需要在不停止JavaScript的情况下重新加载页面呢? - undefined
1
最好使用AJAX;您可以查看:http://www.aspsnippets.com/Articles/Call-ASPNet-Page-Method-using-jQuery-AJAX-Example.aspx - undefined
1
你可能还可以使用较新的SharedWorker()线程。 - undefined
谢谢dandavis,使用ajax更新页面的方法完美运作。 - undefined
@Chthonian 如果某个方法对你来说完美地运行,你可以在自己的问题下发布一个答案。如果它获得了赞同票,你将获得声望值。 - undefined
3个回答

1

感谢dandavis提供的答案。

通过使用ajax,我能够选择一个包含页面并有选择性地重新加载它的div。有效地,这意味着页面的内容被刷新了。

代码看起来像这样:

$('#mydiv').load(document.URL +  ' #mydiv');

例子(其中中间是div的ID):
$('#middle').load(document.URL +  ' #middle');

1
请注意:如果您在跨域运行,请确保已启用CORS。 - undefined

0

没有使用AJAX,我可能会决定每30秒刷新整个页面,但是有了AJAX,我只需要发送一个轻量级的请求来获取我所需的少量信息。

使用AJAX提交表单并不总是最好的选择。除了不能真正给你带来明显的优势,还违反了一些约定,比如浏览器历史记录(尽管现在一些浏览器将JavaScript的“状态”作为历史记录中的页面)。

示例:

        $.ajax({
        url: form_url, 
        type: form_method,      
        data: form_data,     
        cache: false,
        success: function(returnhtml){                          
            $("#result").html(returnhtml); 
            $("#loadingimg").hide();                    
        }
        error: function (xhr, error) {
            alert(error);
        }
    });

工作演示


0

如果您能动态更新页面,那将更好... 但是如果不可能的话...

您可以在一个框架集中托管整个页面,而且可以在框架页之外的重要JS内部进行操作。示例


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接