【问题标题】:Need help on ExtJS tabpanel strange behaviour需要有关 ExtJS 选项卡面板奇怪行为的帮助
【发布时间】:2012-10-13 17:22:12
【问题描述】:

我正在使用 ExtJS 3.1.1。我在窗口的中心区域有一个选项卡面板,在窗口的西部区域有另一个面板。在“beforeTabChange”事件中,我正在向选项卡面板和面板中删除和添加新内容。当我使用 tomcat 服务器时,这在所有机器上都可以正常工作。当我使用 JBoss 服务器并从同一台机器访问时没有问题。但是当我从远程机器访问部署在 JBoss 服务器中的 war 时,当从特定选项卡切换到其他选项卡时,我们需要在新选项卡上单击两次。在新选项卡上第一次单击时,西面板内容被清空并且该过程在那里停止。这不是浏览器问题或操作系统问题(我检查过)。可能是什么原因?

【问题讨论】:

  • 你确定是应用服务器/servlet容器的问题吗?因为这是javascript,实际上并不依赖于服务器端。在服务器给您响应后,请尝试检查您的浏览器中有哪些 JavaScript 代码。有什么区别吗?如果没有差异,则不是服务器问题。但如果有,那么您的部署可能在 JBoss 上存在问题
  • 您能否澄清一下您是否在 beforeTabChange 事件处理程序中进行了任何 ajax 调用?我强烈建议您使用 webkit 检查器/firebug,并在调试器中单步调试代码,或添加调试代码 (console.log('here!')) 样式。
  • @Yasin :确保问题仅在指定情况下发生。通过 firebug 检查时没有代码更改。但是当我通过萤火虫时,它给出了“脚本运行时间很长”的消息。这在 IE 中不会发生。我没有在 beforetabchange 中使用任何 ajax 调用

标签: extjs extjs3


【解决方案1】:

注意:如果这不能回答问题,请勿投反对票或删除(对版主)。我没有足够的声誉来分享上述评论。

您需要将Ext.Ajax.timeout 或更具体地Ext.Ajax.requesttimeout 值(请参阅this)增加到可以在远程环境中处理您的请求的合理时间。

我已经实现了一个 Ext.application 来显示我的 Gmail 邮件(使用 JavaMail API)。为 Grid 获取数据与您描述的问题相同。在第一次调用时,在服务器端获取邮件内容需要相当长的时间,因此 Grid 将是空的。当我在服务器端缓存内容时,下一次调用会立即调出数据。

此外,为您的 Ajax.request 的失败提供处理程序,这可能有助于识别问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 2011-12-22
    相关资源
    最近更新 更多