1

我正在使用 jQuery 的 jqGrid 插件来显示数据库查询的结果(通过 AJAX 提交)。在 Firefox、Chrome 和 IE9 中一切正常,但在 IE8 中有奇怪的行为。似乎正在发生的事情是,当发起 AJAX 请求时,浏览器冻结了大约 30 秒——页面上没有控件可以选择或单击,甚至浏览器窗口也无法移动。

我刚刚开始调试并找到了Fiddler2工具(对我来说是新的),这似乎表明实际的 AJAX 查询运行良好,但在那之后,Fiddler 显示了与www.w3.org/TR/html4/loose.dtdwith的连接result code 304。当我查看该连接的时间线时,我发现它需要 30 秒才能完成。为什么会发生这种情况?

如果有帮助,这里有一些更详细的信息:

初始页面是reports.php. 此页面包含启动 AJAX 请求的按钮。

在 Fiddler 中,我看到了与 的连接/xml/lsql_results_xml.php?[various parameters],然后我看到了一个 XML 响应,其中返回了正确的数据。这一切都按我的预期工作。

Fiddler 列表中的下一个连接是返回原始页面的连接: /clients/reports.php?[各种参数,包括一些似乎是由 jqGrid 添加的]。当我在 Fiddler 中查看返回的内容时,它似乎是由 reports.php 生成的整个 html 页面。

Fiddler 中的下一个连接是到 www.w3.org 的奇怪连接,长度为 30 秒。这似乎冻结了浏览器。

什么解释了 AJAX 查询后 30 秒连接到松散.dtd 的这种奇怪行为?对进一步调试有什么建议吗? (显然,在某些时候我可能需要发布一个更详细的失败代码示例,但这需要创建这个专有系统的简化版本,所以目前,我只是在寻找更一般的指导,以防万一我我错过了一些非常基本的东西。)

谢谢!——杰夫

4

2 回答 2

0

我刚刚将该链接输入到我的浏览器中,它也几乎在 30 秒内返回。这个dtd和你的项目有关系吗,能拿出来或者下载到本地引用吗?看来这个网站不会更快地返回请求。

于 2012-08-02T20:40:50.123 回答
0

事实证明,这个问题似乎是由于 jqGrid 的配置问题造成的。我在“主/详细信息”设置中使用 jqGrid,并且我的详细信息网格是在没有定义 url 的情况下定义的(因为在主网格中选择一行时将构造 url)。这在其他浏览器中似乎不是问题,但在 IE8 中,它似乎会导致 IE8 尝试从 DOCTYPE 加载 .dtd,这会导致整个浏览器冻结。为 mastergrid 指定一个虚拟 url(我刚刚使用“http://www.google.com”)解决了这个问题。(实际的虚拟 url 无关紧要,因为当在主网格中选择一行时,它会被实际的替代。

于 2012-08-03T19:10:41.563 回答