我在Google Chrome浏览器中遇到一个非常奇怪的问题:
当我点击链接(从列表视图到详细信息页面)时,页面挂起,我Chrome会抛出一个对话框,要求我杀死该页面。页面永远不会显示。
但如果我直接导航到该页面,它会在Chrome中加载而不会出现任何问题。这两个操作(单击链接或导航到页面)在Safari和Firefox中都可以正常工作。
在Chrome的设置中禁用“预测网络操作以提高网页加载效果”似乎可以解决问题,但这不是一个可行的解决方案,因为我无法控制用户的浏览器设置。
有关情况的更多细节:
该链接只是常规<href>
。我没有做任何javascript
click()
处理或其他任何事情。我没有使用任何'prefetch'或'prerender'<link>
元素。
所有页面都使用W3进行验证 html5验证器。
我正在导航的页面加载了大量的JS,使用Knockout.js进行渲染并通过HTTP加载视频文件。
在页面 加载的情况下(等待很长时间后), Chrome似乎已在后台呈现整个页面 加载所有外部资源。如果我直接导航到它的页面 不会预装任何东西(我正在使用淘汰赛来表示'请 在外部资源加载时等待'消息'。
当我使用Charles记录网络请求时,会出现这种情况 Chrome立即加载页面的HTML,但请求 外部资源似乎永远存在。
如果我查看活动监视器中的CPU使用率,“Google Chrome渲染器”在从href
加载时使用100%CPU,但在从页面直接加载时仅使用30%。
我正在使用最新版本的Chrome(22.0.1229.94)
所以 - 我的问题
有没有办法以编程方式禁用“预测网络操作以提高页面加载性能”?
或者是否有其他解决方案可以解决这个问题?
答案 0 :(得分:0)
刚刚经历了高度投票的未回答的问题,我遇到了这个问题,而且我曾经因为完全不同的原因陷入类似的情况(Chrome正在预加载一个巨大的文件我无法负担得起为每个用户加载)。我之前应用的相当简单的解决方案是通过Javascript打开链接,而不是简单的href
,它创造了奇迹。无论哪种方式,你的问题可能已经解决,但看到我认为我至少可以分享这个小见解的观点数量。