使用 window.location.href 或 .assign 或 .reload 时等待时间很长

Waiting time is high when using window.location.href OR .assign or .reload

我在 ajax 调用后(更新内容后)使用 JavaScript 重定向。我试过下面的方法,都很慢。在网络选项卡中,它显示等待时间约为 4.445 秒。 (这让客户非常沮丧:( )

window.location.assign(to_redirect);
window.location.replace(to_redirect);
location.href= to_redirect; 
window.location.href= to_redirect; 
window.location = to_redirect; 

W从一个页面浏览到另一个页面(用鼠标点击)它的等待时间是 350ms450ms .

为什么会这样?有什么我错过的或任何其他更快的方法吗?

更新:

根据评论者的要求,下面是屏幕截图。

点击页面link,正常方式。

保存数据并使用 JavaScript 方式重定向后。

我已经尝试了评论中提供的所有解决方案,感谢大家。 根据@YanjunLin 的评论,我尝试 clicking 元素直接使用 jQuery 而不是 window 基于对象的重定向。它奏效了。

但是点击方法比我的应用程序的其他方法快 60-70%。

以后有谁来这里试试元素点击($('element selector').click())的方法,希望对你也有用。

请注意,这取决于您的应用程序的体系结构。 Window.location.reload/assign 等可能对您的应用程序来说更快。但是你可以试试这个解决方案。

更新:

根据评论,如果您在每次页面加载时要加载许多静态资产,prefetching 也是一个重要因素。

我相信您正在为您的网络服务器缓存而苦恼。您可以尝试通过 META 标记更改缓存设置,但您会失去缓存的好处。我有一个简单的技巧,通常在所有情况下都有帮助。通过向其添加时间戳,使您提交的 URL 独一无二。 my_app.php?ts=1503710749 这种唯一性应该会导致您的 Web 服务器立即处理。