为了在不完全重新加载所有内容的情况下重新加载页面,我正在使用:
window.top.location=window.top.location;
然而,当存在锚文本时,由于某种原因这种方法不起作用。在这种情况下,它似乎什么都没做,但更可能是刷新了锚点。
是否有任何修复方案可以在重新加载页面(如上所述)的同时避免重新加载缓存的图像和脚本?
为了在不完全重新加载所有内容的情况下重新加载页面,我正在使用:
window.top.location=window.top.location;
然而,当存在锚文本时,由于某种原因这种方法不起作用。在这种情况下,它似乎什么都没做,但更可能是刷新了锚点。
是否有任何修复方案可以在重新加载页面(如上所述)的同时避免重新加载缓存的图像和脚本?
window.top.location=window.top.location
仍然更快,但如果有任何锚标签,我会使用 location.reload(false)
。 - Alasdairicktoofay解释了这个解决方法,所以我只回答这个问题:
然而,在存在锚文本时,出于某种原因,这种方法不起作用。在这种情况下,它似乎没有任何作用,但更有可能是刷新了锚点。
HTML 5描述了Location接口,该接口涵盖对document.location
的赋值。
当调用assign(url)方法时,UA必须将参数相对于入口脚本的基本URL进行解析,如果成功,则必须将浏览上下文导航到指定的url。
因此,导航操作只看到绝对URL,因此仅分配片段与分配与页面URL相同的绝对URL和片段没有区别。
8个片段标识符:将URL解析器算法应用于新资源的绝对URL和正在导航的浏览上下文的活动文档的地址。如果忽略任何片段组件,结果解析的URL的所有组件都相同,并且将使用HTTP GET或等效方法获取新资源,并且新资源的解析URL具有不为null的片段组件(即使它是空的),则导航到该片段标识符并中止这些步骤。
最后,导航到片段标识符说
当用户代理需要滚动到片段标识符时,必须使用CSSOM视图规范中定义的滚动元素到视图算法更改文档的滚动位置,并设置对齐到顶部标志,或执行某些其他操作,以便将文档的指定部分带给用户的注意力。
确保页面本身被重新加载,但其他缓存元素不被重新加载的最好方法是使用随机参数更改location.search查询字符串。
例如,
location.search='?'+Math.random();
if (location.search.length > 1)
location.search+='&'+Math.random();
else
location.search='?'+Math.random();
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)
使用location.assign可以刷新父页面,而window.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
使用location.href就可以搞定了 http://www.w3schools.com/jsref/prop_loc_href.asp
。注意当
#test`存在时,该代码将不会重新加载页面。 - icktoofay
location.reload(false)
无法阻止所有中间服务器(可能位于客户端和源服务器之间)返回其缓存副本。将随请求提交的查询字符串的随机未使用参数作为其一部分,是重新加载特定资源而不破坏其他资源缓存的实际做法。 - Joseph Myers