Bootstrap 3性能 - 屏幕屏幕冻结5-30秒



(编辑:我在发布前进行了搜索,但没有看到任何解决此特定问题的内容,如果存在,请指出它们,谢谢)

我正在使用Bootstrap 3和jQuery 1.11.2开发一个内部站点。在接下来的几个月中,浏览器的使用将几乎完全具有IE 11的主要目标,其余的(即7/8/9和/或11)拖动。

该站点本质上是一个报告网站,该网站从Oracle数据库中获取数据并生成各种HTML报告,通常以HTML表格式。

使用Bootstrap 3,我遇到了严重的性能问题。我不能固定问题的根源,但我确实知道,越多的表行是更糟糕的表现。例如,我刚刚生成了一个有327行的报告,在一个class ="表格条纹的表符合的表格"的表中,而屏幕在几秒钟内绘制了,也冻结了,不允许我滚动20秒。但是这种行为发生在另一个不使用这些表类的报告上。

我已经在此报告和其他报告上运行了IE 11 F12 Profiler,并发现Regexp.Exec在这些屏幕上运行了150,000至200,000次(!!)。我以前尝试过删除所有脚本并一次将它们添加回一个脚本,并发现添加Bootstrap.js是导致性能问题的原因。

还有其他人经历过吗?如果是这样,我可以避免有哪些一般方法?它在斑点中几乎无法使用该应用程序。

Bootstrap 3使开发屏幕变得容易,因此我可以专注于应用程序功能,但这已成为一个严重的问题。我可以处理5-10秒的延迟,在一个屏幕上,我实际上实现了"加载,请等待"模态作为黑客攻击,并将其设置为立即关闭 - 这意味着它保持开放,直到浏览器完成运行客户端的运行端 - 旁边脚本,停止挂断,然后然后允许模态关闭。因此,这是该报告的入门解决方法。我不得不在几乎每个屏幕上实现这样的模态,尤其是我可能仅由于引导而延迟20-30秒或更多的屏幕。

谢谢!

我弄清楚了问题是什么(快速!),所以我要发布此问题,以防其他任何人跑到其中。事实证明,罪魁祸首实际上不是不是 bootstrap(或至少不是仅限)。我正在Visual Studio 2013中开发一个MVC应用程序,该应用程序添加了一个新的"功能",该功能将JavaScript注入您的输出,称为BrowserLink。这反过来使用SignalR在浏览器之间建立通信通道。

就我而言,这对IE11的布局引擎造成了严重破坏,从而导致上述问题。看来它正在干扰Bootstrap 3以某种方式导致它花费的时间超过渲染页面所需的时间。实际上,即使没有bootstrap 3打开,也导致IE 11挂起。

我以前曾经使用过Visual Studio 2012,所以当2013年开始注入此脚本时,这是一个惊喜。

问题和解决方案的说明可在此处提供:http://sylvester-lee.blogspot.com/2014/03/javascript-or-jquery-perform-perform-very-very-slowly.html

按照那里的建议,我从运行/调试菜单中禁用浏览器链接,现在是超级快速的。

如果您不需要浏览器(由于我以前从未听说过,我没有,也没有看到任何需要它的原因),那么我的建议是先关闭它,然后查看如果解决绩效问题。

有趣的是,我确实觉得奇怪的是,VS2013以bootstrap作为MVC的默认布局框架,但注入JavaScript,这会导致性能问题至少有时会成为自举问题。

最新更新