【发布时间】:2016-04-29 16:32:36
【问题描述】:
非常简单的问题,真的。我到处寻找有确切问题的人,但没有运气......
在标签“A”中,我调用window.open()。新选项卡(选项卡“B”)开始加载,其脚本包含一些 ajax。它进行的 ajax 调用需要很长时间(目前这是故意的,因为我正在尝试处理冗长的 ajax 调用)。当标签“b”后冻结一点超过10秒,所以选项卡“a”。
我试过打电话给window.open("url", "_blank"); 和window.open("url");,但似乎都没有解决问题。
为了让事情更混乱,我尝试了这样的实验,打开标签“B”,ajax 不会超时并且一切正常。 然后我更改选项卡“B”中的 URL 参数(这是通过 ajax 发送数据库参数的原因,并且是冗长请求的原因),当它按预期超时时 仍然 strong> 冻结窗口“A”。
我确定我错过了一些东西。在 window.open() 调用完成后,选项卡“B”与选项卡“A”有什么关系。我不明白他们如何仍然相互联系。虽然所有这些都在其他选项卡上进行,但效果很好。
作为记录,我在 Mac 上使用 Chrome,但在 Safari 中也看到了类似的“量子纠缠”。
另外,两个页面都使用 DataTables jQuery 插件。在 API 中进行 ajax 调用。我无法想象 DataTables 怎么可能是这里的罪魁祸首……
任何想法,SO 社区???
谢谢,提前!
【问题讨论】:
-
好像你发送同步 ajax 调用。你能提供一些代码吗?
-
我们可以假设您在访问另一个窗口的子窗口或父窗口中没有代码吗?显示代码 显示代码(可能来自两者)
-
提供大量代码将相当困难,因为每个页面上都有很多内容。确实,任一页面上发生的 某事 都可能导致这种关系。我可以自信地说,不,没有从另一个页面有意引用任何一个页面。我的基本问题本质上是:在调用 window.open() 之后,有什么东西可以连接两个“页面/选项卡/窗口”吗?这种行为是否符合设计?如果没有,那么我的代码中可能有一些东西,在这种情况下,我要根除它。谢谢,到目前为止。
-
你找到解决方案了吗?
标签: javascript ajax datatables window.open