javascript - 网站停止使用 Chrome 版本 32

标签 javascript flash google-chrome

我是一家大型企业网站的开发人员,在升级到 chrome 32 后,该网站完全停止工作。当我们必须在页面上呈现大部分元素时,我感到“ panic ”。

它是一个庞大的代码库,所以我无法找到导致它的原因。我一直在 Debug模式下启动 chrome 并在那里查看日志。

奇怪的行为:

1) 如果我禁用 flash 它会起作用,我们正在使用带有 flash 库的 swfobject。

2) 我有时会在日志中看到它崩溃时“Uncaught RangeError: Maximum call stack size exceeded”,所以我必须有一个无限循环,但这并不总是这样。

3) 如果我刷新足够多,它将一直启动,并一直工作,直到我杀死选项卡并重新开始。但这又是一个有时导致它可能会在几次刷新后再次开始崩溃循环的原因。

4) 我有时会看到错误“file_descriptor_set_posix.cc(22)] FileDescriptorSet destroyed with unconsumed descriptors” 我认为这与网页呈现中的无限循环有关,这与最大调用堆栈超出错误有关。

有谁知道 Chrome 版本 32 中发生了什么变化,这将是查找错误的良好起点?

使用的库:SWFobject、Backbone、underscore、soundmanager.js

最佳答案

我不知道为什么这会修复它,或者是什么 chrome 更改导致代码中断,但如果有人对我们为解决错误所做的工作感兴趣,我会解释。

1) 我让所有事件都从 swfobject 发出,我们的 swf 代码直接进入我们必须与 flash 交互的 Flash.js 类。在它通过 Backbone.dispatcher 传播到 Flash 类之前。这导致 aw snap 错误消失。

2) 我们使用了一个名为 Moment.js 2.2.0 版的日期时间库。这是抛出最大调用堆栈错误的那个,在将其更新到 2.3.0 后它停止了。很想知道 chrome 更改了什么导致无限循环。

如果有人知道导致这两个错误的两个版本之间的 chrome 更改是什么,我会喜欢这个答案,因为修复症状但不知道原因有点可怕。

关于javascript - 网站停止使用 Chrome 版本 32,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21193056/

相关文章:

javascript - 在对象的属性中使用 'set' 的好处?

flash - 为什么位图的性能优于矢量、as3?

java - protobuf( Protocol Buffer )是否允许自定义类型?

html - 如何在不降低帧率的情况下在 Flash 内容之上启用 HTML 内容?

css - Linux Google Chrome 中消失的 1px 虚线边框

带有@angular/pwa 包的 Angular Service Worker 离线时显示 `HTTP error 504`

Javascript 哲学和事件

javascript - 多个事件监听器的顺序

javascript - 用 Selenium 刮4

JavaScript - addEventListener 未定义