我有一个相对不复杂的ASP.Net应用程序,偶尔会在图层中显示一条警告消息,带有阴影,并带有一个按钮来关闭通知。
此代码多年来一直运作良好。
最近,我收到用户抱怨回复真的很慢。他们所经历的是页面完全没有响应,当他们点击[确定]按钮时,很长一段时间都没有发生。
当我录制时间轴时,我可以看到导致往返于网络服务器的原始内容,我可以看到来自网络服务器的响应。我还可以看到由于响应而运行的所有Javascript代码。
就应用程序而言,事务已经结束,就Javascript而言,事务也已结束。我们需要做的就是等待用户点击[确定]按钮,我们将关闭通知弹出窗口。
这就是“冻结”发生的地方。 [OK]事件未交付20-30秒。在此期间发生了什么?这就是我写作的原因:
我们偶尔看到一些非常短的计时器,然后我们会看到一个快速的Recalculate Style调用,然后是Update Layer Tree事件。
更新层树事件需要10-12秒!
以下是由于更新层树事件而无法响应的对话框的代码首先显示的内容如您所见,然后,如果出现问题,可能会使用类似于showAlert的代码进行更新:
答案 0 :(得分:3)
有关 Chrome Chrome将执行$meta_queries = array( 'relation' => 'OR');
foreach($_SESSION['selected_teachers'] as $v) {
array_push($meta_queries,
array(
'key' => 'teacher',
'value' => ':"'.$v.'";',
'compare' => 'LIKE'
));
}
的原因的详细信息,请参阅@ tiblu' comment。
至于花12秒:在其他浏览器中交互是否正常运行,例如Firefox或Safari?如果您的代码已经正常工作多年,并且最近出现了浏览器响应问题(> 2015年10月中旬),并且仅在Chrome中问题可能不是您的代码。
最近有许多类似的新问题和抱怨,指向Chrome 46的发布。例如:this issue (code.google.com)和this issue (code.google.com)。
CPU峰值负责浏览器无响应,您可以使用Chrome的任务管理器进行监控。至于为什么 CPU正在飙升和进一步细节,你需要关注上述问题和其他问题。
为伪答案道歉,不要让代表将其放入评论中。
答案 1 :(得分:2)
感谢所有回复的人...我无法弄清楚如何重新安装旧版Chrome,但我确实设法获得了Chrome 48(48.0.2564.8)的测试版,并且令我惊讶的是,我不再能够重现这个问题了。
可以肯定的是,我从今天早上的BACKUP恢复了46,并重新展示了这个问题。重新安装beta-48后,问题就消失了。
万岁!大家都干得好!