我正在使用直接Web Remoting (DWR) JavaScript库文件,只在Safari(桌面和iPad)中得到一个错误
它说
超过最大调用堆栈大小。
这个错误到底是什么意思,它是否完全停止处理?
Safari浏览器也有任何修复(实际上是在iPad Safari上,它说
JS:执行超时
我认为这是相同的调用堆栈问题)
我正在使用直接Web Remoting (DWR) JavaScript库文件,只在Safari(桌面和iPad)中得到一个错误
它说
超过最大调用堆栈大小。
这个错误到底是什么意思,它是否完全停止处理?
Safari浏览器也有任何修复(实际上是在iPad Safari上,它说
JS:执行超时
我认为这是相同的调用堆栈问题)
当前回答
在我的例子中,我发送的是输入元素而不是它们的值:
$.post( '',{ registerName: $('#registerName') } )
而不是:
$.post( '',{ registerName: $('#registerName').val() } )
这冻结了我的Chrome标签到一个点,它甚至没有显示我的“等待/杀死”对话框,当页面变得无响应…
其他回答
几乎每个答案都说这只能由无限循环引起。这是不正确的,否则您可以通过深度嵌套调用溢出堆栈(并不是说这是有效的,但它肯定是在可能的范围内)。如果你可以控制你的JavaScript虚拟机,你可以调整堆栈大小。例如:
节点——时= 2000
请参见:如何在Node.js中增加最大调用堆栈大小
检查Chrome dev工具栏控制台中的错误细节,这将为您提供调用堆栈中的函数,并指导您找到导致错误的递归。
我在express/nodejs应用程序中得到了这个错误,当MongoDB数据库的模式和我们创建的模型不匹配时。
遇到同样的问题,不知道怎么回事,开始责怪巴别塔;)
在浏览器中不返回任何异常的代码:
if (typeof document.body.onpointerdown !== ('undefined' || null)) {
问题是严重创建||(或)部分Babel创建自己的类型检查:
function _typeof(obj){if(typeof Symbol==="function"&&_typeof(Symbol.iterator)==="symbol")
所以删除
|| null
让巴别塔翻译起作用了。
在我的情况下,问题是,因为我有与父路径相同的子路径:
const routes: Routes = [
{
path: '',
component: HomeComponent,
children: [
{ path: '', redirectTo: 'home', pathMatch: 'prefix' },
{ path: 'home', loadChildren: './home.module#HomeModule' },
]
}
];
所以我不得不取消了儿童路线的路线
const routes: Routes = [
{
path: '',
component: HomeComponent,
children: [
{ path: 'home', loadChildren: './home.module#HomeModule' },
]
}
];