我有一个应用程序,其中一个绝对正常的链接(如下所示).. 单击时,两次调用操作类。而这种行为只发生在 IE 中。在 Firefox 中,当我点击同一个链接时,它只调用一次动作类。
<a href="FileListAction.do" title="Load" target="_parent" id="c">Load</a>
这是一个较旧的应用程序,我使用的是 Struts 1.3 和 Tiles。知道为什么会发生这种情况和/或如何排除故障吗?
我有一个应用程序,其中一个绝对正常的链接(如下所示).. 单击时,两次调用操作类。而这种行为只发生在 IE 中。在 Firefox 中,当我点击同一个链接时,它只调用一次动作类。
<a href="FileListAction.do" title="Load" target="_parent" id="c">Load</a>
这是一个较旧的应用程序,我使用的是 Struts 1.3 和 Tiles。知道为什么会发生这种情况和/或如何排除故障吗?
可能是 IE 正在预加载预 取链接。
要验证这一点,请记录收到请求的时间。加载页面,等待约 10 秒,然后单击链接。如果日志条目之间的差异约为 10 秒,则为预取。
这个想法是浏览器预加载用户可能点击的链接,因此结果可以立即形成浏览器缓存的服务器。
HTML5 通过定义rel="prefetch"
. 此属性和值可以设置在a
、area
和link
标记上。
检查您的页面<link rel="prefetch" href="url" />
中<link rel="next" href="url" />
的HEAD
元素。此外,还要检查您的A
标签是否有rel
属性。
微软声称在 IE 11 中正式支持这一点。
所有这些都是为了让页面看起来对用户更敏感。当被检索的页面不可缓存时,这可能会崩溃。这将导致当用户单击该页面时再次获取该页面。这可以通过采取措施确保结果可缓存来改进。设置适当的缓存头。有一个Private
针对单个收件人的内容的缓存控件。它仅存储在私有缓存中,通常是用户的浏览器。
此外,如果您的页面不提供Content-length
标头,则它可能不被视为可缓存的。