Javascript重载页面

Javascript Reload Page

本文关键字:重载 Javascript      更新时间:2023-09-26

为了在不完全重新加载所有内容的情况下重新加载页面,我使用:

window.top.location=window.top.location;

然而,由于某些原因,当有锚文本时,这不起作用。在这种情况下,它似乎什么也不做,但更可能的是它刷新了锚。

有没有修复这个问题,将重新加载页面(如上所述),而不重新加载缓存的图像和脚本?

尝试使用location.reload(false)

正如MDN所说,第二个参数是一个布尔值,表示是否绕过缓存。false继续使用缓存,如您所愿。

icktofay解释了解决方法,所以我只是解决这个问题:

然而,由于某些原因,当有锚文本时,这不起作用。在这种情况下,它似乎什么也不做,但更可能的是它刷新了锚。

HTML 5描述了Location接口,涵盖了document.location的赋值。

当调用assign(url)方法时,UA必须解析相对于入口脚本的基本url的参数,如果成功,则必须将浏览上下文导航到指定的url。

所以导航操作只看到一个绝对URL,所以分配一个片段和分配一个绝对URL是没有区别的,这个绝对URL与带有片段的页面URL相同。

导航

8片段标识符:将URL解析器算法应用于新资源的绝对URL和正在导航的浏览上下文的活动文档的地址。如果结果解析URL的所有组件(忽略任何片段组件)都是相同的,并且新资源将使用HTTP GET或等效方法获取,并且新资源的解析URL具有不为空的片段组件(即使它为空),则然后导航到该片段标识符并中止这些步骤。

最后,导航到一个片段标识符说

当用户代理需要滚动到片段标识符时,它必须使用在CSSOM视图规范中定义的视图算法中滚动一个元素来改变文档的滚动位置,并设置对齐到顶部标志,或者执行一些其他操作,使文档的指定部分引起用户的注意。

完全确定页面本身被重新加载,而其他缓存元素没有被加载的最好方法是更改位置。带随机参数的查询字符串

例如,

location.search='?'+Math.random();

缓存没有被绕过,所以页面的所有元素都将从缓存中加载,但是主页本身被强制重新加载,因为HTTP需要为每个唯一的查询字符串/位置向服务器发出另一个请求。搜索值。

如果你的页面本身是一个使用查询字符串的应用程序(如file.cgi?param=xyz&param2=abc…),那么你将不得不追加到查询字符串,而不是完全替换它:

if (location.search.length > 1)
location.search+='&'+Math.random();
else
location.search='?'+Math.random();

我一直在为以下情况尝试所有这些:我有一个复杂的页面,其中客户可以保存带有产品列表的项目。现在我想让客户打开一个新页面来下载报告,同时保持父页面完整,打开手风琴等。

使用IE8仍然运行XP的客户在打开报告窗口后会出现父页面乱码。编程是用ASP编写的。NET与VB代码后面。这个方法对我很有效。

Dim proj As String = "<script language=javascript> location.assign('/Projects.aspx');
window.open('Report.aspx?project=" & projid.Text & "&rpt=bill');</script>"
Session.Add("AddCart", idx.ToString("N0"))
Response.Write(proj)

位置。Assign用于刷新父页面的同时窗口。Open将在新窗口中打开报告。

会话变量用于跟踪应该打开哪个手风琴行。这在Page_Load

中处理
    If Not Page.IsPostBack Then
        LoadProjects()
        If Session("AddCart") IsNot Nothing Then
            Dim idx As Integer = Session("AddCart")
            ProjAccordion.SelectedIndex = idx
            Session.Remove("AddCart")
        ElseIf Session("CopyProj") IsNot Nothing Then
            Dim idx As Integer = Session("CopyProj")
            ProjAccordion.SelectedIndex = idx
            Session.Remove("CopyProj")
        End If
    End If

使用位置。Href做到了http://www.w3schools.com/jsref/prop_loc_href.asp